Get rid of long rebuilds because of minor cmake config changes
This commit is contained in:
		@@ -179,7 +179,7 @@ ELSE()
 | 
			
		||||
ENDIF()
 | 
			
		||||
 | 
			
		||||
######## Configure header ########
 | 
			
		||||
configure_file("${PROJECT_SOURCE_DIR}/config.h.in" "${PROJECT_BINARY_DIR}/include/config.h")
 | 
			
		||||
configure_file("${PROJECT_SOURCE_DIR}/Config.cpp.in" "${PROJECT_BINARY_DIR}/Config.cpp")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######## Other Stuff ########
 | 
			
		||||
@@ -257,8 +257,9 @@ SET(MULTIMC_SOURCES
 | 
			
		||||
# Application base
 | 
			
		||||
MultiMC.h
 | 
			
		||||
MultiMC.cpp
 | 
			
		||||
MultiMCVersion.h
 | 
			
		||||
MMCError.h
 | 
			
		||||
Config.h
 | 
			
		||||
${PROJECT_BINARY_DIR}/Config.cpp
 | 
			
		||||
 | 
			
		||||
# Logging
 | 
			
		||||
logger/QsDebugOutput.cpp
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										65
									
								
								Config.cpp.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								Config.cpp.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
#include "Config.h"
 | 
			
		||||
 | 
			
		||||
Config BuildConfig;
 | 
			
		||||
 | 
			
		||||
Config::Config()
 | 
			
		||||
{
 | 
			
		||||
	static bool ON = true;
 | 
			
		||||
	static bool OFF = false;
 | 
			
		||||
	// Version information
 | 
			
		||||
	VERSION_MAJOR =	@MultiMC_VERSION_MAJOR@;
 | 
			
		||||
	VERSION_MINOR = @MultiMC_VERSION_MINOR@;
 | 
			
		||||
	VERSION_HOTFIX = @MultiMC_VERSION_HOTFIX@;
 | 
			
		||||
	VERSION_BUILD = @MultiMC_VERSION_BUILD@;
 | 
			
		||||
	VERSION_TYPE = "@MultiMC_VERSION_TYPE@";
 | 
			
		||||
 | 
			
		||||
	if(VERSION_TYPE == "Release")
 | 
			
		||||
		versionTypeEnum = Release;
 | 
			
		||||
	else if(VERSION_TYPE == "ReleaseCandidate")
 | 
			
		||||
		versionTypeEnum = ReleaseCandidate;
 | 
			
		||||
	else if(VERSION_TYPE == "Development")
 | 
			
		||||
		versionTypeEnum = Development;
 | 
			
		||||
	else
 | 
			
		||||
		versionTypeEnum = Custom;
 | 
			
		||||
	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@;
 | 
			
		||||
	UPDATER_FORCE_LOCAL = @MultiMC_UPDATER_FORCE_LOCAL@;
 | 
			
		||||
 | 
			
		||||
	GIT_COMMIT = "@MultiMC_GIT_COMMIT@";
 | 
			
		||||
	VERSION_STR = "@MultiMC_VERSION_STRING@";
 | 
			
		||||
	NEWS_RSS_URL = "@MultiMC_NEWS_RSS_URL@";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QString Config::versionTypeName() const
 | 
			
		||||
{
 | 
			
		||||
	switch (versionTypeEnum)
 | 
			
		||||
	{
 | 
			
		||||
		case Release:
 | 
			
		||||
			return "Stable Release";
 | 
			
		||||
		case ReleaseCandidate:
 | 
			
		||||
			return "Release Candidate";
 | 
			
		||||
		case Development:
 | 
			
		||||
			return "Development";
 | 
			
		||||
		case Custom:
 | 
			
		||||
		default:
 | 
			
		||||
			return "Custom";
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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 (versionTypeEnum == Development) vstr += "-dev" + QString::number(VERSION_BUILD);
 | 
			
		||||
	else if (versionTypeEnum == ReleaseCandidate) vstr += "-rc" + QString::number(VERSION_BUILD);
 | 
			
		||||
 | 
			
		||||
	return vstr;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										86
									
								
								Config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								Config.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,86 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
#include <QString>
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief The Config class holds all the build-time information passed from the build system.
 | 
			
		||||
 */
 | 
			
		||||
class Config
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
	Config();
 | 
			
		||||
	/// The major version number.
 | 
			
		||||
	int VERSION_MAJOR;
 | 
			
		||||
	/// The minor version number.
 | 
			
		||||
	int VERSION_MINOR;
 | 
			
		||||
	/// The hotfix number.
 | 
			
		||||
	int VERSION_HOTFIX;
 | 
			
		||||
	/// The build number.
 | 
			
		||||
	int VERSION_BUILD;
 | 
			
		||||
	/// The build type, as specified at build time.
 | 
			
		||||
	QString VERSION_TYPE;
 | 
			
		||||
 | 
			
		||||
	/// The build type, transformed.
 | 
			
		||||
	enum Type
 | 
			
		||||
	{
 | 
			
		||||
		/// Version type for stable release builds.
 | 
			
		||||
		Release,
 | 
			
		||||
 | 
			
		||||
		/// Version type for release candidates.
 | 
			
		||||
		ReleaseCandidate,
 | 
			
		||||
 | 
			
		||||
		/// Version type for development builds.
 | 
			
		||||
		Development,
 | 
			
		||||
 | 
			
		||||
		/// Version type for custom builds. This is the default when no version type is specified.
 | 
			
		||||
		Custom
 | 
			
		||||
	} versionTypeEnum;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * The version channel
 | 
			
		||||
	 * This is used by the updater to determine what channel the current version came from.
 | 
			
		||||
	 */
 | 
			
		||||
	QString VERSION_CHANNEL;
 | 
			
		||||
 | 
			
		||||
	/// A short string identifying this build's platform. For example, "lin64" or "win32".
 | 
			
		||||
	QString BUILD_PLATFORM;
 | 
			
		||||
 | 
			
		||||
	/// URL for the updater's channel
 | 
			
		||||
	QString CHANLIST_URL;
 | 
			
		||||
 | 
			
		||||
	/// URL for notifications
 | 
			
		||||
	QString NOTIFICATION_URL;
 | 
			
		||||
 | 
			
		||||
	/// Used for matching notifications
 | 
			
		||||
	QString FULL_VERSION_STR;
 | 
			
		||||
 | 
			
		||||
	/// enabled for updater dry run
 | 
			
		||||
	bool UPDATER_DRY_RUN;
 | 
			
		||||
 | 
			
		||||
	/// enabled for updater dry run
 | 
			
		||||
	bool UPDATER_FORCE_LOCAL;
 | 
			
		||||
 | 
			
		||||
	/// The commit hash of this build
 | 
			
		||||
	QString GIT_COMMIT;
 | 
			
		||||
 | 
			
		||||
	/// This is printed on start to standard output
 | 
			
		||||
	QString VERSION_STR;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * This is used to fetch the news RSS feed.
 | 
			
		||||
	 * It defaults in CMakeLists.txt to "http://multimc.org/rss.xml"
 | 
			
		||||
	 */
 | 
			
		||||
	QString NEWS_RSS_URL;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief Converts the Version to a string.
 | 
			
		||||
	 * \return The version number in string format (major.minor.revision.build).
 | 
			
		||||
	 */
 | 
			
		||||
	QString printableVersionString() const;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * returns a string representation of the version channel type, suitable for printing.
 | 
			
		||||
	 */
 | 
			
		||||
	QString versionTypeName() const;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
extern Config BuildConfig;
 | 
			
		||||
							
								
								
									
										18
									
								
								MultiMC.cpp
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								MultiMC.cpp
									
									
									
									
									
								
							@@ -1,4 +1,6 @@
 | 
			
		||||
#include "MultiMC.h"
 | 
			
		||||
#include "Config.h"
 | 
			
		||||
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <QDir>
 | 
			
		||||
#include <QFileInfo>
 | 
			
		||||
@@ -50,9 +52,7 @@ static const int APPDATA_BUFFER_SIZE = 1024;
 | 
			
		||||
using namespace Util::Commandline;
 | 
			
		||||
 | 
			
		||||
MultiMC::MultiMC(int &argc, char **argv, bool root_override)
 | 
			
		||||
	: QApplication(argc, argv),
 | 
			
		||||
	  m_version{VERSION_MAJOR,				  VERSION_MINOR,   VERSION_HOTFIX, VERSION_BUILD,
 | 
			
		||||
				MultiMCVersion::VERSION_TYPE, VERSION_CHANNEL, BUILD_PLATFORM}
 | 
			
		||||
	: QApplication(argc, argv)
 | 
			
		||||
{
 | 
			
		||||
	setOrganizationName("MultiMC");
 | 
			
		||||
	setApplicationName("MultiMC5");
 | 
			
		||||
@@ -111,8 +111,8 @@ MultiMC::MultiMC(int &argc, char **argv, bool root_override)
 | 
			
		||||
		// display version and exit
 | 
			
		||||
		if (args["version"].toBool())
 | 
			
		||||
		{
 | 
			
		||||
			std::cout << "Version " << VERSION_STR << std::endl;
 | 
			
		||||
			std::cout << "Git " << GIT_COMMIT << std::endl;
 | 
			
		||||
			std::cout << "Version " << BuildConfig.VERSION_STR.toStdString() << std::endl;
 | 
			
		||||
			std::cout << "Git " << BuildConfig.GIT_COMMIT.toStdString() << std::endl;
 | 
			
		||||
			m_status = MultiMC::Succeeded;
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
@@ -165,8 +165,8 @@ MultiMC::MultiMC(int &argc, char **argv, bool root_override)
 | 
			
		||||
	initLogger();
 | 
			
		||||
 | 
			
		||||
	QLOG_INFO() << "MultiMC 5, (c) 2013 MultiMC Contributors";
 | 
			
		||||
	QLOG_INFO() << "Version                    : " << VERSION_STR;
 | 
			
		||||
	QLOG_INFO() << "Git commit                 : " << GIT_COMMIT;
 | 
			
		||||
	QLOG_INFO() << "Version                    : " << BuildConfig.VERSION_STR;
 | 
			
		||||
	QLOG_INFO() << "Git commit                 : " << BuildConfig.GIT_COMMIT;
 | 
			
		||||
	if (adjustedBy.size())
 | 
			
		||||
	{
 | 
			
		||||
		QLOG_INFO() << "Work dir before adjustment : " << origcwdPath;
 | 
			
		||||
@@ -193,7 +193,7 @@ MultiMC::MultiMC(int &argc, char **argv, bool root_override)
 | 
			
		||||
	m_notificationChecker.reset(new NotificationChecker());
 | 
			
		||||
 | 
			
		||||
	// initialize the news checker
 | 
			
		||||
	m_newsChecker.reset(new NewsChecker(NEWS_RSS_URL));
 | 
			
		||||
	m_newsChecker.reset(new NewsChecker(BuildConfig.NEWS_RSS_URL));
 | 
			
		||||
 | 
			
		||||
	// initialize the status checker
 | 
			
		||||
	m_statusChecker.reset(new StatusChecker());
 | 
			
		||||
@@ -333,7 +333,7 @@ void MultiMC::initGlobalSettings()
 | 
			
		||||
{
 | 
			
		||||
	m_settings.reset(new INISettingsObject("multimc.cfg", this));
 | 
			
		||||
	// Updates
 | 
			
		||||
	m_settings->registerSetting("UpdateChannel", version().channel);
 | 
			
		||||
	m_settings->registerSetting("UpdateChannel", BuildConfig.VERSION_CHANNEL);
 | 
			
		||||
	m_settings->registerSetting("AutoUpdate", true);
 | 
			
		||||
 | 
			
		||||
	// Notifications
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,6 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#include <QApplication>
 | 
			
		||||
#include "MultiMCVersion.h"
 | 
			
		||||
#include <memory>
 | 
			
		||||
#include "logger/QsLog.h"
 | 
			
		||||
#include "logger/QsLogDest.h"
 | 
			
		||||
@@ -87,11 +85,6 @@ public:
 | 
			
		||||
		return m_status;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	MultiMCVersion version()
 | 
			
		||||
	{
 | 
			
		||||
		return m_version;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::shared_ptr<QNetworkAccessManager> qnam()
 | 
			
		||||
	{
 | 
			
		||||
		return m_qnam;
 | 
			
		||||
@@ -227,5 +220,4 @@ private:
 | 
			
		||||
	QString origcwdPath;
 | 
			
		||||
 | 
			
		||||
	Status m_status = MultiMC::Failed;
 | 
			
		||||
	MultiMCVersion m_version;
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -1,96 +0,0 @@
 | 
			
		||||
/* Copyright 2013 MultiMC Contributors
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 * 
 | 
			
		||||
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <QString>
 | 
			
		||||
 | 
			
		||||
/*!
 | 
			
		||||
 * \brief The Version class represents a MultiMC version.
 | 
			
		||||
 */
 | 
			
		||||
struct MultiMCVersion
 | 
			
		||||
{
 | 
			
		||||
	enum Type
 | 
			
		||||
	{
 | 
			
		||||
		//! Version type for stable release builds.
 | 
			
		||||
		Release,
 | 
			
		||||
 | 
			
		||||
		//! Version type for release candidates.
 | 
			
		||||
		ReleaseCandidate,
 | 
			
		||||
 | 
			
		||||
		//! Version type for development builds.
 | 
			
		||||
		Development,
 | 
			
		||||
 | 
			
		||||
		//! Version type for custom builds. This is the default when no version type is specified.
 | 
			
		||||
		Custom
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	/*!
 | 
			
		||||
	 * \brief Converts the Version to a string.
 | 
			
		||||
	 * \return The version number in string format (major.minor.revision.build).
 | 
			
		||||
	 */
 | 
			
		||||
	QString toString() const
 | 
			
		||||
	{
 | 
			
		||||
		QString vstr = QString("%1.%2").arg(
 | 
			
		||||
				QString::number(major),
 | 
			
		||||
				QString::number(minor));
 | 
			
		||||
 | 
			
		||||
		if (hotfix > 0) vstr += "." + QString::number(hotfix);
 | 
			
		||||
 | 
			
		||||
		// If the build is a development build or release candidate, add that info to the end.
 | 
			
		||||
		if (type == Development) vstr += "-dev" + QString::number(build);
 | 
			
		||||
		else if (type == ReleaseCandidate) vstr += "-rc" + QString::number(build);
 | 
			
		||||
 | 
			
		||||
		return vstr;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	QString typeName() const
 | 
			
		||||
	{
 | 
			
		||||
		switch (type)
 | 
			
		||||
		{
 | 
			
		||||
			case Release:
 | 
			
		||||
				return "Stable Release";
 | 
			
		||||
			case ReleaseCandidate:
 | 
			
		||||
				return "Release Candidate";
 | 
			
		||||
			case Development:
 | 
			
		||||
				return "Development";
 | 
			
		||||
			case Custom:
 | 
			
		||||
			default:
 | 
			
		||||
				return "Custom";
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//! The major version number.
 | 
			
		||||
	int major;
 | 
			
		||||
	
 | 
			
		||||
	//! The minor version number.
 | 
			
		||||
	int minor;
 | 
			
		||||
	
 | 
			
		||||
	//! The hotfix number.
 | 
			
		||||
	int hotfix;
 | 
			
		||||
 | 
			
		||||
	//! The build number.
 | 
			
		||||
	int build;
 | 
			
		||||
 | 
			
		||||
	//! The build type.
 | 
			
		||||
	Type type;
 | 
			
		||||
 | 
			
		||||
	//! The build channel.
 | 
			
		||||
	QString channel;
 | 
			
		||||
 | 
			
		||||
	//! A short string identifying the platform that this version is for. For example, lin64 or win32.
 | 
			
		||||
	QString platform;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										40
									
								
								config.h.in
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								config.h.in
									
									
									
									
									
								
							@@ -1,40 +0,0 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
// Version information
 | 
			
		||||
#define VERSION_MAJOR		@MultiMC_VERSION_MAJOR@
 | 
			
		||||
#define VERSION_MINOR		@MultiMC_VERSION_MINOR@
 | 
			
		||||
#define VERSION_HOTFIX		@MultiMC_VERSION_HOTFIX@
 | 
			
		||||
#define VERSION_BUILD		@MultiMC_VERSION_BUILD@
 | 
			
		||||
#define VERSION_TYPE        @MultiMC_VERSION_TYPE@
 | 
			
		||||
 | 
			
		||||
// The version channel. This is used by the updater to determine what channel the current version came from.
 | 
			
		||||
#define VERSION_CHANNEL    "@MultiMC_VERSION_CHANNEL@"
 | 
			
		||||
 | 
			
		||||
// A short string identifying this build's platform. For example, "lin64" or "win32".
 | 
			
		||||
#define BUILD_PLATFORM     "@MultiMC_BUILD_PLATFORM@"
 | 
			
		||||
 | 
			
		||||
// URL for the updater's channel
 | 
			
		||||
#define CHANLIST_URL       "@MultiMC_CHANLIST_URL@"
 | 
			
		||||
 | 
			
		||||
// URL for notifications
 | 
			
		||||
#define NOTIFICATION_URL "@MultiMC_NOTIFICATION_URL@"
 | 
			
		||||
 | 
			
		||||
// Used for matching notifications
 | 
			
		||||
#define FULL_VERSION_STR "@MultiMC_VERSION_MAJOR@.@MultiMC_VERSION_MINOR@.@MultiMC_VERSION_BUILD@"
 | 
			
		||||
 | 
			
		||||
// enabled for updater dry run
 | 
			
		||||
#cmakedefine MultiMC_UPDATER_DRY_RUN
 | 
			
		||||
 | 
			
		||||
// enabled for updater dry run
 | 
			
		||||
#cmakedefine MultiMC_UPDATER_FORCE_LOCAL
 | 
			
		||||
 | 
			
		||||
// The commit hash of this build
 | 
			
		||||
#define GIT_COMMIT		   "@MultiMC_GIT_COMMIT@"
 | 
			
		||||
 | 
			
		||||
// This is printed on start to standard output
 | 
			
		||||
#define VERSION_STR        "@MultiMC_VERSION_STRING@"
 | 
			
		||||
 | 
			
		||||
// This is used to fetch the news RSS feed.
 | 
			
		||||
// It defaults in CMakeLists.txt to "http://multimc.org/rss.xml"
 | 
			
		||||
#define NEWS_RSS_URL       "@MultiMC_NEWS_RSS_URL@"
 | 
			
		||||
 | 
			
		||||
@@ -17,6 +17,7 @@
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
#include "MultiMC.h"
 | 
			
		||||
#include "Config.h"
 | 
			
		||||
 | 
			
		||||
#include "MainWindow.h"
 | 
			
		||||
#include "ui_MainWindow.h"
 | 
			
		||||
@@ -107,9 +108,9 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
 | 
			
		||||
	MultiMCPlatform::fixWM_CLASS(this);
 | 
			
		||||
	ui->setupUi(this);
 | 
			
		||||
 | 
			
		||||
	QString winTitle = QString("MultiMC 5 - Version %1").arg(MMC->version().toString());
 | 
			
		||||
	if (!MMC->version().platform.isEmpty())
 | 
			
		||||
		winTitle += " on " + MMC->version().platform;
 | 
			
		||||
	QString winTitle = QString("MultiMC 5 - Version %1").arg(BuildConfig.printableVersionString());
 | 
			
		||||
	if (!BuildConfig.BUILD_PLATFORM.isEmpty())
 | 
			
		||||
		winTitle += " on " + BuildConfig.BUILD_PLATFORM;
 | 
			
		||||
	setWindowTitle(winTitle);
 | 
			
		||||
 | 
			
		||||
	// OSX magic.
 | 
			
		||||
@@ -709,9 +710,8 @@ void MainWindow::downloadUpdates(QString repo, int versionId, bool installOnExit
 | 
			
		||||
	if (updateDlg.exec(&updateTask))
 | 
			
		||||
	{
 | 
			
		||||
		UpdateFlags baseFlags = None;
 | 
			
		||||
#ifdef MultiMC_UPDATER_DRY_RUN
 | 
			
		||||
		baseFlags |= DryRun;
 | 
			
		||||
#endif
 | 
			
		||||
		if(BuildConfig.UPDATER_DRY_RUN)
 | 
			
		||||
			baseFlags |= DryRun;
 | 
			
		||||
		if (installOnExit)
 | 
			
		||||
			MMC->installUpdates(updateTask.updateFilesDir(), baseFlags | OnExit);
 | 
			
		||||
		else
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,7 @@
 | 
			
		||||
#include <QIcon>
 | 
			
		||||
#include "MultiMC.h"
 | 
			
		||||
#include "gui/Platform.h"
 | 
			
		||||
#include "Config.h"
 | 
			
		||||
 | 
			
		||||
AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent), ui(new Ui::AboutDialog)
 | 
			
		||||
{
 | 
			
		||||
@@ -27,19 +28,19 @@ AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent), ui(new Ui::AboutDia
 | 
			
		||||
	ui->urlLabel->setOpenExternalLinks(true);
 | 
			
		||||
 | 
			
		||||
	ui->icon->setPixmap(QIcon(":/icons/multimc/scalable/apps/multimc.svg").pixmap(64));
 | 
			
		||||
	ui->title->setText("MultiMC 5 " + MMC->version().toString());
 | 
			
		||||
	ui->title->setText("MultiMC 5 " + BuildConfig.printableVersionString());
 | 
			
		||||
 | 
			
		||||
	ui->versionLabel->setText(tr("Version") +": " + MMC->version().toString());
 | 
			
		||||
	ui->vtypeLabel->setText(tr("Version Type") +": " + MMC->version().typeName());
 | 
			
		||||
	ui->platformLabel->setText(tr("Platform") +": " + MMC->version().platform);
 | 
			
		||||
	ui->versionLabel->setText(tr("Version") +": " + BuildConfig.printableVersionString());
 | 
			
		||||
	ui->vtypeLabel->setText(tr("Version Type") +": " + BuildConfig.versionTypeName());
 | 
			
		||||
	ui->platformLabel->setText(tr("Platform") +": " + BuildConfig.BUILD_PLATFORM);
 | 
			
		||||
 | 
			
		||||
	if (MMC->version().build >= 0)
 | 
			
		||||
		ui->buildNumLabel->setText(tr("Build Number") +": " + QString::number(MMC->version().build));
 | 
			
		||||
	if (BuildConfig.VERSION_BUILD >= 0)
 | 
			
		||||
		ui->buildNumLabel->setText(tr("Build Number") +": " + QString::number(BuildConfig.VERSION_BUILD));
 | 
			
		||||
	else
 | 
			
		||||
		ui->buildNumLabel->setVisible(false);
 | 
			
		||||
 | 
			
		||||
	if (!MMC->version().channel.isEmpty())
 | 
			
		||||
		ui->channelLabel->setText(tr("Channel") +": " + MMC->version().channel);
 | 
			
		||||
	if (!BuildConfig.VERSION_CHANNEL.isEmpty())
 | 
			
		||||
		ui->channelLabel->setText(tr("Channel") +": " + BuildConfig.VERSION_CHANNEL);
 | 
			
		||||
	else
 | 
			
		||||
		ui->channelLabel->setVisible(false);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,7 @@
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
#include "MultiMC.h"
 | 
			
		||||
#include "Config.h"
 | 
			
		||||
 | 
			
		||||
#include "MinecraftProcess.h"
 | 
			
		||||
 | 
			
		||||
@@ -432,7 +433,7 @@ QStringList MinecraftProcess::javaArguments() const
 | 
			
		||||
 | 
			
		||||
void MinecraftProcess::arm()
 | 
			
		||||
{
 | 
			
		||||
	emit log("MultiMC version: " + MMC->version().toString() + "\n\n");
 | 
			
		||||
	emit log("MultiMC version: " + BuildConfig.printableVersionString() + "\n\n");
 | 
			
		||||
	emit log("Minecraft folder is:\n" + workingDirectory() + "\n\n");
 | 
			
		||||
 | 
			
		||||
	if (!preLaunch())
 | 
			
		||||
 
 | 
			
		||||
@@ -16,6 +16,8 @@
 | 
			
		||||
#include "DownloadUpdateTask.h"
 | 
			
		||||
 | 
			
		||||
#include "MultiMC.h"
 | 
			
		||||
#include "Config.h"
 | 
			
		||||
 | 
			
		||||
#include "logic/updater/UpdateChecker.h"
 | 
			
		||||
#include "logic/net/NetJob.h"
 | 
			
		||||
#include "pathutils.h"
 | 
			
		||||
@@ -29,7 +31,7 @@
 | 
			
		||||
DownloadUpdateTask::DownloadUpdateTask(QString repoUrl, int versionId, QObject *parent)
 | 
			
		||||
	: Task(parent)
 | 
			
		||||
{
 | 
			
		||||
	m_cVersionId = MMC->version().build;
 | 
			
		||||
	m_cVersionId = BuildConfig.VERSION_BUILD;
 | 
			
		||||
 | 
			
		||||
	m_nRepoUrl = repoUrl;
 | 
			
		||||
	m_nVersionId = versionId;
 | 
			
		||||
@@ -58,7 +60,7 @@ void DownloadUpdateTask::processChannels()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	QList<UpdateChecker::ChannelListEntry> channels = checker->getChannelList();
 | 
			
		||||
	QString channelId = MMC->version().channel;
 | 
			
		||||
	QString channelId = BuildConfig.VERSION_CHANNEL;
 | 
			
		||||
 | 
			
		||||
	m_cRepoUrl.clear();
 | 
			
		||||
	// Search through the channel list for a channel with the correct ID.
 | 
			
		||||
@@ -405,17 +407,18 @@ DownloadUpdateTask::processFileLists(NetJob *job,
 | 
			
		||||
 | 
			
		||||
				if (isUpdater)
 | 
			
		||||
				{
 | 
			
		||||
#ifdef MultiMC_UPDATER_FORCE_LOCAL
 | 
			
		||||
					QLOG_DEBUG() << "Skipping updater download and using local version.";
 | 
			
		||||
#else
 | 
			
		||||
					auto cache_entry = MMC->metacache()->resolveEntry("root", entry.path);
 | 
			
		||||
					QLOG_DEBUG() << "Updater will be in " << cache_entry->getFullPath();
 | 
			
		||||
					// force check.
 | 
			
		||||
					cache_entry->stale = true;
 | 
			
		||||
					if(BuildConfig.UPDATER_FORCE_LOCAL)
 | 
			
		||||
						QLOG_DEBUG() << "Skipping updater download and using local version.";
 | 
			
		||||
					else
 | 
			
		||||
					{
 | 
			
		||||
						auto cache_entry = MMC->metacache()->resolveEntry("root", entry.path);
 | 
			
		||||
						QLOG_DEBUG() << "Updater will be in " << cache_entry->getFullPath();
 | 
			
		||||
						// force check.
 | 
			
		||||
						cache_entry->stale = true;
 | 
			
		||||
 | 
			
		||||
					auto download = CacheDownload::make(QUrl(source.url), cache_entry);
 | 
			
		||||
					job->addNetAction(download);
 | 
			
		||||
#endif
 | 
			
		||||
						auto download = CacheDownload::make(QUrl(source.url), cache_entry);
 | 
			
		||||
						job->addNetAction(download);
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				else
 | 
			
		||||
				{
 | 
			
		||||
 
 | 
			
		||||
@@ -5,11 +5,11 @@
 | 
			
		||||
#include <QJsonArray>
 | 
			
		||||
 | 
			
		||||
#include "MultiMC.h"
 | 
			
		||||
#include "MultiMCVersion.h"
 | 
			
		||||
#include "Config.h"
 | 
			
		||||
#include "logic/net/CacheDownload.h"
 | 
			
		||||
 | 
			
		||||
NotificationChecker::NotificationChecker(QObject *parent)
 | 
			
		||||
	: QObject(parent), m_notificationsUrl(QUrl(NOTIFICATION_URL))
 | 
			
		||||
	: QObject(parent), m_notificationsUrl(QUrl(BuildConfig.NOTIFICATION_URL))
 | 
			
		||||
{
 | 
			
		||||
	// this will call checkForNotifications once the event loop is running
 | 
			
		||||
	QMetaObject::invokeMethod(this, "checkForNotifications", Qt::QueuedConnection);
 | 
			
		||||
@@ -93,13 +93,12 @@ void NotificationChecker::downloadSucceeded(int)
 | 
			
		||||
 | 
			
		||||
bool NotificationChecker::NotificationEntry::applies() const
 | 
			
		||||
{
 | 
			
		||||
	MultiMCVersion version = MMC->version();
 | 
			
		||||
	bool channelApplies = channel.isEmpty() || channel == version.channel;
 | 
			
		||||
	bool platformApplies = platform.isEmpty() || platform == version.platform;
 | 
			
		||||
	bool channelApplies = channel.isEmpty() || channel == BuildConfig.VERSION_CHANNEL;
 | 
			
		||||
	bool platformApplies = platform.isEmpty() || platform == BuildConfig.BUILD_PLATFORM;
 | 
			
		||||
	bool fromApplies =
 | 
			
		||||
		from.isEmpty() || from == FULL_VERSION_STR || !versionLessThan(FULL_VERSION_STR, from);
 | 
			
		||||
		from.isEmpty() || from == BuildConfig.FULL_VERSION_STR || !versionLessThan(BuildConfig.FULL_VERSION_STR, from);
 | 
			
		||||
	bool toApplies =
 | 
			
		||||
		to.isEmpty() || to == FULL_VERSION_STR || !versionLessThan(to, FULL_VERSION_STR);
 | 
			
		||||
		to.isEmpty() || to == BuildConfig.FULL_VERSION_STR || !versionLessThan(to, BuildConfig.FULL_VERSION_STR);
 | 
			
		||||
	return channelApplies && platformApplies && fromApplies && toApplies;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -16,6 +16,7 @@
 | 
			
		||||
#include "UpdateChecker.h"
 | 
			
		||||
 | 
			
		||||
#include "MultiMC.h"
 | 
			
		||||
#include "Config.h"
 | 
			
		||||
 | 
			
		||||
#include "logger/QsLog.h"
 | 
			
		||||
 | 
			
		||||
@@ -30,7 +31,7 @@
 | 
			
		||||
 | 
			
		||||
UpdateChecker::UpdateChecker()
 | 
			
		||||
{
 | 
			
		||||
	m_channelListUrl = CHANLIST_URL;
 | 
			
		||||
	m_channelListUrl = BuildConfig.CHANLIST_URL;
 | 
			
		||||
	m_updateChecking = false;
 | 
			
		||||
	m_chanListLoading = false;
 | 
			
		||||
	m_checkUpdateWaiting = false;
 | 
			
		||||
@@ -148,7 +149,7 @@ void UpdateChecker::updateCheckFinished(bool notifyNoUpdate)
 | 
			
		||||
	// We've got the version with the greatest ID number. Now compare it to our current build
 | 
			
		||||
	// number and update if they're different.
 | 
			
		||||
	int newBuildNumber = newestVersion.value("Id").toVariant().toInt();
 | 
			
		||||
	if (newBuildNumber != MMC->version().build)
 | 
			
		||||
	if (newBuildNumber != BuildConfig.VERSION_BUILD)
 | 
			
		||||
	{
 | 
			
		||||
		QLOG_DEBUG() << "Found newer version with ID" << newBuildNumber;
 | 
			
		||||
		// Update!
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@
 | 
			
		||||
#include "depends/settings/settingsobject.h"
 | 
			
		||||
#include "depends/settings/setting.h"
 | 
			
		||||
 | 
			
		||||
#include "Config.h"
 | 
			
		||||
#include "TestUtil.h"
 | 
			
		||||
#include "logic/updater/UpdateChecker.h"
 | 
			
		||||
 | 
			
		||||
@@ -154,7 +155,7 @@ slots:
 | 
			
		||||
		QFETCH(QList<QVariant>, result);
 | 
			
		||||
 | 
			
		||||
		MMC->settings()->set("UpdateChannel", channel);
 | 
			
		||||
		MMC->m_version.build = currentBuild;
 | 
			
		||||
		BuildConfig.VERSION_BUILD = currentBuild;
 | 
			
		||||
 | 
			
		||||
		UpdateChecker checker;
 | 
			
		||||
		checker.setChannelListUrl(channelUrl);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user