Go to the documentation of this file. 10 #ifndef vtk_m_internal_Configure_h 11 #define vtk_m_internal_Configure_h 20 #define VTKM_CUDA_DEVICE_PASS 28 #elif defined(__INTEL_COMPILER) 38 #elif defined(__clang__) 43 #elif defined(__GNUC__) 50 #if defined(unix) || defined(__unix) || defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) 52 # ifdef _POSIX_VERSION 53 # define VTKM_POSIX _POSIX_VERSION 61 #if !defined(VTKM_NO_ASSERT) 62 #define VTKM_NO_ASSERT 65 #if !defined(VTKM_NO_ASSERT_CUDA) 66 #define VTKM_NO_ASSERT_CUDA 69 #if !defined(VTKM_USE_DOUBLE_PRECISION) && !defined(VTKM_NO_DOUBLE_PRECISION) 73 #if defined(VTKM_USE_DOUBLE_PRECISION) && defined(VTKM_NO_DOUBLE_PRECISION) 74 # error Both VTKM_USE_DOUBLE_PRECISION and VTKM_NO_DOUBLE_PRECISION defined. Do not know what to do. 77 #if !defined(VTKM_USE_64BIT_IDS) && !defined(VTKM_NO_64BIT_IDS) 78 #define VTKM_USE_64BIT_IDS 81 #if defined(VTKM_USE_64BIT_IDS) && defined(VTKM_NO_64BIT_IDS) 82 # error Both VTKM_USE_64BIT_IDS and VTKM_NO_64BIT_IDS defined. Do not know what to do. 85 #define VTKM_SIZE_LONG 8 86 #define VTKM_SIZE_LONG_LONG 8 89 #ifndef VTKM_ALLOCATION_ALIGNMENT 90 #define VTKM_ALLOCATION_ALIGNMENT 64 97 #if (defined(VTKM_GCC) || defined(VTKM_CLANG)) 99 #define VTK_M_THIRDPARTY_GENERAL_WARNING_PRAGMAS \ 100 _Pragma("GCC diagnostic ignored \"-Wconversion\"") \ 101 _Pragma("GCC diagnostic ignored \"-Wshadow\"") \ 102 _Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") 105 #if defined(VTKM_GCC) 106 #define VTK_M_THIRDPARTY_GCC_WARNING_PRAGMAS \ 107 _Pragma("GCC diagnostic ignored \"-Wunused-but-set-variable\"") \ 108 _Pragma("GCC diagnostic ignored \"-Wunused-variable\"") 110 #define VTK_M_THIRDPARTY_GCC_WARNING_PRAGMAS 114 #if defined(VTKM_CLANG) && (__apple_build_version__ >= 7000072) 120 #define VTK_M_THIRDPARTY_CLANG_WARNING_PRAGMAS \ 121 _Pragma("GCC diagnostic ignored \"-Wunused-local-typedef\"") \ 122 _Pragma("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") \ 123 _Pragma("GCC diagnostic ignored \"-Wdeprecated\"") 124 _Pragma(
"GCC diagnostic ignored \"-Wunused-template\"")
125 #elif defined(VTKM_CLANG) && defined(__ibmxl__) 126 #define VTK_M_THIRDPARTY_CLANG_WARNING_PRAGMAS \ 127 _Pragma("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") \ 128 _Pragma("GCC diagnostic ignored \"-Wdeprecated\"") 129 #elif defined(VTKM_CLANG) 130 #define VTK_M_THIRDPARTY_CLANG_WARNING_PRAGMAS \ 131 _Pragma("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") \ 132 _Pragma("GCC diagnostic ignored \"-Wdeprecated\"") 133 _Pragma(
"GCC diagnostic ignored \"-Wunused-template\"")
135 #define VTK_M_THIRDPARTY_CLANG_WARNING_PRAGMAS 140 #if defined(VTKM_GCC) && (__GNUC__ == 4 && __GNUC_MINOR__ < 6) 141 #define VTK_M_THIRDPARTY_WARNINGS_PUSH 142 #define VTK_M_THRIDPARTY_WARNINGS_POP 144 #define VTK_M_THIRDPARTY_WARNINGS_PUSH _Pragma("GCC diagnostic push") 145 #define VTK_M_THRIDPARTY_WARNINGS_POP _Pragma("GCC diagnostic pop") 148 #define VTKM_THIRDPARTY_PRE_INCLUDE \ 149 VTK_M_THIRDPARTY_WARNINGS_PUSH \ 150 VTK_M_THIRDPARTY_GENERAL_WARNING_PRAGMAS \ 151 VTK_M_THIRDPARTY_GCC_WARNING_PRAGMAS \ 152 VTK_M_THIRDPARTY_CLANG_WARNING_PRAGMAS 153 #define VTKM_THIRDPARTY_POST_INCLUDE \ 154 VTK_M_THRIDPARTY_WARNINGS_POP 156 #elif (defined(VTKM_MSVC)) 157 #define VTKM_THIRDPARTY_PRE_INCLUDE \ 158 __pragma(warning(push)) \ 159 __pragma(warning(disable:4100)) \ 160 __pragma(warning(disable:4127)) \ 161 __pragma(warning(disable:4201)) \ 162 __pragma(warning(disable:4244)) \ 163 __pragma(warning(disable:4267)) \ 164 __pragma(warning(disable:4324)) \ 165 __pragma(warning(disable:4510)) \ 166 __pragma(warning(disable:4512)) \ 167 __pragma(warning(disable:4515)) \ 168 __pragma(warning(disable:4610)) \ 169 __pragma(warning(disable:4800)) 170 #define VTKM_THIRDPARTY_POST_INCLUDE \ 171 __pragma(warning(pop)) 173 #define VTKM_THIRDPARTY_PRE_INCLUDE 174 #define VTKM_THIRDPARTY_POST_INCLUDE 178 #if defined(__GLIBCXX__) && \ 179 (__GLIBCXX__ < 20150422 || __GLIBCXX__ == 20160726 || __GLIBCXX__ == 20150626 || \ 180 __GLIBCXX__ == 20150623) 197 #define VTKM_USING_GLIBCXX_4 206 #if ( defined(VTKM_GCC) && ( __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9) ) ) || \ 207 ( defined(VTKM_ICC) && (__INTEL_COMPILER >= 1500) ) || \ 208 ( defined(VTKM_CLANG) && defined(__apple_build_version__) && (__apple_build_version__ >= 7000000) ) || \ 209 ( defined(VTKM_CLANG) && !defined(__apple_build_version__) && (__clang_major__ > 3) ) || \ 210 ( defined(VTKM_CLANG) && !defined(__apple_build_version__) && (__clang_major__ == 3 && __clang_minor__ >= 5) ) 211 #define VTKM_COMPILER_SUPPORTS_VECTOR_PRAGMAS 1 221 #if defined(VTKM_COMPILER_SUPPORTS_VECTOR_PRAGMAS) &&\ 222 defined(VTKM_VECTORIZATION_ENABLED) 223 #if defined(VTKM_CLANG) 225 #define VTKM_VECTORIZATION_PRE_LOOP \ 226 _Pragma("clang loop vectorize(enable) interleave(enable)") 227 #define VTKM_VECTORIZATION_IN_LOOP 228 #elif defined(VTKM_ICC) && defined(NDEBUG) 243 #define VTKM_VECTORIZATION_PRE_LOOP 244 #define VTKM_VECTORIZATION_IN_LOOP 245 #elif defined(VTKM_GCC) 247 #define VTKM_VECTORIZATION_PRE_LOOP \ 249 #define VTKM_VECTORIZATION_IN_LOOP 252 #define VTKM_VECTORIZATION_PRE_LOOP 253 #define VTKM_VECTORIZATION_IN_LOOP 257 #define VTKM_VECTORIZATION_PRE_LOOP 258 #define VTKM_VECTORIZATION_IN_LOOP 262 #ifndef VTKM_ENABLE_CUDA 266 #ifndef VTKM_ENABLE_TBB 270 #ifndef VTKM_ENABLE_OPENMP 274 #ifndef VTKM_ENABLE_KOKKOS 278 #ifndef VTKM_KOKKOS_CUDA 288 #ifdef VTKM_ENABLE_CUDA 289 #define VTKM_CUDA_VERSION_MAJOR 290 #define VTKM_CUDA_VERSION_MINOR 293 #if __cplusplus >= 201103L || \ 294 ( defined(VTKM_MSVC) && _MSC_VER >= 1900 ) || \ 295 ( defined(VTKM_ICC) && defined(__INTEL_CXX11_MODE__) ) 296 #define VTKM_HAVE_CXX_11 298 #error "VTK-m requires at least a C++11 compiler" 302 #define VTKM_ENABLE_LOGGING 304 #ifndef VTKM_NO_DEPRECATED_VIRTUAL 319 #define VTKM_SWALLOW_SEMICOLON_PRE_BLOCK \ 320 __pragma(warning(push)) \ 321 __pragma(warning(disable:4127)) \ 323 #define VTKM_SWALLOW_SEMICOLON_POST_BLOCK \ 325 __pragma(warning(pop)) 326 #else // not VTKM_MSVC 327 #define VTKM_SWALLOW_SEMICOLON_PRE_BLOCK \ 329 #define VTKM_SWALLOW_SEMICOLON_POST_BLOCK \ 339 #define VTKM_PASS_COMMAS(...) __VA_ARGS__ 369 #define VTKM_EXPAND(expr) expr 375 #pragma warning(disable:4503) 385 #pragma warning(disable:4251) 394 #if !defined(VTKM_FALLTHROUGH) && defined(__has_cpp_attribute) 395 # if __cplusplus >= 201703L && __has_cpp_attribute(fallthrough) 396 # define VTKM_FALLTHROUGH [[fallthrough]] 397 # elif __cplusplus >= 201103L && __has_cpp_attribute(gnu::fallthrough) 398 # define VTKM_FALLTHROUGH [[gnu::fallthrough]] 399 # elif __cplusplus >= 201103L && __has_cpp_attribute(clang::fallthrough) 400 # define VTKM_FALLTHROUGH [[clang::fallthrough]] 404 #ifndef VTKM_FALLTHROUGH 405 # define VTKM_FALLTHROUGH ((void)0) 408 #endif //vtkm_internal_Configure_h