 |
IsoSpec
2.1.2
|
19 #if !defined(ISOSPEC_BUILDING_R)
20 #define ISOSPEC_BUILDING_R false
23 #if !defined(ISOSPEC_BUILDING_CPP)
24 #define ISOSPEC_BUILDING_CPP true
27 #if !defined(ISOSPEC_BUILDING_PYTHON)
28 #define ISOSPEC_BUILDING_PYTHON false
31 #if !defined(ISOSPEC_BUILDING_OPENMS)
32 #define ISOSPEC_BUILDING_OPENMS false
35 #if defined(__unix__) || defined(__unix) || \
36 (defined(__APPLE__) && defined(__MACH__))
37 #define ISOSPEC_TEST_WE_ARE_ON_UNIX_YAY true
38 #define ISOSPEC_TEST_WE_ARE_ON_WINDOWS false
39 #define ISOSPEC_TEST_GOT_SYSTEM_MMAN true
40 #define ISOSPEC_TEST_GOT_MMAN true
41 #elif defined(__MINGW32__) || defined(_WIN32)
42 #define ISOSPEC_TEST_WE_ARE_ON_UNIX_YAY false
43 #define ISOSPEC_TEST_WE_ARE_ON_WINDOWS true
44 #define ISOSPEC_TEST_GOT_SYSTEM_MMAN false
45 #define ISOSPEC_TEST_GOT_MMAN true
47 #define ISOSPEC_TEST_WE_ARE_ON_UNIX_YAY false
48 #define ISOSPEC_TEST_WE_ARE_ON_WINDOWS false
49 #define ISOSPEC_TEST_GOT_SYSTEM_MMAN false
50 #define ISOSPEC_TEST_GOT_MMAN false
53 #if !defined(ISOSPEC_USE_PTHREADS)
54 #define ISOSPEC_USE_PTHREADS false // TODO(who knows?): possibly put a macro here to detect whether we
55 #endif // can/should use pthreads - or rip them out altogether.
60 #if !defined(ISOSPEC_WE_ARE_ON_UNIX_YAY)
61 #define ISOSPEC_WE_ARE_ON_UNIX_YAY ISOSPEC_TEST_WE_ARE_ON_UNIX_YAY
64 #if !defined(ISOSPEC_WE_ARE_ON_WINDOWS)
65 #define ISOSPEC_WE_ARE_ON_WINDOWS ISOSPEC_TEST_WE_ARE_ON_WINDOWS
68 #if !defined(ISOSPEC_GOT_SYSTEM_MMAN)
69 #define ISOSPEC_GOT_SYSTEM_MMAN ISOSPEC_TEST_GOT_SYSTEM_MMAN
72 #if !defined(ISOSPEC_GOT_MMAN)
73 #define ISOSPEC_GOT_MMAN ISOSPEC_TEST_GOT_MMAN
79 #define ISOSPEC_IMPOSSIBLE(condition) if(condition) __builtin_unreachable();
80 #define ISOSPEC_LIKELY(condition) __builtin_expect(static_cast<bool>(condition), 1)
81 #define ISOSPEC_UNLIKELY(condition) __builtin_expect(static_cast<bool>(condition), 0)
83 #define ISOSPEC_FORCE_INLINE __attribute__ ((always_inline)) inline
84 #elif defined _MSC_VER
85 #define ISOSPEC_IMPOSSIBLE(condition) __assume(!(condition));
86 #define ISOSPEC_LIKELY(condition) condition
87 #define ISOSPEC_UNLIKELY(condition) condition
88 #define ISOSPEC_FORCE_INLINE __forceinline inline
90 #define ISOSPEC_IMPOSSIBLE(condition)
91 #define ISOSPEC_LIKELY(condition) condition
92 #define ISOSPEC_UNLIKELY(condition) condition
93 #define ISOSPEC_FORCE_INLINE inline
97 #undef ISOSPEC_IMPOSSIBLE
99 #define ISOSPEC_IMPOSSIBLE(condition) assert(!(condition));
104 #if ISOSPEC_GOT_SYSTEM_MMAN
105 #include <sys/mman.h>
114 #if defined(OPENMS_DLLAPI)
115 #define ISOSPEC_EXPORT_SYMBOL OPENMS_DLLAPI
117 #define ISOSPEC_EXPORT_SYMBOL
120 #if !defined(__cpp_if_constexpr)
121 #define constexpr_if if
122 #define ISOSPEC_MAYBE_UNUSED
124 #define constexpr_if if constexpr
125 #define ISOSPEC_MAYBE_UNUSED [[maybe_unused]]