master ohmu/fastfetch-openbsd / src / detection / version / version.c
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;