|
|
|
@ -144,6 +144,8 @@ |
|
|
|
|
# define GLM_HAS_CXX11_STL 0 |
|
|
|
|
#elif (GLM_COMPILER & GLM_COMPILER_CUDA_RTC) == GLM_COMPILER_CUDA_RTC |
|
|
|
|
# define GLM_HAS_CXX11_STL 0 |
|
|
|
|
#elif (GLM_COMPILER & GLM_COMPILER_HIP) |
|
|
|
|
# define GLM_HAS_CXX11_STL 0 |
|
|
|
|
#elif GLM_COMPILER & GLM_COMPILER_CLANG |
|
|
|
|
# if (defined(_LIBCPP_VERSION) || (GLM_LANG & GLM_LANG_CXX11_FLAG) || defined(GLM_LANG_STL11_FORCED)) |
|
|
|
|
# define GLM_HAS_CXX11_STL 1 |
|
|
|
@ -167,7 +169,8 @@ |
|
|
|
|
#else |
|
|
|
|
# define GLM_HAS_STATIC_ASSERT ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\ |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC)))) |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_HIP)))) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
// N1988
|
|
|
|
@ -177,7 +180,8 @@ |
|
|
|
|
# define GLM_HAS_EXTENDED_INTEGER_TYPE (\ |
|
|
|
|
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC)) || \
|
|
|
|
|
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
|
|
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG))) |
|
|
|
|
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_HIP))) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
// N2672 Initializer lists http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm
|
|
|
|
@ -189,7 +193,8 @@ |
|
|
|
|
# define GLM_HAS_INITIALIZER_LISTS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\ |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC15)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL14)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)))) |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_HIP)))) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
// N2544 Unrestricted unions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf
|
|
|
|
@ -200,7 +205,8 @@ |
|
|
|
|
#else |
|
|
|
|
# define GLM_HAS_UNRESTRICTED_UNIONS (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\ |
|
|
|
|
(GLM_COMPILER & GLM_COMPILER_VC) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA))) |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_HIP))) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
// N2346
|
|
|
|
@ -212,7 +218,8 @@ |
|
|
|
|
# define GLM_HAS_DEFAULTED_FUNCTIONS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\ |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
|
|
|
|
|
(GLM_COMPILER & GLM_COMPILER_CUDA))) |
|
|
|
|
(GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_HIP))) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
// N2118
|
|
|
|
@ -223,7 +230,8 @@ |
|
|
|
|
#else |
|
|
|
|
# define GLM_HAS_RVALUE_REFERENCES ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\ |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)))) |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_HIP)))) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
// N2437 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf
|
|
|
|
@ -235,7 +243,8 @@ |
|
|
|
|
# define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\ |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL14)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)))) |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_HIP)))) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
// N2258 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf
|
|
|
|
@ -247,7 +256,8 @@ |
|
|
|
|
# define GLM_HAS_TEMPLATE_ALIASES ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\ |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)))) |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_HIP)))) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
// N2930 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html
|
|
|
|
@ -259,7 +269,8 @@ |
|
|
|
|
# define GLM_HAS_RANGE_FOR ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\ |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)))) |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_HIP)))) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
// N2341 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf
|
|
|
|
@ -271,7 +282,8 @@ |
|
|
|
|
# define GLM_HAS_ALIGNOF ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\ |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL15)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC14)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)))) |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_HIP)))) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
// N2235 Generalized Constant Expressions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf
|
|
|
|
@ -335,7 +347,8 @@ |
|
|
|
|
#else |
|
|
|
|
# define GLM_HAS_MAKE_SIGNED ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\ |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)))) |
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
|
|
((GLM_COMPILER & GLM_COMPILER_HIP)))) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
//
|
|
|
|
@ -410,7 +423,7 @@ |
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
// Qualifiers
|
|
|
|
|
|
|
|
|
|
#if GLM_COMPILER & GLM_COMPILER_CUDA |
|
|
|
|
#if (GLM_COMPILER & GLM_COMPILER_CUDA) || (GLM_COMPILER & GLM_COMPILER_HIP) |
|
|
|
|
# define GLM_CUDA_FUNC_DEF __device__ __host__ |
|
|
|
|
# define GLM_CUDA_FUNC_DECL __device__ __host__ |
|
|
|
|
#else |
|
|
|
@ -425,7 +438,7 @@ |
|
|
|
|
# elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG) |
|
|
|
|
# define GLM_INLINE inline __attribute__((__always_inline__)) |
|
|
|
|
# define GLM_NEVER_INLINE __attribute__((__noinline__)) |
|
|
|
|
# elif GLM_COMPILER & GLM_COMPILER_CUDA |
|
|
|
|
# elif (GLM_COMPILER & GLM_COMPILER_CUDA) || (GLM_COMPILER & GLM_COMPILER_HIP) |
|
|
|
|
# define GLM_INLINE __forceinline__ |
|
|
|
|
# define GLM_NEVER_INLINE __noinline__ |
|
|
|
|
# else |
|
|
|
@ -512,7 +525,7 @@ |
|
|
|
|
#elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG | GLM_COMPILER_INTEL) |
|
|
|
|
# define GLM_DEPRECATED __attribute__((__deprecated__)) |
|
|
|
|
# define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment))) |
|
|
|
|
#elif GLM_COMPILER & GLM_COMPILER_CUDA |
|
|
|
|
#elif (GLM_COMPILER & GLM_COMPILER_CUDA) || (GLM_COMPILER & GLM_COMPILER_HIP) |
|
|
|
|
# define GLM_DEPRECATED |
|
|
|
|
# define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __align__(x) |
|
|
|
|
#else |
|
|
|
@ -970,6 +983,8 @@ namespace detail |
|
|
|
|
// Report compiler detection
|
|
|
|
|
# if GLM_COMPILER & GLM_COMPILER_CUDA |
|
|
|
|
# pragma message("GLM: CUDA compiler detected") |
|
|
|
|
# elif GLM_COMPILER & GLM_COMPILER_HIP |
|
|
|
|
# pragma message("GLM: HIP compiler detected") |
|
|
|
|
# elif GLM_COMPILER & GLM_COMPILER_VC |
|
|
|
|
# pragma message("GLM: Visual C++ compiler detected") |
|
|
|
|
# elif GLM_COMPILER & GLM_COMPILER_CLANG |
|
|
|
|