Unravel Engine C++ Reference
Loading...
Searching...
No Matches
config.hpp
Go to the documentation of this file.
1#pragma once
2#include <cstdint>
3
4#if !defined(DEBUG) && !defined(_DEBUG)
5#ifndef NDEBUG
6#define NDEBUG
7#endif
8#ifndef _NDEBUG
9#define _NDEBUG
10#endif
11#endif
12
13
14// Architecture
15#define UNRAVEL_ARCH_32BIT 0
16#define UNRAVEL_ARCH_64BIT 0
17
18// Compiler
19#define UNRAVEL_COMPILER_CLANG 0
20#define UNRAVEL_COMPILER_CLANG_ANALYZER 0
21#define UNRAVEL_COMPILER_GCC 0
22#define UNRAVEL_COMPILER_MSVC 0
23
24// Endianness
25#define UNRAVEL_CPU_ENDIAN_BIG 0
26#define UNRAVEL_CPU_ENDIAN_LITTLE 0
27
28// CPU
29#define UNRAVEL_CPU_ARM 0
30#define UNRAVEL_CPU_JIT 0
31#define UNRAVEL_CPU_MIPS 0
32#define UNRAVEL_CPU_PPC 0
33#define UNRAVEL_CPU_RISCV 0
34#define UNRAVEL_CPU_X86 0
35
36// C Runtime
37#define UNRAVEL_CRT_BIONIC 0
38#define UNRAVEL_CRT_GLIBC 0
39#define UNRAVEL_CRT_LIBCXX 0
40#define UNRAVEL_CRT_MINGW 0
41#define UNRAVEL_CRT_MSVC 0
42#define UNRAVEL_CRT_NEWLIB 0
43
44#ifndef UNRAVEL_CRT_NONE
45# define UNRAVEL_CRT_NONE 0
46#endif // UNRAVEL_CRT_NONE
47
48// Language standard version
49#define UNRAVEL_LANGUAGE_CPP17 201703L
50#define UNRAVEL_LANGUAGE_CPP20 202002L
51#define UNRAVEL_LANGUAGE_CPP23 202207L
52
53// Platform
54#define UNRAVEL_PLATFORM_ANDROID 0
55#define UNRAVEL_PLATFORM_BSD 0
56#define UNRAVEL_PLATFORM_EMSCRIPTEN 0
57#define UNRAVEL_PLATFORM_HAIKU 0
58#define UNRAVEL_PLATFORM_HURD 0
59#define UNRAVEL_PLATFORM_IOS 0
60#define UNRAVEL_PLATFORM_LINUX 0
61#define UNRAVEL_PLATFORM_NX 0
62#define UNRAVEL_PLATFORM_OSX 0
63#define UNRAVEL_PLATFORM_PS4 0
64#define UNRAVEL_PLATFORM_PS5 0
65#define UNRAVEL_PLATFORM_RPI 0
66#define UNRAVEL_PLATFORM_VISIONOS 0
67#define UNRAVEL_PLATFORM_WINDOWS 0
68#define UNRAVEL_PLATFORM_WINRT 0
69#define UNRAVEL_PLATFORM_XBOXONE 0
70
71// http://sourceforge.net/apps/mediawiki/predef/index.php?title=Compilers
72#if defined(__clang__)
73// clang defines __GNUC__ or _MSC_VER
74# undef UNRAVEL_COMPILER_CLANG
75# define UNRAVEL_COMPILER_CLANG (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__)
76# if defined(__clang_analyzer__)
77# undef UNRAVEL_COMPILER_CLANG_ANALYZER
78# define UNRAVEL_COMPILER_CLANG_ANALYZER 1
79# endif // defined(__clang_analyzer__)
80#elif defined(_MSC_VER)
81# undef UNRAVEL_COMPILER_MSVC
82# define UNRAVEL_COMPILER_MSVC _MSC_VER
83#elif defined(__GNUC__)
84# undef UNRAVEL_COMPILER_GCC
85# define UNRAVEL_COMPILER_GCC (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
86#else
87# error "UNRAVEL_COMPILER_* is not defined!"
88#endif //
89
90// http://sourceforge.net/apps/mediawiki/predef/index.php?title=Architectures
91#if defined(__arm__) \
92 || defined(__aarch64__) \
93 || defined(_M_ARM)
94# undef UNRAVEL_CPU_ARM
95# define UNRAVEL_CPU_ARM 1
96# define UNRAVEL_CACHE_LINE_SIZE 64
97#elif defined(__MIPSEL__) \
98 || defined(__mips_isa_rev) \
99 || defined(__mips64)
100# undef UNRAVEL_CPU_MIPS
101# define UNRAVEL_CPU_MIPS 1
102# define UNRAVEL_CACHE_LINE_SIZE 64
103#elif defined(_M_PPC) \
104 || defined(__powerpc__) \
105 || defined(__powerpc64__)
106# undef UNRAVEL_CPU_PPC
107# define UNRAVEL_CPU_PPC 1
108# define UNRAVEL_CACHE_LINE_SIZE 128
109#elif defined(__riscv) \
110 || defined(__riscv__) \
111 || defined(RISCVEL)
112# undef UNRAVEL_CPU_RISCV
113# define UNRAVEL_CPU_RISCV 1
114# define UNRAVEL_CACHE_LINE_SIZE 64
115#elif defined(_M_IX86) \
116 || defined(_M_X64) \
117 || defined(__i386__) \
118 || defined(__x86_64__)
119# undef UNRAVEL_CPU_X86
120# define UNRAVEL_CPU_X86 1
121# define UNRAVEL_CACHE_LINE_SIZE 64
122#else // PNaCl doesn't have CPU defined.
123# undef UNRAVEL_CPU_JIT
124# define UNRAVEL_CPU_JIT 1
125# define UNRAVEL_CACHE_LINE_SIZE 64
126#endif //
127
128#if defined(__x86_64__) \
129 || defined(_M_X64) \
130 || defined(__aarch64__) \
131 || defined(__64BIT__) \
132 || defined(__mips64) \
133 || defined(__powerpc64__) \
134 || defined(__ppc64__) \
135 || defined(__LP64__)
136# undef UNRAVEL_ARCH_64BIT
137# define UNRAVEL_ARCH_64BIT 64
138#else
139# undef UNRAVEL_ARCH_32BIT
140# define UNRAVEL_ARCH_32BIT 32
141#endif //
142
143#if UNRAVEL_CPU_PPC
144// __BIG_ENDIAN__ is gcc predefined macro
145# if defined(__BIG_ENDIAN__)
146# undef UNRAVEL_CPU_ENDIAN_BIG
147# define UNRAVEL_CPU_ENDIAN_BIG 1
148# else
149# undef UNRAVEL_CPU_ENDIAN_LITTLE
150# define UNRAVEL_CPU_ENDIAN_LITTLE 1
151# endif
152#else
153# undef UNRAVEL_CPU_ENDIAN_LITTLE
154# define UNRAVEL_CPU_ENDIAN_LITTLE 1
155#endif // UNRAVEL_CPU_PPC
156
157// http://sourceforge.net/apps/mediawiki/predef/index.php?title=Operating_Systems
158#if defined(_DURANGO) || defined(_XBOX_ONE)
159# undef UNRAVEL_PLATFORM_XBOXONE
160# define UNRAVEL_PLATFORM_XBOXONE 1
161#elif defined(_WIN32) || defined(_WIN64)
162// http://msdn.microsoft.com/en-us/library/6sehtctf.aspx
163# ifndef NOMINMAX
164# define NOMINMAX
165# endif // NOMINMAX
166// If _USING_V110_SDK71_ is defined it means we are using the v110_xp or v120_xp toolset.
167# if defined(_MSC_VER) && (_MSC_VER >= 1700) && !defined(_USING_V110_SDK71_)
168# include <winapifamily.h>
169# endif // defined(_MSC_VER) && (_MSC_VER >= 1700) && (!_USING_V110_SDK71_)
170# if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)
171# undef UNRAVEL_PLATFORM_WINDOWS
172# if !defined(WINVER) && !defined(_WIN32_WINNT)
173# if UNRAVEL_ARCH_64BIT
174// When building 64-bit target Win7 and above.
175# define WINVER 0x0601
176# define _WIN32_WINNT 0x0601
177# else
178// Windows Server 2003 with SP1, Windows XP with SP2 and above
179# define WINVER 0x0502
180# define _WIN32_WINNT 0x0502
181# endif // UNRAVEL_ARCH_64BIT
182# endif // !defined(WINVER) && !defined(_WIN32_WINNT)
183# define UNRAVEL_PLATFORM_WINDOWS _WIN32_WINNT
184# else
185# undef UNRAVEL_PLATFORM_WINRT
186# define UNRAVEL_PLATFORM_WINRT 1
187# endif
188#elif defined(__ANDROID__)
189// Android compiler defines __linux__
190# include <sys/cdefs.h> // Defines __BIONIC__ and includes android/api-level.h
191# undef UNRAVEL_PLATFORM_ANDROID
192# define UNRAVEL_PLATFORM_ANDROID __ANDROID_API__
193#elif defined(__VCCOREVER__)
194// RaspberryPi compiler defines __linux__
195# undef UNRAVEL_PLATFORM_RPI
196# define UNRAVEL_PLATFORM_RPI 1
197#elif defined(__linux__)
198# undef UNRAVEL_PLATFORM_LINUX
199# define UNRAVEL_PLATFORM_LINUX 1
200#elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) \
201 || defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__)
202# undef UNRAVEL_PLATFORM_IOS
203# define UNRAVEL_PLATFORM_IOS 1
204#elif defined(__has_builtin) && __has_builtin(__is_target_os) && __is_target_os(xros)
205# undef UNRAVEL_PLATFORM_VISIONOS
206# define UNRAVEL_PLATFORM_VISIONOS 1
207#elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
208# undef UNRAVEL_PLATFORM_OSX
209# define UNRAVEL_PLATFORM_OSX __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
210#elif defined(__EMSCRIPTEN__)
211# include <emscripten/version.h>
212# undef UNRAVEL_PLATFORM_EMSCRIPTEN
213# define UNRAVEL_PLATFORM_EMSCRIPTEN (__EMSCRIPTEN_major__ * 10000 + __EMSCRIPTEN_minor__ * 100 + __EMSCRIPTEN_tiny__)
214#elif defined(__ORBIS__)
215# undef UNRAVEL_PLATFORM_PS4
216# define UNRAVEL_PLATFORM_PS4 1
217#elif defined(__PROSPERO__)
218# undef UNRAVEL_PLATFORM_PS5
219# define UNRAVEL_PLATFORM_PS5 1
220#elif defined(__FreeBSD__) \
221 || defined(__FreeBSD_kernel__) \
222 || defined(__NetBSD__) \
223 || defined(__OpenBSD__) \
224 || defined(__DragonFly__)
225# undef UNRAVEL_PLATFORM_BSD
226# define UNRAVEL_PLATFORM_BSD 1
227#elif defined(__GNU__)
228# undef UNRAVEL_PLATFORM_HURD
229# define UNRAVEL_PLATFORM_HURD 1
230#elif defined(__NX__)
231# undef UNRAVEL_PLATFORM_NX
232# define UNRAVEL_PLATFORM_NX 1
233#elif defined(__HAIKU__)
234# undef UNRAVEL_PLATFORM_HAIKU
235# define UNRAVEL_PLATFORM_HAIKU 1
236#endif //
237
238#if !UNRAVEL_CRT_NONE
239// https://sourceforge.net/p/predef/wiki/Libraries/
240# if defined(__BIONIC__)
241# undef UNRAVEL_CRT_BIONIC
242# define UNRAVEL_CRT_BIONIC 1
243# elif defined(__GLIBC__)
244# undef UNRAVEL_CRT_GLIBC
245# define UNRAVEL_CRT_GLIBC (__GLIBC__ * 10000 + __GLIBC_MINOR__ * 100)
246# elif defined(__apple_build_version__) || defined(__ORBIS__) || defined(__EMSCRIPTEN__) || defined(__llvm__) || defined(__HAIKU__)
247# undef UNRAVEL_CRT_LIBCXX
248# define UNRAVEL_CRT_LIBCXX 1
249# elif defined(__MINGW32__) || defined(__MINGW64__)
250# undef UNRAVEL_CRT_MINGW
251# define UNRAVEL_CRT_MINGW 1
252# elif defined(_MSC_VER)
253# undef UNRAVEL_CRT_MSVC
254# define UNRAVEL_CRT_MSVC 1
255# endif //
256#endif // !UNRAVEL_CRT_NONE
257
259#define UNRAVEL_PLATFORM_POSIX (0 \
260 || UNRAVEL_PLATFORM_ANDROID \
261 || UNRAVEL_PLATFORM_BSD \
262 || UNRAVEL_PLATFORM_EMSCRIPTEN \
263 || UNRAVEL_PLATFORM_HAIKU \
264 || UNRAVEL_PLATFORM_HURD \
265 || UNRAVEL_PLATFORM_IOS \
266 || UNRAVEL_PLATFORM_LINUX \
267 || UNRAVEL_PLATFORM_NX \
268 || UNRAVEL_PLATFORM_OSX \
269 || UNRAVEL_PLATFORM_PS4 \
270 || UNRAVEL_PLATFORM_PS5 \
271 || UNRAVEL_PLATFORM_RPI \
272 || UNRAVEL_PLATFORM_VISIONOS \
273 )
274
276#define UNRAVEL_PLATFORM_NONE !(0 \
277 || UNRAVEL_PLATFORM_ANDROID \
278 || UNRAVEL_PLATFORM_BSD \
279 || UNRAVEL_PLATFORM_EMSCRIPTEN \
280 || UNRAVEL_PLATFORM_HAIKU \
281 || UNRAVEL_PLATFORM_HURD \
282 || UNRAVEL_PLATFORM_IOS \
283 || UNRAVEL_PLATFORM_LINUX \
284 || UNRAVEL_PLATFORM_NX \
285 || UNRAVEL_PLATFORM_OSX \
286 || UNRAVEL_PLATFORM_PS4 \
287 || UNRAVEL_PLATFORM_PS5 \
288 || UNRAVEL_PLATFORM_RPI \
289 || UNRAVEL_PLATFORM_VISIONOS \
290 || UNRAVEL_PLATFORM_WINDOWS \
291 || UNRAVEL_PLATFORM_WINRT \
292 || UNRAVEL_PLATFORM_XBOXONE \
293 )
294
296#define UNRAVEL_PLATFORM_OS_CONSOLE (0 \
297 || UNRAVEL_PLATFORM_NX \
298 || UNRAVEL_PLATFORM_PS4 \
299 || UNRAVEL_PLATFORM_PS5 \
300 || UNRAVEL_PLATFORM_WINRT \
301 || UNRAVEL_PLATFORM_XBOXONE \
302 )
303
305#define UNRAVEL_PLATFORM_OS_DESKTOP (0 \
306 || UNRAVEL_PLATFORM_BSD \
307 || UNRAVEL_PLATFORM_HAIKU \
308 || UNRAVEL_PLATFORM_HURD \
309 || UNRAVEL_PLATFORM_LINUX \
310 || UNRAVEL_PLATFORM_OSX \
311 || UNRAVEL_PLATFORM_WINDOWS \
312 )
313
315#define UNRAVEL_PLATFORM_OS_EMBEDDED (0 \
316 || UNRAVEL_PLATFORM_RPI \
317 )
318
320#define UNRAVEL_PLATFORM_OS_MOBILE (0 \
321 || UNRAVEL_PLATFORM_ANDROID \
322 || UNRAVEL_PLATFORM_IOS \
323 )
324
326#define UNRAVEL_PLATFORM_OS_WEB (0 \
327 || UNRAVEL_PLATFORM_EMSCRIPTEN \
328 )
329
331#if UNRAVEL_COMPILER_GCC
332# define UNRAVEL_COMPILER_NAME "GCC " \
333 UNRAVEL_STRINGIZE(__GNUC__) "." \
334 UNRAVEL_STRINGIZE(__GNUC_MINOR__) "." \
335 UNRAVEL_STRINGIZE(__GNUC_PATCHLEVEL__)
336#elif UNRAVEL_COMPILER_CLANG
337# define UNRAVEL_COMPILER_NAME "Clang " \
338 UNRAVEL_STRINGIZE(__clang_major__) "." \
339 UNRAVEL_STRINGIZE(__clang_minor__) "." \
340 UNRAVEL_STRINGIZE(__clang_patchlevel__)
341#elif UNRAVEL_COMPILER_MSVC
342# if UNRAVEL_COMPILER_MSVC >= 1930 // Visual Studio 2022
343# define UNRAVEL_COMPILER_NAME "MSVC 17.0"
344# elif UNRAVEL_COMPILER_MSVC >= 1920 // Visual Studio 2019
345# define UNRAVEL_COMPILER_NAME "MSVC 16.0"
346# elif UNRAVEL_COMPILER_MSVC >= 1910 // Visual Studio 2017
347# define UNRAVEL_COMPILER_NAME "MSVC 15.0"
348# elif UNRAVEL_COMPILER_MSVC >= 1900 // Visual Studio 2015
349# define UNRAVEL_COMPILER_NAME "MSVC 14.0"
350# elif UNRAVEL_COMPILER_MSVC >= 1800 // Visual Studio 2013
351# define UNRAVEL_COMPILER_NAME "MSVC 12.0"
352# elif UNRAVEL_COMPILER_MSVC >= 1700 // Visual Studio 2012
353# define UNRAVEL_COMPILER_NAME "MSVC 11.0"
354# elif UNRAVEL_COMPILER_MSVC >= 1600 // Visual Studio 2010
355# define UNRAVEL_COMPILER_NAME "MSVC 10.0"
356# elif UNRAVEL_COMPILER_MSVC >= 1500 // Visual Studio 2008
357# define UNRAVEL_COMPILER_NAME "MSVC 9.0"
358# else
359# define UNRAVEL_COMPILER_NAME "MSVC"
360# endif //
361#endif // UNRAVEL_COMPILER_
362
363#if UNRAVEL_PLATFORM_ANDROID
364# define UNRAVEL_PLATFORM_NAME "Android " \
365 UNRAVEL_STRINGIZE(UNRAVEL_PLATFORM_ANDROID)
366#elif UNRAVEL_PLATFORM_BSD
367# define UNRAVEL_PLATFORM_NAME "BSD"
368#elif UNRAVEL_PLATFORM_EMSCRIPTEN
369# define UNRAVEL_PLATFORM_NAME "Emscripten " \
370 UNRAVEL_STRINGIZE(__EMSCRIPTEN_major__) "." \
371 UNRAVEL_STRINGIZE(__EMSCRIPTEN_minor__) "." \
372 UNRAVEL_STRINGIZE(__EMSCRIPTEN_tiny__)
373#elif UNRAVEL_PLATFORM_HAIKU
374# define UNRAVEL_PLATFORM_NAME "Haiku"
375#elif UNRAVEL_PLATFORM_HURD
376# define UNRAVEL_PLATFORM_NAME "Hurd"
377#elif UNRAVEL_PLATFORM_IOS
378# define UNRAVEL_PLATFORM_NAME "iOS"
379#elif UNRAVEL_PLATFORM_LINUX
380# define UNRAVEL_PLATFORM_NAME "Linux"
381#elif UNRAVEL_PLATFORM_NONE
382# define UNRAVEL_PLATFORM_NAME "None"
383#elif UNRAVEL_PLATFORM_NX
384# define UNRAVEL_PLATFORM_NAME "NX"
385#elif UNRAVEL_PLATFORM_OSX
386# define UNRAVEL_PLATFORM_NAME "macOS"
387#elif UNRAVEL_PLATFORM_PS4
388# define UNRAVEL_PLATFORM_NAME "PlayStation 4"
389#elif UNRAVEL_PLATFORM_PS5
390# define UNRAVEL_PLATFORM_NAME "PlayStation 5"
391#elif UNRAVEL_PLATFORM_RPI
392# define UNRAVEL_PLATFORM_NAME "RaspberryPi"
393#elif UNRAVEL_PLATFORM_VISIONOS
394# define UNRAVEL_PLATFORM_NAME "visionOS"
395#elif UNRAVEL_PLATFORM_WINDOWS
396# define UNRAVEL_PLATFORM_NAME "Windows"
397#elif UNRAVEL_PLATFORM_WINRT
398# define UNRAVEL_PLATFORM_NAME "WinRT"
399#elif UNRAVEL_PLATFORM_XBOXONE
400# define UNRAVEL_PLATFORM_NAME "Xbox One"
401#else
402# error "Unknown UNRAVEL_PLATFORM!"
403#endif // UNRAVEL_PLATFORM_
404
405#if UNRAVEL_CPU_ARM
406# define UNRAVEL_CPU_NAME "ARM"
407#elif UNRAVEL_CPU_JIT
408# define UNRAVEL_CPU_NAME "JIT-VM"
409#elif UNRAVEL_CPU_MIPS
410# define UNRAVEL_CPU_NAME "MIPS"
411#elif UNRAVEL_CPU_PPC
412# define UNRAVEL_CPU_NAME "PowerPC"
413#elif UNRAVEL_CPU_RISCV
414# define UNRAVEL_CPU_NAME "RISC-V"
415#elif UNRAVEL_CPU_X86
416# define UNRAVEL_CPU_NAME "x86"
417#endif // UNRAVEL_CPU_
418
419#if UNRAVEL_CRT_BIONIC
420# define UNRAVEL_CRT_NAME "Bionic libc"
421#elif UNRAVEL_CRT_GLIBC
422# define UNRAVEL_CRT_NAME "GNU C Library"
423#elif UNRAVEL_CRT_MSVC
424# define UNRAVEL_CRT_NAME "MSVC C Runtime"
425#elif UNRAVEL_CRT_MINGW
426# define UNRAVEL_CRT_NAME "MinGW C Runtime"
427#elif UNRAVEL_CRT_LIBCXX
428# define UNRAVEL_CRT_NAME "Clang C Library"
429#elif UNRAVEL_CRT_NEWLIB
430# define UNRAVEL_CRT_NAME "Newlib"
431#elif UNRAVEL_CRT_NONE
432# define UNRAVEL_CRT_NAME "None"
433#else
434# define UNRAVEL_CRT_NAME "Unknown CRT"
435#endif // UNRAVEL_CRT_
436
437#if UNRAVEL_ARCH_32BIT
438# define UNRAVEL_ARCH_NAME "32-bit"
439#elif UNRAVEL_ARCH_64BIT
440# define UNRAVEL_ARCH_NAME "64-bit"
441#endif // UNRAVEL_ARCH_
442
443#if defined(__cplusplus)
444# if UNRAVEL_COMPILER_MSVC && defined(_MSVC_LANG) && _MSVC_LANG != __cplusplus
445# error "When using MSVC you must set /Zc:__cplusplus compiler option."
446# endif // UNRAVEL_COMPILER_MSVC && defined(_MSVC_LANG) && _MSVC_LANG != __cplusplus
447
448# if __cplusplus < UNRAVEL_LANGUAGE_CPP17
449# define UNRAVEL_CPP_NAME "C++Unsupported"
450# elif __cplusplus < UNRAVEL_LANGUAGE_CPP20
451# define UNRAVEL_CPP_NAME "C++17"
452# elif __cplusplus < UNRAVEL_LANGUAGE_CPP23
453# define UNRAVEL_CPP_NAME "C++20"
454# else
455// See: https://gist.github.com/bkaradzic/2e39896bc7d8c34e042b#orthodox-c
456# define UNRAVEL_CPP_NAME "C++WayTooModern"
457# endif // UNRAVEL_CPP_NAME
458#else
459# define UNRAVEL_CPP_NAME "C++Unknown"
460#endif // defined(__cplusplus)
461
462#if defined(__cplusplus)
463
464static_assert(__cplusplus >= UNRAVEL_LANGUAGE_CPP17, "\n\n"
465 "\t** IMPORTANT! **\n\n"
466 "\tC++17 standard support is required to build.\n"
467 "\t\n");
468
469// https://releases.llvm.org/
470static_assert(!UNRAVEL_COMPILER_CLANG || UNRAVEL_COMPILER_CLANG >= 110000, "\n\n"
471 "\t** IMPORTANT! **\n\n"
472 "\tMinimum supported Clang version is 11.0 (October 12, 2020).\n"
473 "\t\n");
474
475// https://gcc.gnu.org/releases.html
476static_assert(!UNRAVEL_COMPILER_GCC || UNRAVEL_COMPILER_GCC >= 80400, "\n\n"
477 "\t** IMPORTANT! **\n\n"
478 "\tMinimum supported GCC version is 8.4 (March 4, 2020).\n"
479 "\t\n");
480
481static_assert(!UNRAVEL_CPU_ENDIAN_BIG, "\n\n"
482 "\t** IMPORTANT! **\n\n"
483 "\tThe code was not tested for big endian, and big endian CPU is considered unsupported.\n"
484 "\t\n");
485
487 "\t** IMPORTANT! **\n\n"
488 "\tYou're compiling for unsupported platform!\n"
489 "\tIf you wish to support this platform, make your own fork, and modify code for _yourself_.\n"
490 "\t\n"
491 "\tDo not submit PR to main repo, it won't be considered, and it would code rot anyway. I have no ability\n"
492 "\tto test on these platforms, and over years there wasn't any serious contributor who wanted to take\n"
493 "\tburden of maintaining code for these platforms.\n"
494 "\t\n");
495
496#endif // defined(__cplusplus)
497
#define UNRAVEL_COMPILER_CLANG
Definition config.hpp:19
#define UNRAVEL_PLATFORM_HAIKU
Definition config.hpp:57
#define UNRAVEL_PLATFORM_BSD
Definition config.hpp:55
#define UNRAVEL_LANGUAGE_CPP17
Definition config.hpp:49
#define UNRAVEL_CPU_ENDIAN_BIG
Definition config.hpp:25
#define UNRAVEL_PLATFORM_HURD
Definition config.hpp:58
#define UNRAVEL_COMPILER_GCC
Definition config.hpp:21