135 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			135 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// 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.
 | 
						|
 */
 | 
						|
 | 
						|
#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@";
 | 
						|
    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;
 | 
						|
}
 |