summaryrefslogtreecommitdiffstats
path: root/BuildConfig.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2014-04-06 03:59:37 +0200
committerPetr Mrázek <peterix@gmail.com>2014-04-06 03:59:37 +0200
commit482ad250a4454d993a98488edfe01d7f9dc35de7 (patch)
treef18d785ed4f33efbb6e925cbca7b4f30a306290c /BuildConfig.h
parentf9169654c57d56a900157bbbf6ceab60fac1f800 (diff)
downloadMultiMC-482ad250a4454d993a98488edfe01d7f9dc35de7.tar
MultiMC-482ad250a4454d993a98488edfe01d7f9dc35de7.tar.gz
MultiMC-482ad250a4454d993a98488edfe01d7f9dc35de7.tar.lz
MultiMC-482ad250a4454d993a98488edfe01d7f9dc35de7.tar.xz
MultiMC-482ad250a4454d993a98488edfe01d7f9dc35de7.zip
Workaround for dirty build folders.
My disgust just turned into barely contained rage :<
Diffstat (limited to 'BuildConfig.h')
-rw-r--r--BuildConfig.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/BuildConfig.h b/BuildConfig.h
new file mode 100644
index 00000000..baf2ad6d
--- /dev/null
+++ b/BuildConfig.h
@@ -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;