OpenRCT2/src/openrct2/Version.h

92 lines
2.4 KiB
C
Raw Normal View History

/*****************************************************************************
2020-07-21 15:04:34 +02:00
* Copyright (c) 2014-2020 OpenRCT2 developers
*
* For a complete list of all authors, please refer to contributors.md
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
*
* OpenRCT2 is licensed under the GNU General Public License version 3.
*****************************************************************************/
#pragma once
#include "common.h"
#include <string>
2018-06-22 23:25:16 +02:00
#define OPENRCT2_NAME "OpenRCT2"
#define OPENRCT2_VERSION "0.3.5.1"
2016-08-19 01:18:09 +02:00
2016-08-28 16:54:38 +02:00
#if defined(__amd64__) || defined(_M_AMD64)
2018-07-21 16:17:06 +02:00
# define OPENRCT2_ARCHITECTURE "x86-64"
2016-08-28 16:54:38 +02:00
#elif defined(__i386__) || defined(_M_IX86)
2018-07-21 16:17:06 +02:00
# define OPENRCT2_ARCHITECTURE "x86"
2019-10-15 06:47:49 +02:00
#elif defined(__aarch64__) || defined(_M_ARM64)
2018-07-21 16:17:06 +02:00
# define OPENRCT2_ARCHITECTURE "AArch64"
2016-08-28 16:54:38 +02:00
#elif defined(__arm__) || defined(_M_ARM)
2018-07-21 16:17:06 +02:00
# if defined(__ARM_ARCH_7A__)
# define OPENRCT2_ARCHITECTURE "arm-v7a"
# else
# define OPENRCT2_ARCHITECTURE "arm"
# endif
#elif defined(__powerpc__) || defined(_M_PPC)
2018-07-21 16:17:06 +02:00
# define OPENRCT2_ARCHITECTURE "PowerPC"
2017-06-15 14:22:15 +02:00
#elif defined(__mips64)
2018-07-21 16:17:06 +02:00
# define OPENRCT2_ARCHITECTURE "mips64"
2017-06-15 14:22:15 +02:00
#elif defined(__mips__)
2018-07-21 16:17:06 +02:00
# define OPENRCT2_ARCHITECTURE "mips"
#elif defined(__riscv)
# define OPENRCT2_ARCHITECTURE "RISC-V"
2016-08-28 16:54:38 +02:00
#endif
#ifdef __EMSCRIPTEN__
2018-07-21 16:17:06 +02:00
# define OPENRCT2_ARCHITECTURE "Emscripten"
#endif
2016-08-28 16:54:38 +02:00
#ifndef OPENRCT2_ARCHITECTURE
2018-07-21 16:17:06 +02:00
# error "OPENRCT2_ARCHITECTURE is undefined. Please add identification."
2016-08-19 01:18:09 +02:00
#endif
// Platform
2017-06-12 19:00:15 +02:00
#ifdef _WIN32
2018-07-21 16:17:06 +02:00
# define OPENRCT2_PLATFORM "Windows"
#endif
2017-06-15 14:22:15 +02:00
#if defined(__linux__) && !defined(__ANDROID__)
2018-07-21 16:17:06 +02:00
# define OPENRCT2_PLATFORM "Linux"
#endif
2017-06-12 19:00:15 +02:00
#if (defined(__APPLE__) && defined(__MACH__))
2018-07-21 16:17:06 +02:00
# define OPENRCT2_PLATFORM "macOS"
#endif
2017-06-12 19:00:15 +02:00
#ifdef __FreeBSD__
2018-07-21 16:17:06 +02:00
# define OPENRCT2_PLATFORM "FreeBSD"
#endif
#ifdef __NetBSD__
# define OPENRCT2_PLATFORM "NetBSD"
#endif
2017-06-15 14:22:15 +02:00
#ifdef __ANDROID__
2018-07-21 16:17:06 +02:00
# define OPENRCT2_PLATFORM "Android"
2017-06-15 14:22:15 +02:00
#endif
2017-06-25 21:25:55 +02:00
#ifdef __OpenBSD__
2018-07-21 16:17:06 +02:00
# define OPENRCT2_PLATFORM "OpenBSD"
2017-06-25 21:25:55 +02:00
#endif
#ifdef __EMSCRIPTEN__
2018-07-21 16:17:06 +02:00
# define OPENRCT2_PLATFORM "Emscripten"
#endif
#ifndef OPENRCT2_PLATFORM
2018-07-21 16:17:06 +02:00
# error Unknown platform!
#endif
#ifndef OPENRCT2_CUSTOM_INFO
2018-07-21 16:17:06 +02:00
# define OPENRCT2_CUSTOM_INFO ""
#endif
2018-02-01 18:49:14 +01:00
extern const char gVersionInfoFull[];
extern const char gVersionInfoTag[];
struct NewVersionInfo
{
std::string tag;
std::string name;
std::string changelog;
std::string url;
};
NewVersionInfo get_latest_version();