summaryrefslogtreecommitdiff
path: root/meshmc/buildconfig/BuildConfig.cpp.in
diff options
context:
space:
mode:
Diffstat (limited to 'meshmc/buildconfig/BuildConfig.cpp.in')
-rw-r--r--meshmc/buildconfig/BuildConfig.cpp.in126
1 files changed, 126 insertions, 0 deletions
diff --git a/meshmc/buildconfig/BuildConfig.cpp.in b/meshmc/buildconfig/BuildConfig.cpp.in
new file mode 100644
index 0000000000..9af27350df
--- /dev/null
+++ b/meshmc/buildconfig/BuildConfig.cpp.in
@@ -0,0 +1,126 @@
+/* SPDX-FileCopyrightText: 2026 Project Tick
+ * SPDX-FileContributor: Project Tick
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ * MeshMC - A Custom Launcher for Minecraft
+ * Copyright (C) 2026 Project Tick
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#include "BuildConfig.h"
+#include <QObject>
+
+const Config BuildConfig;
+
+Config::Config()
+{
+ // Name and copyright
+ MESHMC_NAME = "@MeshMC_Name@";
+ MESHMC_DISPLAYNAME = "@MeshMC_DisplayName@";
+ MESHMC_COPYRIGHT = "@MeshMC_Copyright@";
+ MESHMC_DOMAIN = "@MeshMC_Domain@";
+ MESHMC_CONFIGFILE = "@MeshMC_ConfigFile@";
+ MESHMC_GIT = "@MeshMC_Git@";
+
+ USER_AGENT = "@MeshMC_UserAgent@";
+ USER_AGENT_UNCACHED = USER_AGENT + " (Uncached)";
+
+ // Version information
+ VERSION_MAJOR = @MeshMC_VERSION_MAJOR@;
+ VERSION_MINOR = @MeshMC_VERSION_MINOR@;
+ VERSION_HOTFIX = @MeshMC_VERSION_HOTFIX@;
+ VERSION_BUILD = @MeshMC_VERSION_BUILD@;
+
+ BUILD_PLATFORM = "@MeshMC_BUILD_PLATFORM@";
+ BUILD_ARTIFACT = "@MeshMC_BUILD_ARTIFACT@";
+ BUILD_DATE = "@MeshMC_BUILD_TIMESTAMP@";
+ COMPILER_NAME = "@MeshMC_COMPILER_NAME@";
+ COMPILER_VERSION = "@MeshMC_COMPILER_VERSION@";
+ COMPILER_TARGET_SYSTEM = "@MeshMC_COMPILER_TARGET_SYSTEM@";
+ COMPILER_TARGET_SYSTEM_VERSION = "@MeshMC_COMPILER_TARGET_SYSTEM_VERSION@";
+ COMPILER_TARGET_SYSTEM_PROCESSOR = "@MeshMC_COMPILER_TARGET_PROCESSOR@";
+ UPDATER_BASE = "@MeshMC_UPDATER_BASE@";
+ UPDATER_FEED_URL = "@MeshMC_UPDATER_FEED_URL@";
+ UPDATER_GITHUB_API_URL = "@MeshMC_UPDATER_GITHUB_API_URL@";
+ ANALYTICS_ID = "@MeshMC_ANALYTICS_ID@";
+ NOTIFICATION_URL = "@MeshMC_NOTIFICATION_URL@";
+ FULL_VERSION_STR =
+ "@MeshMC_VERSION_MAJOR@.@MeshMC_VERSION_MINOR@.@MeshMC_VERSION_BUILD@";
+
+ GIT_COMMIT = "@MeshMC_GIT_COMMIT@";
+ GIT_REFSPEC = "@MeshMC_GIT_REFSPEC@";
+ GIT_TAG = "@MeshMC_GIT_TAG@";
+
+ // New updater: enabled when both feed and GitHub API URLs are configured
+ // and a build artifact name is provided for platform-specific asset
+ // matching.
+ if (!UPDATER_FEED_URL.isEmpty() && !UPDATER_GITHUB_API_URL.isEmpty() &&
+ !BUILD_ARTIFACT.isEmpty()) {
+ UPDATER_ENABLED = true;
+ }
+
+ // VERSION_CHANNEL is still populated from the git branch for informational
+ // use.
+ if (GIT_REFSPEC.startsWith("refs/heads/")) {
+ VERSION_CHANNEL = GIT_REFSPEC;
+ VERSION_CHANNEL.remove("refs/heads/");
+ } else {
+ VERSION_CHANNEL = QObject::tr("custom");
+ }
+
+ VERSION_STR = "@MeshMC_VERSION_STRING@";
+ MSAClientID = "@MeshMC_MICROSOFT_CLIENT_ID@";
+ NEWS_RSS_URL = "@MeshMC_NEWS_RSS_URL@";
+ PASTE_EE_KEY = "@MeshMC_PASTE_EE_API_KEY@";
+ IMGUR_CLIENT_ID = "@MeshMC_IMGUR_CLIENT_ID@";
+ META_URL = "@MeshMC_META_URL@";
+ CURSEFORGE_API_KEY = "@MeshMC_CURSEFORGE_API_KEY@";
+
+ BUG_TRACKER_URL = "@MeshMC_BUG_TRACKER_URL@";
+ DISCORD_URL = "@MeshMC_DISCORD_URL@";
+ SUBREDDIT_URL = "@MeshMC_SUBREDDIT_URL@";
+}
+
+QString Config::printableVersionString() const
+{
+ QString vstr =
+ QString("%1.%2.%3")
+ .arg(QString::number(VERSION_MAJOR), QString::number(VERSION_MINOR),
+ QString::number(VERSION_HOTFIX));
+
+ if (!GIT_TAG.isEmpty() && !GIT_TAG.endsWith("-NOTFOUND")) {
+ return vstr;
+ }
+
+ if (!GIT_COMMIT.isEmpty() && !GIT_COMMIT.endsWith("-NOTFOUND")) {
+ vstr += "-r" + GIT_COMMIT.left(6);
+ }
+
+ return vstr;
+}
+
+QString Config::compilerID() const
+{
+ if (COMPILER_VERSION.isEmpty())
+ return COMPILER_NAME;
+ return QStringLiteral("%1 - %2").arg(COMPILER_NAME).arg(COMPILER_VERSION);
+}
+
+QString Config::systemID() const
+{
+ return QStringLiteral("%1 %2 %3")
+ .arg(COMPILER_TARGET_SYSTEM, COMPILER_TARGET_SYSTEM_VERSION,
+ COMPILER_TARGET_SYSTEM_PROCESSOR);
+}