Go to the documentation of this file.
33 #ifndef OPENVDB_PLATFORM_HAS_BEEN_INCLUDED
34 #define OPENVDB_PLATFORM_HAS_BEEN_INCLUDED
38 #define PRAGMA(x) _Pragma(#x)
43 #ifdef OPENVDB_DEPRECATED
44 #undef OPENVDB_DEPRECATED
47 #define OPENVDB_DEPRECATED __declspec(deprecated)
49 #define OPENVDB_DEPRECATED __attribute__ ((deprecated))
54 #define OPENVDB_CHECK_GCC(MAJOR, MINOR) \
55 (__GNUC__ > MAJOR || (__GNUC__ == MAJOR && __GNUC_MINOR__ >= MINOR))
57 #define OPENVDB_CHECK_GCC(MAJOR, MINOR) 0
61 #ifdef __INTEL_COMPILER
62 #ifdef __INTEL_CXX11_MODE__
63 #define OPENVDB_HAS_CXX11 1
65 #elif defined(__clang__)
66 #ifndef _LIBCPP_VERSION
69 #ifdef _LIBCPP_VERSION
70 #define OPENVDB_HAS_CXX11 1
72 #elif defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus > 199711L)
73 #define OPENVDB_HAS_CXX11 1
74 #elif defined(_MSC_VER)
75 #if (_MSC_VER >= 1700)
76 #define OPENVDB_HAS_CXX11 1
79 #if defined(__GNUC__) && !OPENVDB_CHECK_GCC(4, 4)
82 #undef OPENVDB_HAS_CXX11
88 #if defined(__GNUC__) && OPENVDB_CHECK_GCC(4, 4)
89 #define OPENVDB_STATIC_SPECIALIZATION
91 #define OPENVDB_STATIC_SPECIALIZATION static
110 #if defined(__INTEL_COMPILER)
114 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN \
115 _Pragma("warning (push)") \
116 _Pragma("warning (disable:111)") \
117 _Pragma("warning (disable:128)") \
118 _Pragma("warning (disable:185)") \
119 _Pragma("warning (disable:280)")
120 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END \
121 _Pragma("warning (pop)")
122 #elif defined(__clang__)
123 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN \
124 PRAGMA(clang diagnostic push) \
125 PRAGMA(clang diagnostic ignored "-Wunreachable-code")
126 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END \
127 PRAGMA(clang diagnostic pop)
129 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN
130 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END
135 #ifndef _USE_MATH_DEFINES
139 #define _USE_MATH_DEFINES
141 #include <boost/math/special_functions/round.hpp>
143 using boost::math::round;
149 static inline double copysign(
double x,
double y) {
return _copysign(x, y); }
154 #include <boost/cstdint.hpp>
156 using boost::int16_t;
157 using boost::int32_t;
158 using boost::int64_t;
159 using boost::uint8_t;
160 using boost::uint16_t;
161 using boost::uint32_t;
162 using boost::uint64_t;
165 #ifdef OPENVDB_EXPORT
166 #undef OPENVDB_EXPORT
168 #ifdef OPENVDB_IMPORT
169 #undef OPENVDB_IMPORT
172 #define OPENVDB_EXPORT __attribute__((visibility("default")))
173 #define OPENVDB_IMPORT __attribute__((visibility("default")))
177 #define OPENVDB_EXPORT __declspec(dllexport)
178 #define OPENVDB_IMPORT __declspec(dllimport)
180 #define OPENVDB_EXPORT
181 #define OPENVDB_IMPORT
191 #ifdef OPENVDB_PRIVATE
192 #define OPENVDB_API OPENVDB_EXPORT
194 #define OPENVDB_API OPENVDB_IMPORT
196 #ifdef OPENVDB_HOUDINI_API
197 #undef OPENVDB_HOUDINI_API
199 #ifdef OPENVDB_HOUDINI_PRIVATE
200 #define OPENVDB_HOUDINI_API OPENVDB_EXPORT
202 #define OPENVDB_HOUDINI_API OPENVDB_IMPORT
205 #endif // OPENVDB_PLATFORM_HAS_BEEN_INCLUDED