74 constexpr
bool isUnix() const noexcept {
100 #if defined(__ANDROID__)
103 #elif defined(__APPLE__) && defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
106 #elif defined(__APPLE__) && defined(__MACH__)
109 #elif defined(_WIN32) || defined(_WIN64) || defined(__CYGWIN__)
112 #elif defined(__FreeBSD__)
114 #elif defined(__OpenBSD__)
116 #elif defined(__NetBSD__)
119 #elif defined(__linux__) || defined(__gnu_linux__)
177 const char* os_name =
nullptr;
178 const char* kernel_family =
nullptr;
183 kernel_family =
"nt";
187 kernel_family =
"posix";
191 kernel_family =
"posix";
195 kernel_family =
"posix";
199 kernel_family =
"posix";
203 kernel_family =
"unix";
207 kernel_family =
"unix";
211 kernel_family =
"unix";
215 kernel_family =
"unix";
219 kernel_family =
"posix";
223 kernel_family =
"unix";
228 kernel_family =
"unknown";
245 #if defined(_POSIX_VERSION)
248 #elif defined(__unix__) || defined(__unix) || defined(unix)
251 #elif defined(__linux__) || defined(__gnu_linux__)
253 #elif defined(__APPLE__) && defined(__MACH__)
255 #elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
257 #elif defined(__ANDROID__)
273 #if defined(_WIN32) || defined(_WIN64)
275 #elif defined(__CYGWIN__)
321 #if defined(_WIN32) || defined(_WIN64) || defined(__CYGWIN__)
322 #define TRLC_PLATFORM_WINDOWS 1
324 #define TRLC_PLATFORM_WINDOWS 0
330 #if defined(__linux__) || defined(__gnu_linux__)
331 #define TRLC_PLATFORM_LINUX 1
333 #define TRLC_PLATFORM_LINUX 0
339 #if defined(__APPLE__) && defined(__MACH__) && !defined(TARGET_OS_IPHONE)
340 #define TRLC_PLATFORM_MACOS 1
342 #define TRLC_PLATFORM_MACOS 0
348 #if defined(_POSIX_VERSION) || defined(__unix__) || defined(__unix) || defined(unix) || \
349 defined(__linux__) || defined(__gnu_linux__) || (defined(__APPLE__) && defined(__MACH__)) || \
350 defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__ANDROID__)
351 #define TRLC_PLATFORM_POSIX 1
353 #define TRLC_PLATFORM_POSIX 0
359 #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || \
360 (defined(__APPLE__) && defined(__MACH__))
361 #define TRLC_PLATFORM_BSD 1
363 #define TRLC_PLATFORM_BSD 0
369 #if TRLC_PLATFORM_LINUX || TRLC_PLATFORM_MACOS || TRLC_PLATFORM_BSD || defined(__ANDROID__)
370 #define TRLC_PLATFORM_UNIX 1
372 #define TRLC_PLATFORM_UNIX 0
378 #if defined(__ANDROID__) || (defined(__APPLE__) && defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
379 #define TRLC_PLATFORM_MOBILE 1
381 #define TRLC_PLATFORM_MOBILE 0
387 #if TRLC_PLATFORM_UNIX && !TRLC_PLATFORM_MACOS
388 #define TRLC_PLATFORM_CASE_SENSITIVE_FS 1
390 #define TRLC_PLATFORM_CASE_SENSITIVE_FS 0