120 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			4.0 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_DISPLAYNAME = "@Launcher_DisplayName@";
 | 
						|
    LAUNCHER_COPYRIGHT = "@Launcher_Copyright@";
 | 
						|
    LAUNCHER_DOMAIN = "@Launcher_Domain@";
 | 
						|
    LAUNCHER_CONFIGFILE = "@Launcher_ConfigFile@";
 | 
						|
    LAUNCHER_GIT = "@Launcher_Git@";
 | 
						|
    LAUNCHER_DESKTOPFILENAME = "@Launcher_DesktopFileName@";
 | 
						|
 | 
						|
    USER_AGENT = "@Launcher_UserAgent@";
 | 
						|
    USER_AGENT_UNCACHED = USER_AGENT + " (Uncached)";
 | 
						|
 | 
						|
    // Version information
 | 
						|
    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@";
 | 
						|
 | 
						|
    GIT_COMMIT = "@Launcher_GIT_COMMIT@";
 | 
						|
    GIT_REFSPEC = "@Launcher_GIT_REFSPEC@";
 | 
						|
    if (GIT_REFSPEC == QStringLiteral("GITDIR-NOTFOUND"))
 | 
						|
    {
 | 
						|
        VERSION_CHANNEL = QStringLiteral("stable");
 | 
						|
    }
 | 
						|
    else if(GIT_REFSPEC.startsWith("refs/heads/"))
 | 
						|
    {
 | 
						|
        VERSION_CHANNEL = GIT_REFSPEC;
 | 
						|
        VERSION_CHANNEL.remove("refs/heads/");
 | 
						|
        if(!UPDATER_BASE.isEmpty() && !BUILD_PLATFORM.isEmpty() && VERSION_BUILD >= 0) {
 | 
						|
            UPDATER_ENABLED = true;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    else if (!GIT_COMMIT.isEmpty())
 | 
						|
    {
 | 
						|
        VERSION_CHANNEL = GIT_COMMIT.mid(0, 8);
 | 
						|
    }
 | 
						|
    else
 | 
						|
    {
 | 
						|
        VERSION_CHANNEL = QObject::tr("unknown");
 | 
						|
    }
 | 
						|
 | 
						|
    VERSION_STR = "@Launcher_VERSION_STRING@";
 | 
						|
    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@";
 | 
						|
    CURSEFORGE_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::printableVersionString() const
 | 
						|
{
 | 
						|
    QString vstr = QString("%1.%2.%3").arg(QString::number(VERSION_MAJOR), QString::number(VERSION_MINOR), QString::number(VERSION_HOTFIX));
 | 
						|
 | 
						|
    // If the build is not a main release, append the channel
 | 
						|
    if(VERSION_CHANNEL != "stable")
 | 
						|
    {
 | 
						|
        vstr += "-" + VERSION_CHANNEL;
 | 
						|
    }
 | 
						|
 | 
						|
    // if a build number is set, also add it to the end
 | 
						|
    if(VERSION_BUILD >= 0)
 | 
						|
    {
 | 
						|
        vstr += "-" + QString::number(VERSION_BUILD);
 | 
						|
    }
 | 
						|
    return vstr;
 | 
						|
}
 |