2022-03-19 11:46:56 +00:00
|
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
/*
|
2023-08-04 18:41:47 +01:00
|
|
|
* Prism Launcher - Minecraft Launcher
|
2022-03-19 11:46:56 +00:00
|
|
|
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
|
|
|
|
*
|
|
|
|
* 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, version 3.
|
|
|
|
*
|
|
|
|
* 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/>.
|
|
|
|
*
|
|
|
|
* This file incorporates work covered by the following copyright and
|
|
|
|
* permission notice:
|
|
|
|
*
|
|
|
|
* Copyright 2013-2021 MultiMC Contributors
|
|
|
|
*
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
*
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* limitations under the License.
|
|
|
|
*/
|
|
|
|
|
2023-06-27 07:24:46 +01:00
|
|
|
#include <qstringliteral.h>
|
2014-04-06 02:59:37 +01:00
|
|
|
#include "BuildConfig.h"
|
2015-03-24 21:40:49 +00:00
|
|
|
#include <QObject>
|
2014-04-05 21:58:47 +01:00
|
|
|
|
2020-07-18 15:18:02 +01:00
|
|
|
const Config BuildConfig;
|
2014-04-05 21:58:47 +01:00
|
|
|
|
|
|
|
Config::Config()
|
|
|
|
{
|
2021-10-17 23:47:02 +01:00
|
|
|
// Name and copyright
|
|
|
|
LAUNCHER_NAME = "@Launcher_Name@";
|
2022-10-22 02:37:31 +01:00
|
|
|
LAUNCHER_APP_BINARY_NAME = "@Launcher_APP_BINARY_NAME@";
|
2021-10-17 23:47:02 +01:00
|
|
|
LAUNCHER_DISPLAYNAME = "@Launcher_DisplayName@";
|
|
|
|
LAUNCHER_COPYRIGHT = "@Launcher_Copyright@";
|
|
|
|
LAUNCHER_DOMAIN = "@Launcher_Domain@";
|
|
|
|
LAUNCHER_CONFIGFILE = "@Launcher_ConfigFile@";
|
2021-10-20 22:06:21 +01:00
|
|
|
LAUNCHER_GIT = "@Launcher_Git@";
|
2022-02-10 07:56:34 +00:00
|
|
|
LAUNCHER_DESKTOPFILENAME = "@Launcher_DesktopFileName@";
|
2022-10-29 16:10:18 +01:00
|
|
|
LAUNCHER_SVGFILENAME = "@Launcher_SVGFileName@";
|
2021-10-17 23:47:02 +01:00
|
|
|
|
|
|
|
USER_AGENT = "@Launcher_UserAgent@";
|
|
|
|
USER_AGENT_UNCACHED = USER_AGENT + " (Uncached)";
|
|
|
|
|
2018-07-15 13:51:05 +01:00
|
|
|
// Version information
|
2021-10-13 00:59:25 +01:00
|
|
|
VERSION_MAJOR = @Launcher_VERSION_MAJOR@;
|
|
|
|
VERSION_MINOR = @Launcher_VERSION_MINOR@;
|
|
|
|
|
|
|
|
BUILD_PLATFORM = "@Launcher_BUILD_PLATFORM@";
|
2023-06-27 07:24:46 +01:00
|
|
|
BUILD_ARTIFACT = "@Launcher_BUILD_ARTIFACT@";
|
2022-07-23 13:20:52 +01:00
|
|
|
BUILD_DATE = "@Launcher_BUILD_TIMESTAMP@";
|
2023-06-25 06:22:24 +01:00
|
|
|
UPDATER_GITHUB_REPO = "@Launcher_UPDATER_GITHUB_REPO@";
|
2021-10-13 00:59:25 +01:00
|
|
|
|
2023-06-27 07:24:46 +01:00
|
|
|
COMPILER_NAME = "@Launcher_COMPILER_NAME@";
|
|
|
|
COMPILER_VERSION = "@Launcher_COMPILER_VERSION@";
|
|
|
|
|
|
|
|
COMPILER_TARGET_SYSTEM = "@Launcher_COMPILER_TARGET_SYSTEM@";
|
|
|
|
COMPILER_TARGET_SYSTEM_VERSION = "@Launcher_COMPILER_TARGET_SYSTEM_VERSION@";
|
|
|
|
COMPILER_TARGET_SYSTEM_PROCESSOR = "@Launcher_COMPILER_TARGET_PROCESSOR@";
|
|
|
|
|
2022-04-19 07:09:16 +01:00
|
|
|
MAC_SPARKLE_PUB_KEY = "@MACOSX_SPARKLE_UPDATE_PUBLIC_KEY@";
|
|
|
|
MAC_SPARKLE_APPCAST_URL = "@MACOSX_SPARKLE_UPDATE_FEED_URL@";
|
|
|
|
|
2023-06-26 10:53:14 +01:00
|
|
|
if (!MAC_SPARKLE_PUB_KEY.isEmpty() && !MAC_SPARKLE_APPCAST_URL.isEmpty())
|
2022-04-19 07:09:16 +01:00
|
|
|
{
|
|
|
|
UPDATER_ENABLED = true;
|
2023-06-29 22:01:11 +01:00
|
|
|
} else if(!UPDATER_GITHUB_REPO.isEmpty() && !BUILD_ARTIFACT.isEmpty()) {
|
|
|
|
UPDATER_ENABLED = true;
|
2022-04-19 07:09:16 +01:00
|
|
|
}
|
|
|
|
|
2021-10-13 00:59:25 +01:00
|
|
|
GIT_COMMIT = "@Launcher_GIT_COMMIT@";
|
2022-06-17 20:55:55 +01:00
|
|
|
GIT_TAG = "@Launcher_GIT_TAG@";
|
2021-10-13 00:59:25 +01:00
|
|
|
GIT_REFSPEC = "@Launcher_GIT_REFSPEC@";
|
2022-06-23 10:02:25 +01:00
|
|
|
|
|
|
|
// Assume that builds outside of Git repos are "stable"
|
2022-06-17 20:55:55 +01:00
|
|
|
if (GIT_REFSPEC == QStringLiteral("GITDIR-NOTFOUND")
|
2022-12-23 00:25:04 +00:00
|
|
|
|| GIT_TAG == QStringLiteral("GITDIR-NOTFOUND")
|
2022-12-24 01:50:08 +00:00
|
|
|
|| GIT_REFSPEC == QStringLiteral("")
|
2022-12-23 00:25:04 +00:00
|
|
|
|| GIT_TAG == QStringLiteral("GIT-NOTFOUND"))
|
2022-03-15 08:04:43 +00:00
|
|
|
{
|
2022-06-23 10:02:25 +01:00
|
|
|
GIT_REFSPEC = "refs/heads/stable";
|
|
|
|
GIT_TAG = versionString();
|
2023-06-17 15:04:36 +01:00
|
|
|
GIT_COMMIT = "";
|
2022-03-15 08:04:43 +00:00
|
|
|
}
|
2022-06-23 10:02:25 +01:00
|
|
|
|
|
|
|
if (GIT_REFSPEC.startsWith("refs/heads/"))
|
2018-07-15 13:51:05 +01:00
|
|
|
{
|
|
|
|
VERSION_CHANNEL = GIT_REFSPEC;
|
2023-06-29 22:01:11 +01:00
|
|
|
VERSION_CHANNEL.remove("refs/heads/");
|
2018-07-15 13:51:05 +01:00
|
|
|
}
|
2022-02-12 18:04:22 +00:00
|
|
|
else if (!GIT_COMMIT.isEmpty())
|
|
|
|
{
|
|
|
|
VERSION_CHANNEL = GIT_COMMIT.mid(0, 8);
|
|
|
|
}
|
2018-07-15 13:51:05 +01:00
|
|
|
else
|
|
|
|
{
|
2022-06-23 10:02:25 +01:00
|
|
|
VERSION_CHANNEL = "unknown";
|
2018-07-15 13:51:05 +01:00
|
|
|
}
|
|
|
|
|
2021-10-13 00:59:25 +01:00
|
|
|
NEWS_RSS_URL = "@Launcher_NEWS_RSS_URL@";
|
2022-02-10 12:14:25 +00:00
|
|
|
NEWS_OPEN_URL = "@Launcher_NEWS_OPEN_URL@";
|
2022-03-06 10:31:50 +00:00
|
|
|
HELP_URL = "@Launcher_HELP_URL@";
|
2021-10-13 00:59:25 +01:00
|
|
|
IMGUR_CLIENT_ID = "@Launcher_IMGUR_CLIENT_ID@";
|
2021-12-20 02:41:08 +00:00
|
|
|
MSA_CLIENT_ID = "@Launcher_MSA_CLIENT_ID@";
|
2022-05-29 20:29:07 +01:00
|
|
|
FLAME_API_KEY = "@Launcher_CURSEFORGE_API_KEY@";
|
2021-10-13 00:59:25 +01:00
|
|
|
META_URL = "@Launcher_META_URL@";
|
2021-06-18 12:24:20 +01:00
|
|
|
|
2023-08-02 12:45:08 +01:00
|
|
|
GLFW_LIBRARY_NAME = "@Launcher_GLFW_LIBRARY_NAME@";
|
|
|
|
OPENAL_LIBRARY_NAME = "@Launcher_OPENAL_LIBRARY_NAME@";
|
|
|
|
|
2021-10-13 00:59:25 +01:00
|
|
|
BUG_TRACKER_URL = "@Launcher_BUG_TRACKER_URL@";
|
2022-02-10 13:55:52 +00:00
|
|
|
TRANSLATIONS_URL = "@Launcher_TRANSLATIONS_URL@";
|
2022-03-08 17:41:23 +00:00
|
|
|
MATRIX_URL = "@Launcher_MATRIX_URL@";
|
2021-10-13 00:59:25 +01:00
|
|
|
DISCORD_URL = "@Launcher_DISCORD_URL@";
|
|
|
|
SUBREDDIT_URL = "@Launcher_SUBREDDIT_URL@";
|
2014-04-05 21:58:47 +01:00
|
|
|
}
|
|
|
|
|
2022-06-23 10:02:25 +01:00
|
|
|
QString Config::versionString() const
|
|
|
|
{
|
2023-06-28 08:25:09 +01:00
|
|
|
return QString("%1.%2").arg(VERSION_MAJOR).arg(VERSION_MINOR);
|
2022-06-23 10:02:25 +01:00
|
|
|
}
|
|
|
|
|
2014-04-05 21:58:47 +01:00
|
|
|
QString Config::printableVersionString() const
|
|
|
|
{
|
2022-06-23 10:02:25 +01:00
|
|
|
QString vstr = versionString();
|
2018-07-15 13:51:05 +01:00
|
|
|
|
|
|
|
// If the build is not a main release, append the channel
|
2022-06-17 21:02:45 +01:00
|
|
|
if(VERSION_CHANNEL != "stable" && GIT_TAG != vstr)
|
2018-07-15 13:51:05 +01:00
|
|
|
{
|
|
|
|
vstr += "-" + VERSION_CHANNEL;
|
|
|
|
}
|
|
|
|
return vstr;
|
2014-04-05 21:58:47 +01:00
|
|
|
}
|
2023-06-27 07:24:46 +01:00
|
|
|
|
|
|
|
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);
|
|
|
|
}
|
|
|
|
|