diff options
| author | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-02 18:45:07 +0300 |
|---|---|---|
| committer | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-02 18:45:07 +0300 |
| commit | 31b9a8949ed0a288143e23bf739f2eb64fdc63be (patch) | |
| tree | 8a984fa143c38fccad461a77792d6864f3e82cd3 /meshmc/buildconfig/BuildConfig.h | |
| parent | 934382c8a1ce738589dee9ee0f14e1cec812770e (diff) | |
| parent | fad6a1066616b69d7f5fef01178efdf014c59537 (diff) | |
| download | Project-Tick-31b9a8949ed0a288143e23bf739f2eb64fdc63be.tar.gz Project-Tick-31b9a8949ed0a288143e23bf739f2eb64fdc63be.zip | |
Add 'meshmc/' from commit 'fad6a1066616b69d7f5fef01178efdf014c59537'
git-subtree-dir: meshmc
git-subtree-mainline: 934382c8a1ce738589dee9ee0f14e1cec812770e
git-subtree-split: fad6a1066616b69d7f5fef01178efdf014c59537
Diffstat (limited to 'meshmc/buildconfig/BuildConfig.h')
| -rw-r--r-- | meshmc/buildconfig/BuildConfig.h | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/meshmc/buildconfig/BuildConfig.h b/meshmc/buildconfig/BuildConfig.h new file mode 100644 index 0000000000..760da4ade7 --- /dev/null +++ b/meshmc/buildconfig/BuildConfig.h @@ -0,0 +1,185 @@ +/* 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/>. + */ + +#pragma once +#include <QString> + +/** + * \brief The Config class holds all the build-time information passed from the + * build system. + */ +class Config +{ + public: + Config(); + QString MESHMC_NAME; + QString MESHMC_DISPLAYNAME; + QString MESHMC_COPYRIGHT; + QString MESHMC_DOMAIN; + QString MESHMC_CONFIGFILE; + QString MESHMC_GIT; + + /// 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 version channel + * This is used by the updater to determine what channel the current version + * came from. + */ + QString VERSION_CHANNEL; + + bool UPDATER_ENABLED = false; + + /// A short string identifying this build's platform. For example, "lin64" + /// or "win32". + QString BUILD_PLATFORM; + + /// URL for the updater's channel (legacy, unused) + QString UPDATER_BASE; + + /// RSS feed URL for the new updater (projt: namespace). + QString UPDATER_FEED_URL; + + /// GitHub releases API URL for update verification. + QString UPDATER_GITHUB_API_URL; + + /// A string containing the build timestamp + QString BUILD_DATE; + + /// User-Agent to use. + QString USER_AGENT; + + /// User-Agent to use for uncached requests. + QString USER_AGENT_UNCACHED; + + /// A short string identifying this build's valid artifacts int he updater. + /// For example, "lin64" or "win32". + QString BUILD_ARTIFACT; + + /// Compiler name + QString COMPILER_NAME; + + /// Compiler version + QString COMPILER_VERSION; + + /// Target system name (e.g. "Linux", "Windows") + QString COMPILER_TARGET_SYSTEM; + + /// Target system version + QString COMPILER_TARGET_SYSTEM_VERSION; + + /// Target system processor (e.g. "x86_64") + QString COMPILER_TARGET_SYSTEM_PROCESSOR; + + /// Google analytics ID + QString ANALYTICS_ID; + + /// URL for notifications + QString NOTIFICATION_URL; + + /// Used for matching notifications + QString FULL_VERSION_STR; + + /// The git commit hash of this build + QString GIT_COMMIT; + + /// The git refspec of this build + QString GIT_REFSPEC; + + /// The exact git tag of this build, if any + QString GIT_TAG; + + /// 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 "https://projecttick.org/rss.xml" + */ + QString NEWS_RSS_URL; + + QString MSAClientID; + + /** + * API key you can get from paste.ee when you register an account + */ + QString PASTE_EE_KEY; + + /** + * Client ID you can get from Imgur when you register an application + */ + QString IMGUR_CLIENT_ID; + + /** + * Metadata repository URL prefix + */ + QString META_URL; + + /** + * API key for the CurseForge API + */ + QString CURSEFORGE_API_KEY; + + QString BUG_TRACKER_URL; + QString DISCORD_URL; + QString SUBREDDIT_URL; + + QString RESOURCE_BASE = "https://resources.download.minecraft.net/"; + QString LIBRARY_BASE = "https://libraries.minecraft.net/"; + QString IMGUR_BASE_URL = "https://api.imgur.com/3/"; + QString FMLLIBS_BASE_URL = "https://files.projecttick.org/fmllibs/"; + QString TRANSLATIONS_BASE_URL = "https://i18n.projecttick.org/"; + + QString MODPACKSCH_API_BASE_URL = "https://api.modpacks.ch/"; + + QString LEGACY_FTB_CDN_BASE_URL = "https://dist.creeper.host/FTB2/"; + + QString ATL_DOWNLOAD_SERVER_URL = + "https://download.nodecdn.net/containers/atl/"; + + /** + * \brief Converts the Version to a string. + * \return The version number in string format (major.minor.revision.build). + */ + QString printableVersionString() const; + + /** + * \brief Compiler ID String + * \return a string of the form "Name - Version" of just "Name" if the + * version is empty + */ + QString compilerID() const; + + /** + * \brief System ID String + * \return a string of the form "OS Verison Processor" + */ + QString systemID() const; +}; + +extern const Config BuildConfig; |
