2022-03-19 11:46:56 +00:00
|
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
/*
|
|
|
|
* PolyMC - Minecraft Launcher
|
|
|
|
* 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.
|
|
|
|
*/
|
|
|
|
|
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@";
|
|
|
|
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@";
|
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@;
|
|
|
|
VERSION_HOTFIX = @Launcher_VERSION_HOTFIX@;
|
|
|
|
VERSION_BUILD = @Launcher_VERSION_BUILD@;
|
|
|
|
|
|
|
|
BUILD_PLATFORM = "@Launcher_BUILD_PLATFORM@";
|
|
|
|
UPDATER_BASE = "@Launcher_UPDATER_BASE@";
|
|
|
|
|
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@";
|
|
|
|
|
|
|
|
if (BUILD_PLATFORM == "macOS" && !MAC_SPARKLE_PUB_KEY.isEmpty() && !MAC_SPARKLE_APPCAST_URL.isEmpty())
|
|
|
|
{
|
|
|
|
UPDATER_ENABLED = true;
|
|
|
|
}
|
|
|
|
|
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-06-23 10:02:25 +01:00
|
|
|
|| GIT_TAG == QStringLiteral("GITDIR-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();
|
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;
|
|
|
|
VERSION_CHANNEL.remove("refs/heads/");
|
2022-02-12 17:17:56 +00:00
|
|
|
if(!UPDATER_BASE.isEmpty() && !BUILD_PLATFORM.isEmpty() && VERSION_BUILD >= 0) {
|
|
|
|
UPDATER_ENABLED = true;
|
|
|
|
}
|
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
|
|
|
VERSION_STR = "@Launcher_VERSION_STRING@";
|
|
|
|
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
|
|
|
|
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
|
|
|
|
{
|
|
|
|
return QString("%1.%2.%3").arg(VERSION_MAJOR).arg(VERSION_MINOR).arg(VERSION_HOTFIX);
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
|
|
|
// if a build number is set, also add it to the end
|
|
|
|
if(VERSION_BUILD >= 0)
|
|
|
|
{
|
2022-06-17 21:03:15 +01:00
|
|
|
vstr += "+build." + QString::number(VERSION_BUILD);
|
2018-07-15 13:51:05 +01:00
|
|
|
}
|
|
|
|
return vstr;
|
2014-04-05 21:58:47 +01:00
|
|
|
}
|