Go to the documentation of this file. 6 #ifndef OPENVDB_PLATFORM_HAS_BEEN_INCLUDED 7 #define OPENVDB_PLATFORM_HAS_BEEN_INCLUDED 11 #define PRAGMA(x) _Pragma(#x) 16 #define OPENVDB_PREPROC_STRINGIFY_(x) #x 17 #define OPENVDB_PREPROC_STRINGIFY(x) OPENVDB_PREPROC_STRINGIFY_(x) 24 #define OPENVDB_PREPROC_CONCAT_(x, y) x ## y 25 #define OPENVDB_PREPROC_CONCAT(x, y) OPENVDB_PREPROC_CONCAT_(x, y) 36 #ifdef OPENVDB_DEPRECATED 37 #undef OPENVDB_DEPRECATED 40 #define OPENVDB_DEPRECATED __declspec(deprecated) 42 #define OPENVDB_DEPRECATED __attribute__ ((deprecated)) 47 #define OPENVDB_CHECK_GCC(MAJOR, MINOR) \ 48 (__GNUC__ > MAJOR || (__GNUC__ == MAJOR && __GNUC_MINOR__ >= MINOR)) 50 #define OPENVDB_CHECK_GCC(MAJOR, MINOR) 0 54 #define OPENVDB_HAS_CXX11 1 59 #if defined(__GNUC__) && OPENVDB_CHECK_GCC(4, 4) 60 #define OPENVDB_STATIC_SPECIALIZATION 62 #define OPENVDB_STATIC_SPECIALIZATION static 67 #if defined(OPENVDB_USE_SSE42) || defined(OPENVDB_USE_AVX) 70 #elif defined(__GNUC__) 71 #if defined(__x86_64__) || defined(__i386__) 72 #include <x86intrin.h> 73 #elif defined(__ARM_NEON__) 95 #if defined(__INTEL_COMPILER) 99 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN \ 100 _Pragma("warning (push)") \ 101 _Pragma("warning (disable:111)") \ 102 _Pragma("warning (disable:128)") \ 103 _Pragma("warning (disable:185)") \ 104 _Pragma("warning (disable:280)") 105 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END \ 106 _Pragma("warning (pop)") 107 #elif defined(__clang__) 108 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN \ 109 PRAGMA(clang diagnostic push) \ 110 PRAGMA(clang diagnostic ignored "-Wunreachable-code") 111 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END \ 112 PRAGMA(clang diagnostic pop) 114 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN 115 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END 132 #if defined __INTEL_COMPILER 133 #define OPENVDB_NO_DEPRECATION_WARNING_BEGIN \ 134 _Pragma("warning (push)") \ 135 _Pragma("warning (disable:1478)") \ 136 PRAGMA(message("NOTE: ignoring deprecation warning at " __FILE__ \ 137 ":" OPENVDB_PREPROC_STRINGIFY(__LINE__))) 138 #define OPENVDB_NO_DEPRECATION_WARNING_END \ 139 _Pragma("warning (pop)") 140 #elif defined __clang__ 141 #define OPENVDB_NO_DEPRECATION_WARNING_BEGIN \ 142 _Pragma("clang diagnostic push") \ 143 _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") 145 #define OPENVDB_NO_DEPRECATION_WARNING_END \ 146 _Pragma("clang diagnostic pop") 147 #elif defined __GNUC__ 148 #define OPENVDB_NO_DEPRECATION_WARNING_BEGIN \ 149 _Pragma("GCC diagnostic push") \ 150 _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \ 151 _Pragma("message(\"NOTE: ignoring deprecation warning\")") 152 #define OPENVDB_NO_DEPRECATION_WARNING_END \ 153 _Pragma("GCC diagnostic pop") 154 #elif defined _MSC_VER 155 #define OPENVDB_NO_DEPRECATION_WARNING_BEGIN \ 156 __pragma(warning(push)) \ 157 __pragma(warning(disable : 4996)) \ 158 __pragma(message("NOTE: ignoring deprecation warning at " __FILE__ \ 159 ":" OPENVDB_PREPROC_STRINGIFY(__LINE__))) 160 #define OPENVDB_NO_DEPRECATION_WARNING_END \ 161 __pragma(warning(pop)) 163 #define OPENVDB_NO_DEPRECATION_WARNING_BEGIN 164 #define OPENVDB_NO_DEPRECATION_WARNING_END 178 #if defined __INTEL_COMPILER 179 #define OPENVDB_NO_TYPE_CONVERSION_WARNING_BEGIN 180 #define OPENVDB_NO_TYPE_CONVERSION_WARNING_END 181 #elif defined __GNUC__ 183 #if OPENVDB_CHECK_GCC(4, 9) 184 #define OPENVDB_NO_TYPE_CONVERSION_WARNING_BEGIN \ 185 _Pragma("GCC diagnostic push") \ 186 _Pragma("GCC diagnostic ignored \"-Wconversion\"") \ 187 _Pragma("GCC diagnostic ignored \"-Wfloat-conversion\"") 189 #define OPENVDB_NO_TYPE_CONVERSION_WARNING_BEGIN \ 190 _Pragma("GCC diagnostic push") \ 191 _Pragma("GCC diagnostic ignored \"-Wconversion\"") 193 #define OPENVDB_NO_TYPE_CONVERSION_WARNING_END \ 194 _Pragma("GCC diagnostic pop") 196 #define OPENVDB_NO_TYPE_CONVERSION_WARNING_BEGIN 197 #define OPENVDB_NO_TYPE_CONVERSION_WARNING_END 201 #ifdef OPENVDB_EXPORT 202 #undef OPENVDB_EXPORT 204 #ifdef OPENVDB_IMPORT 205 #undef OPENVDB_IMPORT 208 #define OPENVDB_EXPORT __attribute__((visibility("default"))) 209 #define OPENVDB_IMPORT __attribute__((visibility("default"))) 213 #define OPENVDB_EXPORT __declspec(dllexport) 214 #define OPENVDB_IMPORT __declspec(dllimport) 216 #define OPENVDB_EXPORT 217 #define OPENVDB_IMPORT 227 #ifdef OPENVDB_PRIVATE 228 #define OPENVDB_API OPENVDB_EXPORT 230 #define OPENVDB_API OPENVDB_IMPORT 232 #ifdef OPENVDB_HOUDINI_API 233 #undef OPENVDB_HOUDINI_API 235 #ifdef OPENVDB_HOUDINI_PRIVATE 236 #define OPENVDB_HOUDINI_API OPENVDB_EXPORT 238 #define OPENVDB_HOUDINI_API OPENVDB_IMPORT 241 #endif // OPENVDB_PLATFORM_HAS_BEEN_INCLUDED