#include "BuildConfig.h"
#include <QObject>

Config BuildConfig;

Config::Config()
{
	// Version information
	VERSION_MAJOR =	@MultiMC_VERSION_MAJOR@;
	VERSION_MINOR = @MultiMC_VERSION_MINOR@;
	VERSION_HOTFIX = @MultiMC_VERSION_HOTFIX@;
	VERSION_BUILD = @MultiMC_VERSION_BUILD@;

	VERSION_CHANNEL = "@MultiMC_VERSION_CHANNEL@";
	BUILD_PLATFORM = "@MultiMC_BUILD_PLATFORM@";
	CHANLIST_URL = "@MultiMC_CHANLIST_URL@";
	NOTIFICATION_URL = "@MultiMC_NOTIFICATION_URL@";
	FULL_VERSION_STR = "@MultiMC_VERSION_MAJOR@.@MultiMC_VERSION_MINOR@.@MultiMC_VERSION_BUILD@";

	UPDATER_DRY_RUN = @MultiMC_UPDATER_DRY_RUN_value@;
	UPDATER_FORCE_LOCAL = @MultiMC_UPDATER_FORCE_LOCAL_value@;

	GIT_COMMIT = "@MultiMC_GIT_COMMIT@";
	VERSION_STR = "@MultiMC_VERSION_STRING@";
	NEWS_RSS_URL = "@MultiMC_NEWS_RSS_URL@";
}

QString Config::printableVersionString() const
{
	QString vstr = QString("%1.%2").arg(QString::number(VERSION_MAJOR),	QString::number(VERSION_MINOR));

	if (VERSION_HOTFIX > 0) vstr += "." + QString::number(VERSION_HOTFIX);

	// If the build is a development build or release candidate, add that info to the end.
	if(VERSION_CHANNEL == "stable")
	{
		return vstr;
	}
	else if(VERSION_CHANNEL == "develop")
	{
		vstr += "-dev-" + QString::number(VERSION_BUILD);
	}
	else if(VERSION_CHANNEL == "unstable")
	{
		vstr += "-nuke-" + QString::number(VERSION_BUILD);
	}
	else if(VERSION_CHANNEL == "custom")
	{
		vstr += "-local";
	}
	else
	{
		vstr += "-" + VERSION_CHANNEL + "-" + QString::number(VERSION_BUILD);
	}
	return vstr;
}