137 lines
4.6 KiB
C++
137 lines
4.6 KiB
C++
// SPDX-License-Identifier: GPL-3.0-only
|
|
/*
|
|
* PolyMC - Minecraft Launcher
|
|
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
|
|
* Copyright (C) 2022 Lenny McLennington <lenny@sneed.church>
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
#include "BuildConfig.h"
|
|
#include <QObject>
|
|
|
|
const Config BuildConfig;
|
|
|
|
Config::Config()
|
|
{
|
|
// Name and copyright
|
|
LAUNCHER_NAME = "@Launcher_Name@";
|
|
LAUNCHER_APP_BINARY_NAME = "@Launcher_APP_BINARY_NAME@";
|
|
LAUNCHER_DISPLAYNAME = "@Launcher_DisplayName@";
|
|
LAUNCHER_COPYRIGHT = "@Launcher_Copyright@";
|
|
LAUNCHER_DOMAIN = "@Launcher_Domain@";
|
|
LAUNCHER_CONFIGFILE = "@Launcher_ConfigFile@";
|
|
LAUNCHER_GIT = "@Launcher_Git@";
|
|
LAUNCHER_DESKTOPFILENAME = "@Launcher_DesktopFileName@";
|
|
LAUNCHER_SVGFILENAME = "@Launcher_SVGFileName@";
|
|
|
|
USER_AGENT = "@Launcher_UserAgent@";
|
|
USER_AGENT_UNCACHED = USER_AGENT + " (Uncached)";
|
|
|
|
// Version information
|
|
VERSION_MAJOR = @Launcher_VERSION_MAJOR@;
|
|
VERSION_MINOR = @Launcher_VERSION_MINOR@;
|
|
|
|
BUILD_PLATFORM = "@Launcher_BUILD_PLATFORM@";
|
|
BUILD_DATE = "@Launcher_BUILD_TIMESTAMP@";
|
|
UPDATER_BASE = "@Launcher_UPDATER_BASE@";
|
|
|
|
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;
|
|
}
|
|
|
|
GIT_COMMIT = "@Launcher_GIT_COMMIT@";
|
|
GIT_TAG = "@Launcher_GIT_TAG@";
|
|
GIT_REFSPEC = "@Launcher_GIT_REFSPEC@";
|
|
|
|
// Assume that builds outside of Git repos are "stable"
|
|
if (GIT_REFSPEC == QStringLiteral("GITDIR-NOTFOUND")
|
|
|| GIT_TAG == QStringLiteral("GITDIR-NOTFOUND")
|
|
|| GIT_REFSPEC == QStringLiteral("")
|
|
|| GIT_TAG == QStringLiteral("GIT-NOTFOUND"))
|
|
{
|
|
GIT_REFSPEC = "refs/heads/stable";
|
|
GIT_TAG = versionString();
|
|
}
|
|
|
|
if (GIT_REFSPEC.startsWith("refs/heads/"))
|
|
{
|
|
VERSION_CHANNEL = GIT_REFSPEC;
|
|
VERSION_CHANNEL.remove("refs/heads/");
|
|
if(!UPDATER_BASE.isEmpty() && !BUILD_PLATFORM.isEmpty()) {
|
|
UPDATER_ENABLED = true;
|
|
}
|
|
}
|
|
else if (!GIT_COMMIT.isEmpty())
|
|
{
|
|
VERSION_CHANNEL = GIT_COMMIT.mid(0, 8);
|
|
}
|
|
else
|
|
{
|
|
VERSION_CHANNEL = "unknown";
|
|
}
|
|
|
|
NEWS_RSS_URL = "@Launcher_NEWS_RSS_URL@";
|
|
NEWS_OPEN_URL = "@Launcher_NEWS_OPEN_URL@";
|
|
HELP_URL = "@Launcher_HELP_URL@";
|
|
IMGUR_CLIENT_ID = "@Launcher_IMGUR_CLIENT_ID@";
|
|
MSA_CLIENT_ID = "@Launcher_MSA_CLIENT_ID@";
|
|
FLAME_API_KEY = "@Launcher_CURSEFORGE_API_KEY@";
|
|
FLAME_API_KEY_API_URL = "@Launcher_CURSEFORGE_API_KEY_API_URL@";
|
|
META_URL = "@Launcher_META_URL@";
|
|
|
|
BUG_TRACKER_URL = "@Launcher_BUG_TRACKER_URL@";
|
|
TRANSLATIONS_URL = "@Launcher_TRANSLATIONS_URL@";
|
|
MATRIX_URL = "@Launcher_MATRIX_URL@";
|
|
DISCORD_URL = "@Launcher_DISCORD_URL@";
|
|
SUBREDDIT_URL = "@Launcher_SUBREDDIT_URL@";
|
|
}
|
|
|
|
QString Config::versionString() const
|
|
{
|
|
return QString("%1.%2").arg(VERSION_MAJOR).arg(VERSION_MINOR);
|
|
}
|
|
|
|
QString Config::printableVersionString() const
|
|
{
|
|
QString vstr = versionString();
|
|
|
|
// If the build is not a main release, append the channel
|
|
if(VERSION_CHANNEL != "stable" && GIT_TAG != vstr)
|
|
{
|
|
vstr += "-" + VERSION_CHANNEL;
|
|
}
|
|
return vstr;
|
|
}
|