/* 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 . */ #include "BuildConfig.h" #include 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); }