 |
IsoSpec
2.2.1
|
19 #include "platform_incl.h"
21 #if defined(__unix__) || defined(__unix) || \
22 (defined(__APPLE__) && defined(__MACH__))
23 #define ISOSPEC_TEST_WE_ARE_ON_UNIX_YAY true
24 #define ISOSPEC_TEST_WE_ARE_ON_WINDOWS false
25 #define ISOSPEC_TEST_GOT_SYSTEM_MMAN true
26 #define ISOSPEC_TEST_GOT_MMAN true
27 #elif defined(__MINGW32__) || defined(_WIN32)
28 #define ISOSPEC_TEST_WE_ARE_ON_UNIX_YAY false
29 #define ISOSPEC_TEST_WE_ARE_ON_WINDOWS true
30 #define ISOSPEC_TEST_GOT_SYSTEM_MMAN false
31 #define ISOSPEC_TEST_GOT_MMAN true
33 #define ISOSPEC_TEST_WE_ARE_ON_UNIX_YAY false
34 #define ISOSPEC_TEST_WE_ARE_ON_WINDOWS false
35 #define ISOSPEC_TEST_GOT_SYSTEM_MMAN false
36 #define ISOSPEC_TEST_GOT_MMAN false
39 #if !defined(ISOSPEC_WE_ARE_ON_UNIX_YAY)
40 #define ISOSPEC_WE_ARE_ON_UNIX_YAY ISOSPEC_TEST_WE_ARE_ON_UNIX_YAY
43 #if !defined(ISOSPEC_WE_ARE_ON_WINDOWS)
44 #define ISOSPEC_WE_ARE_ON_WINDOWS ISOSPEC_TEST_WE_ARE_ON_WINDOWS
47 #if !defined(ISOSPEC_GOT_SYSTEM_MMAN)
48 #define ISOSPEC_GOT_SYSTEM_MMAN ISOSPEC_TEST_GOT_SYSTEM_MMAN
51 #if !defined(ISOSPEC_GOT_MMAN)
52 #define ISOSPEC_GOT_MMAN ISOSPEC_TEST_GOT_MMAN
58 #define ISOSPEC_IMPOSSIBLE(condition) if(condition) __builtin_unreachable();
59 #define ISOSPEC_LIKELY(condition) __builtin_expect(static_cast<bool>(condition), 1)
60 #define ISOSPEC_UNLIKELY(condition) __builtin_expect(static_cast<bool>(condition), 0)
62 #define ISOSPEC_FORCE_INLINE __attribute__ ((always_inline)) inline
63 #elif defined _MSC_VER
64 #define ISOSPEC_IMPOSSIBLE(condition) __assume(!(condition));
65 #define ISOSPEC_LIKELY(condition) condition
66 #define ISOSPEC_UNLIKELY(condition) condition
67 #define ISOSPEC_FORCE_INLINE __forceinline inline
69 #define ISOSPEC_IMPOSSIBLE(condition)
70 #define ISOSPEC_LIKELY(condition) condition
71 #define ISOSPEC_UNLIKELY(condition) condition
72 #define ISOSPEC_FORCE_INLINE inline
76 #undef ISOSPEC_IMPOSSIBLE
78 #define ISOSPEC_IMPOSSIBLE(condition) assert(!(condition));
83 #if ISOSPEC_GOT_SYSTEM_MMAN
93 #if defined(OPENMS_DLLAPI)
94 #define ISOSPEC_EXPORT_SYMBOL OPENMS_DLLAPI
96 #define ISOSPEC_EXPORT_SYMBOL
101 #if !defined(__cpp_if_constexpr)
102 #define constexpr_if if
103 #define ISOSPEC_MAYBE_UNUSED
105 #define constexpr_if if constexpr
106 #define ISOSPEC_MAYBE_UNUSED [[maybe_unused]]