blob: 760da4ade775353f4756baa2097929712a01c510 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
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;
|