 |
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
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]]