ohmu
·
2026-10-15
1#include "version.h"
2#include "common/strutil.h"
3
4#if defined(__x86_64__)
5 #define FF_ARCHITECTURE "x86_64"
6#elif defined(__i386__)
7 #define FF_ARCHITECTURE "i386"
8#elif defined(__ia64__)
9 #define FF_ARCHITECTURE "ia64"
10#elif defined(__aarch64__)
11 #define FF_ARCHITECTURE "aarch64"
12#elif defined(__arm__)
13 #define FF_ARCHITECTURE "arm"
14#elif defined(__mips__)
15 #define FF_ARCHITECTURE "mips"
16#elif defined(__powerpc__) || defined(__powerpc)
17 #define FF_ARCHITECTURE "powerpc"
18#elif defined(__riscv__) || defined(__riscv)
19 #define FF_ARCHITECTURE "riscv"
20#elif defined(__s390x__)
21 #define FF_ARCHITECTURE "s390x"
22#elif defined(__loongarch__)
23 #define FF_ARCHITECTURE "loongarch"
24#elif defined(__sparc__)
25 #define FF_ARCHITECTURE "sparc"
26#elif defined(__alpha__)
27 #define FF_ARCHITECTURE "alpha"
28#elif defined(__hppa__)
29 #define FF_ARCHITECTURE "hppa"
30#elif defined(__sh__)
31 #define FF_ARCHITECTURE "sh"
32#elif defined(__m68k__)
33 #define FF_ARCHITECTURE "m68k"
34#else
35 #define FF_ARCHITECTURE "Unknown"
36#endif
37
38#if defined(__ANDROID__)
39 #define FF_SYSNAME "Android"
40#elif defined(__linux__)
41 #define FF_SYSNAME "Linux"
42#elif defined(__DragonFly__) // We define `__FreeBSD__` on DragonFly BSD for simplification
43 #define FF_SYSNAME "DragonFly"
44#elif defined(__MidnightBSD__)
45 #define FF_SYSNAME "MidnightBSD"
46#elif defined(__FreeBSD__)
47 #define FF_SYSNAME "FreeBSD"
48#elif defined(__APPLE__)
49 #define FF_SYSNAME "macOS"
50#elif defined(_WIN32)
51 #define FF_SYSNAME "Windows"
52#elif defined(__sun)
53 #define FF_SYSNAME "SunOS"
54#elif defined(__OpenBSD__)
55 #define FF_SYSNAME "OpenBSD"
56#elif defined(__NetBSD__)
57 #define FF_SYSNAME "NetBSD"
58#elif defined(__HAIKU__)
59 #define FF_SYSNAME "Haiku"
60#elif defined(__GNU__)
61 #define FF_SYSNAME "GNU"
62#else
63 #define FF_SYSNAME "Unknown"
64#endif
65
66FFVersionResult ffVersionResult = {
67 .projectName = FASTFETCH_PROJECT_NAME,
68 .sysName = FF_SYSNAME,
69 .architecture = FF_ARCHITECTURE,
70 .version = FASTFETCH_PROJECT_VERSION,
71 .versionTweak = FASTFETCH_PROJECT_VERSION_TWEAK,
72 .versionGit = FASTFETCH_PROJECT_VERSION_GIT,
73 .cmakeBuiltType = FASTFETCH_PROJECT_CMAKE_BUILD_TYPE,
74 .compileTime = __DATE__ ", " __TIME__,
75 .compiler =
76
77#ifdef __clang__
78 #ifdef _MSC_VER
79 "clang-cl ";
80 #elif defined(__APPLE__) && defined(__apple_build_version__)
81 "Apple clang "
82 #else
83 "clang "
84 #endif
85
86FF_STR(__clang_major__)
87"." FF_STR(__clang_minor__) "." FF_STR(__clang_patchlevel__)
88
89 #if defined(__APPLE__) && defined(__apple_build_version__)
90 " (" FF_STR(__apple_build_version__) ")"
91 #endif
92 ,
93#elif defined(__GNUC__)
94 "gcc " FF_STR(__GNUC__) "." FF_STR(__GNUC_MINOR__) "." FF_STR(__GNUC_PATCHLEVEL__),
95#elif defined(_MSC_VER)
96 "msvc " FF_STR(_MSC_VER),
97#else
98 "unknown",
99#endif
100
101 .debugMode =
102#ifndef NDEBUG
103 true,
104#else
105 false,
106#endif
107}
108;