2023-08-21 09:19:16 +08:00
|
|
|
#include "version.h"
|
2026-06-13 08:25:59 +08:00
|
|
|
#include "common/strutil.h"
|
2023-08-21 09:19:16 +08:00
|
|
|
|
2024-08-22 09:17:03 +08:00
|
|
|
#if defined(__x86_64__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_ARCHITECTURE "x86_64"
|
2024-08-22 09:17:03 +08:00
|
|
|
#elif defined(__i386__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_ARCHITECTURE "i386"
|
2025-02-19 09:58:46 +08:00
|
|
|
#elif defined(__ia64__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_ARCHITECTURE "ia64"
|
2023-08-21 09:19:16 +08:00
|
|
|
#elif defined(__aarch64__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_ARCHITECTURE "aarch64"
|
2023-08-21 09:19:16 +08:00
|
|
|
#elif defined(__arm__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_ARCHITECTURE "arm"
|
2023-08-21 09:19:16 +08:00
|
|
|
#elif defined(__mips__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_ARCHITECTURE "mips"
|
2023-08-21 09:19:16 +08:00
|
|
|
#elif defined(__powerpc__) || defined(__powerpc)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_ARCHITECTURE "powerpc"
|
2023-08-21 09:19:16 +08:00
|
|
|
#elif defined(__riscv__) || defined(__riscv)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_ARCHITECTURE "riscv"
|
2023-08-21 09:19:16 +08:00
|
|
|
#elif defined(__s390x__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_ARCHITECTURE "s390x"
|
2024-08-22 09:17:03 +08:00
|
|
|
#elif defined(__loongarch__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_ARCHITECTURE "loongarch"
|
2025-02-19 09:58:46 +08:00
|
|
|
#elif defined(__sparc__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_ARCHITECTURE "sparc"
|
2025-02-19 09:58:46 +08:00
|
|
|
#elif defined(__alpha__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_ARCHITECTURE "alpha"
|
2025-02-19 09:58:46 +08:00
|
|
|
#elif defined(__hppa__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_ARCHITECTURE "hppa"
|
2025-10-05 09:22:06 +08:00
|
|
|
#elif defined(__sh__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_ARCHITECTURE "sh"
|
2025-02-19 09:58:46 +08:00
|
|
|
#elif defined(__m68k__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_ARCHITECTURE "m68k"
|
2023-08-21 09:19:16 +08:00
|
|
|
#else
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_ARCHITECTURE "Unknown"
|
2023-08-21 09:19:16 +08:00
|
|
|
#endif
|
|
|
|
|
|
2024-10-05 18:47:00 +08:00
|
|
|
#if defined(__ANDROID__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_SYSNAME "Android"
|
2024-10-05 18:47:00 +08:00
|
|
|
#elif defined(__linux__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_SYSNAME "Linux"
|
2024-11-03 11:47:24 +08:00
|
|
|
#elif defined(__DragonFly__) // We define `__FreeBSD__` on DragonFly BSD for simplification
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_SYSNAME "DragonFly"
|
2024-11-05 11:17:23 -05:00
|
|
|
#elif defined(__MidnightBSD__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_SYSNAME "MidnightBSD"
|
2024-07-02 10:12:26 +08:00
|
|
|
#elif defined(__FreeBSD__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_SYSNAME "FreeBSD"
|
2024-07-02 10:12:26 +08:00
|
|
|
#elif defined(__APPLE__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_SYSNAME "macOS"
|
2024-07-02 10:12:26 +08:00
|
|
|
#elif defined(_WIN32)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_SYSNAME "Windows"
|
2024-07-02 10:12:26 +08:00
|
|
|
#elif defined(__sun)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_SYSNAME "SunOS"
|
2024-10-04 15:58:17 +08:00
|
|
|
#elif defined(__OpenBSD__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_SYSNAME "OpenBSD"
|
2024-12-21 19:57:34 +08:00
|
|
|
#elif defined(__NetBSD__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_SYSNAME "NetBSD"
|
2025-02-05 02:08:28 +01:00
|
|
|
#elif defined(__HAIKU__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_SYSNAME "Haiku"
|
2025-05-19 15:07:46 +00:00
|
|
|
#elif defined(__GNU__)
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_SYSNAME "GNU"
|
2024-07-02 10:12:26 +08:00
|
|
|
#else
|
2026-04-15 16:16:46 +08:00
|
|
|
#define FF_SYSNAME "Unknown"
|
2024-07-02 10:12:26 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
FFVersionResult ffVersionResult = {
|
|
|
|
|
.projectName = FASTFETCH_PROJECT_NAME,
|
|
|
|
|
.sysName = FF_SYSNAME,
|
|
|
|
|
.architecture = FF_ARCHITECTURE,
|
|
|
|
|
.version = FASTFETCH_PROJECT_VERSION,
|
|
|
|
|
.versionTweak = FASTFETCH_PROJECT_VERSION_TWEAK,
|
2024-08-09 09:52:53 +08:00
|
|
|
.versionGit = FASTFETCH_PROJECT_VERSION_GIT,
|
2024-07-02 10:12:26 +08:00
|
|
|
.cmakeBuiltType = FASTFETCH_PROJECT_CMAKE_BUILD_TYPE,
|
|
|
|
|
.compileTime = __DATE__ ", " __TIME__,
|
|
|
|
|
.compiler =
|
|
|
|
|
|
2026-03-29 09:28:49 +08:00
|
|
|
#ifdef __clang__
|
2026-04-15 16:16:46 +08:00
|
|
|
#ifdef _MSC_VER
|
2026-03-29 09:28:49 +08:00
|
|
|
"clang-cl ";
|
2026-04-15 16:16:46 +08:00
|
|
|
#elif defined(__APPLE__) && defined(__apple_build_version__)
|
2026-03-29 09:28:49 +08:00
|
|
|
"Apple clang "
|
2026-04-15 16:16:46 +08:00
|
|
|
#else
|
2026-03-29 09:28:49 +08:00
|
|
|
"clang "
|
2026-04-15 16:16:46 +08:00
|
|
|
#endif
|
2024-07-02 10:12:26 +08:00
|
|
|
|
2026-03-29 09:28:49 +08:00
|
|
|
FF_STR(__clang_major__)
|
|
|
|
|
"." FF_STR(__clang_minor__) "." FF_STR(__clang_patchlevel__)
|
2024-07-02 10:12:26 +08:00
|
|
|
|
2026-04-15 16:16:46 +08:00
|
|
|
#if defined(__APPLE__) && defined(__apple_build_version__)
|
2026-03-29 09:28:49 +08:00
|
|
|
" (" FF_STR(__apple_build_version__) ")"
|
2026-04-15 16:16:46 +08:00
|
|
|
#endif
|
2026-03-29 09:28:49 +08:00
|
|
|
,
|
|
|
|
|
#elif defined(__GNUC__)
|
2024-07-02 10:12:26 +08:00
|
|
|
"gcc " FF_STR(__GNUC__) "." FF_STR(__GNUC_MINOR__) "." FF_STR(__GNUC_PATCHLEVEL__),
|
2026-03-29 09:28:49 +08:00
|
|
|
#elif defined(_MSC_VER)
|
2024-07-02 10:12:26 +08:00
|
|
|
"msvc " FF_STR(_MSC_VER),
|
2026-03-29 09:28:49 +08:00
|
|
|
#else
|
2024-07-02 10:12:26 +08:00
|
|
|
"unknown",
|
2026-03-29 09:28:49 +08:00
|
|
|
#endif
|
2024-07-02 10:12:26 +08:00
|
|
|
|
|
|
|
|
.debugMode =
|
2026-03-29 09:28:49 +08:00
|
|
|
#ifndef NDEBUG
|
2024-07-02 10:12:26 +08:00
|
|
|
true,
|
2026-03-29 09:28:49 +08:00
|
|
|
#else
|
2024-07-02 10:12:26 +08:00
|
|
|
false,
|
2026-03-29 09:28:49 +08:00
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
;
|