1 /***************************************************************************** 2 * Copyright (c) 2014-2020 OpenRCT2 developers 3 * 4 * For a complete list of all authors, please refer to contributors.md 5 * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 6 * 7 * OpenRCT2 is licensed under the GNU General Public License version 3. 8 *****************************************************************************/ 9 10 #pragma once 11 12 #include "common.h" 13 14 #include <string> 15 16 #define OPENRCT2_NAME "OpenRCT2" 17 #define OPENRCT2_VERSION "0.3.5.1" 18 19 #if defined(__amd64__) || defined(_M_AMD64) 20 # define OPENRCT2_ARCHITECTURE "x86-64" 21 #elif defined(__i386__) || defined(_M_IX86) 22 # define OPENRCT2_ARCHITECTURE "x86" 23 #elif defined(__aarch64__) || defined(_M_ARM64) 24 # define OPENRCT2_ARCHITECTURE "AArch64" 25 #elif defined(__arm__) || defined(_M_ARM) 26 # if defined(__ARM_ARCH_7A__) 27 # define OPENRCT2_ARCHITECTURE "arm-v7a" 28 # else 29 # define OPENRCT2_ARCHITECTURE "arm" 30 # endif 31 #elif defined(__powerpc__) || defined(_M_PPC) 32 # define OPENRCT2_ARCHITECTURE "PowerPC" 33 #elif defined(__mips64) 34 # define OPENRCT2_ARCHITECTURE "mips64" 35 #elif defined(__mips__) 36 # define OPENRCT2_ARCHITECTURE "mips" 37 #elif defined(__riscv) 38 # define OPENRCT2_ARCHITECTURE "RISC-V" 39 #endif 40 #ifdef __EMSCRIPTEN__ 41 # define OPENRCT2_ARCHITECTURE "Emscripten" 42 #endif 43 44 #ifndef OPENRCT2_ARCHITECTURE 45 # error "OPENRCT2_ARCHITECTURE is undefined. Please add identification." 46 #endif 47 48 // Platform 49 #ifdef _WIN32 50 # define OPENRCT2_PLATFORM "Windows" 51 #endif 52 #if defined(__linux__) && !defined(__ANDROID__) 53 # define OPENRCT2_PLATFORM "Linux" 54 #endif 55 #if (defined(__APPLE__) && defined(__MACH__)) 56 # define OPENRCT2_PLATFORM "macOS" 57 #endif 58 #ifdef __FreeBSD__ 59 # define OPENRCT2_PLATFORM "FreeBSD" 60 #endif 61 #ifdef __NetBSD__ 62 # define OPENRCT2_PLATFORM "NetBSD" 63 #endif 64 #ifdef __ANDROID__ 65 # define OPENRCT2_PLATFORM "Android" 66 #endif 67 #ifdef __OpenBSD__ 68 # define OPENRCT2_PLATFORM "OpenBSD" 69 #endif 70 #ifdef __EMSCRIPTEN__ 71 # define OPENRCT2_PLATFORM "Emscripten" 72 #endif 73 #ifndef OPENRCT2_PLATFORM 74 # error Unknown platform! 75 #endif 76 77 #ifndef OPENRCT2_CUSTOM_INFO 78 # define OPENRCT2_CUSTOM_INFO "" 79 #endif 80 81 extern const char gVersionInfoFull[]; 82 extern const char gVersionInfoTag[]; 83 struct NewVersionInfo 84 { 85 std::string tag; 86 std::string name; 87 std::string changelog; 88 std::string url; 89 }; 90 91 NewVersionInfo get_latest_version(); 92