diff --git a/glm/detail/_features.hpp b/glm/detail/_features.hpp index 5e86caa8..97dd6330 100644 --- a/glm/detail/_features.hpp +++ b/glm/detail/_features.hpp @@ -255,7 +255,7 @@ # define GLM_CXX11_STATIC_ASSERT # endif -#elif(GLM_COMPILER & GLM_COMPILER_LLVM) +#elif(GLM_COMPILER & GLM_COMPILER_CLANG) # if(__has_feature(cxx_exceptions)) # define GLM_CXX98_EXCEPTIONS # endif @@ -396,4 +396,4 @@ # define GLM_CXX11_VARIADIC_TEMPLATES # endif -#endif//(GLM_COMPILER & GLM_COMPILER_LLVM) +#endif//(GLM_COMPILER & GLM_COMPILER_CLANG) diff --git a/glm/detail/func_common.inl b/glm/detail/func_common.inl index 66741a9e..59a31d9b 100644 --- a/glm/detail/func_common.inl +++ b/glm/detail/func_common.inl @@ -630,7 +630,7 @@ namespace detail # else return ::isnan(x) != 0; # endif -# elif (GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM)) && (GLM_PLATFORM & GLM_PLATFORM_ANDROID) && __cplusplus < 201103L +# elif (GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)) && (GLM_PLATFORM & GLM_PLATFORM_ANDROID) && __cplusplus < 201103L return _isnan(x) != 0; # elif GLM_COMPILER & GLM_COMPILER_CUDA return isnan(x) != 0; @@ -664,7 +664,7 @@ namespace detail # else return ::isinf(x); # endif -# elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM) +# elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG) # if(GLM_PLATFORM & GLM_PLATFORM_ANDROID && __cplusplus < 201103L) return _isinf(x) != 0; # else diff --git a/glm/detail/func_trigonometric.inl b/glm/detail/func_trigonometric.inl index 0ad0d3e7..29866734 100644 --- a/glm/detail/func_trigonometric.inl +++ b/glm/detail/func_trigonometric.inl @@ -84,7 +84,7 @@ namespace glm // atan template - GLM_FUNC_QUALIFIER genType atan(genType const & y, genType const & x) + GLM_FUNC_QUALIFIER genType atan(genType y, genType x) { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'atan' only accept floating-point input"); @@ -136,8 +136,8 @@ namespace glm # if GLM_HAS_CXX11_STL using std::asinh; # else - template - GLM_FUNC_QUALIFIER genType asinh(genType const & x) + template + GLM_FUNC_QUALIFIER genType asinh(genType x) { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'asinh' only accept floating-point input"); @@ -156,7 +156,7 @@ namespace glm using std::acosh; # else template - GLM_FUNC_QUALIFIER genType acosh(genType const & x) + GLM_FUNC_QUALIFIER genType acosh(genType x) { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'acosh' only accept floating-point input"); @@ -177,7 +177,7 @@ namespace glm using std::atanh; # else template - GLM_FUNC_QUALIFIER genType atanh(genType const & x) + GLM_FUNC_QUALIFIER genType atanh(genType x) { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'atanh' only accept floating-point input"); diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp index b7674724..669ecd45 100644 --- a/glm/detail/setup.hpp +++ b/glm/detail/setup.hpp @@ -28,7 +28,7 @@ # pragma message("GLM: CUDA compiler detected") # elif GLM_COMPILER & GLM_COMPILER_VC # pragma message("GLM: Visual C++ compiler detected") -# elif GLM_COMPILER & GLM_COMPILER_LLVM +# elif GLM_COMPILER & GLM_COMPILER_CLANG # pragma message("GLM: Clang compiler detected") # elif GLM_COMPILER & GLM_COMPILER_INTEL # pragma message("GLM: Intel Compiler detected") @@ -134,14 +134,14 @@ #elif defined(GLM_FORCE_CXX98) # define GLM_LANG GLM_LANG_CXX98 #else -# if GLM_COMPILER & GLM_COMPILER_LLVM -# if __cplusplus >= 201402L // GLM_COMPILER_LLVM34 + -std=c++14 +# if GLM_COMPILER & GLM_COMPILER_CLANG +# if __cplusplus >= 201402L // GLM_COMPILER_CLANG34 + -std=c++14 # define GLM_LANG GLM_LANG_CXX14 -# elif __has_feature(cxx_decltype_auto) && __has_feature(cxx_aggregate_nsdmi) // GLM_COMPILER_LLVM33 + -std=c++1y +# elif __has_feature(cxx_decltype_auto) && __has_feature(cxx_aggregate_nsdmi) // GLM_COMPILER_CLANG33 + -std=c++1y # define GLM_LANG GLM_LANG_CXX1Y -# elif __cplusplus >= 201103L // GLM_COMPILER_LLVM33 + -std=c++11 +# elif __cplusplus >= 201103L // GLM_COMPILER_CLANG33 + -std=c++11 # define GLM_LANG GLM_LANG_CXX11 -# elif __has_feature(cxx_static_assert) // GLM_COMPILER_LLVM29 + -std=c++11 +# elif __has_feature(cxx_static_assert) // GLM_COMPILER_CLANG29 + -std=c++11 # define GLM_LANG GLM_LANG_CXX0X # elif __cplusplus >= 199711L # define GLM_LANG GLM_LANG_CXX98 @@ -263,15 +263,8 @@ // http://gcc.gnu.org/projects/cxx0x.html // http://msdn.microsoft.com/en-us/library/vstudio/hh567368(v=vs.120).aspx -#if GLM_PLATFORM == GLM_PLATFORM_ANDROID || GLM_PLATFORM == GLM_PLATFORM_CYGWIN -# define GLM_HAS_CXX11_STL 0 -#elif GLM_COMPILER & GLM_COMPILER_LLVM -# if __has_include(<__config>) // libc++ -# include <__config> -//# else // libstdc++ -//# include -# endif -# if defined(_LIBCPP_VERSION)// || defined(__GLIBCXX__) +#if GLM_COMPILER & (GLM_COMPILER_CLANG | GLM_COMPILER_APPLE_CLANG) +# if defined(_LIBCPP_VERSION) && GLM_LANG & GLM_LANG_CXX11_FLAG # define GLM_HAS_CXX11_STL 1 # else # define GLM_HAS_CXX11_STL 0 @@ -284,7 +277,7 @@ #endif // N1720 -#if GLM_COMPILER & GLM_COMPILER_LLVM +#if GLM_COMPILER & GLM_COMPILER_CLANG # define GLM_HAS_STATIC_ASSERT __has_feature(cxx_static_assert) #elif GLM_LANG & GLM_LANG_CXX11_FLAG # define GLM_HAS_STATIC_ASSERT 1 @@ -303,11 +296,11 @@ ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012)) || \ ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CUDA)) || \ ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \ - ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_LLVM) && (GLM_COMPILER >= GLM_COMPILER_LLVM30))) + ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG) && (GLM_COMPILER >= GLM_COMPILER_CLANG30))) #endif // N2235 -#if GLM_COMPILER & GLM_COMPILER_LLVM +#if GLM_COMPILER & GLM_COMPILER_CLANG # define GLM_HAS_CONSTEXPR __has_feature(cxx_constexpr) # define GLM_HAS_CONSTEXPR_PARTIAL GLM_HAS_CONSTEXPR #elif GLM_LANG & GLM_LANG_CXX11_FLAG @@ -320,7 +313,7 @@ #endif // N2672 -#if GLM_COMPILER & GLM_COMPILER_LLVM +#if GLM_COMPILER & GLM_COMPILER_CLANG # define GLM_HAS_INITIALIZER_LISTS __has_feature(cxx_generalized_initializers) #elif GLM_LANG & GLM_LANG_CXX11_FLAG # define GLM_HAS_INITIALIZER_LISTS 1 @@ -332,7 +325,7 @@ #endif // N2544 Unrestricted unions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf -#if GLM_COMPILER & GLM_COMPILER_LLVM +#if GLM_COMPILER & GLM_COMPILER_CLANG # define GLM_HAS_UNRESTRICTED_UNIONS __has_feature(cxx_unrestricted_unions) #elif GLM_LANG & (GLM_LANG_CXX11_FLAG | GLM_LANG_CXXMS_FLAG) # define GLM_HAS_UNRESTRICTED_UNIONS 1 @@ -344,7 +337,7 @@ #endif // N2346 -#if GLM_COMPILER & GLM_COMPILER_LLVM +#if GLM_COMPILER & GLM_COMPILER_CLANG # define GLM_HAS_DEFAULTED_FUNCTIONS __has_feature(cxx_defaulted_functions) #elif GLM_LANG & GLM_LANG_CXX11_FLAG # define GLM_HAS_DEFAULTED_FUNCTIONS 1 @@ -357,7 +350,7 @@ #endif // N2118 -#if GLM_COMPILER & GLM_COMPILER_LLVM +#if GLM_COMPILER & GLM_COMPILER_CLANG # define GLM_HAS_RVALUE_REFERENCES __has_feature(cxx_rvalue_references) #elif GLM_LANG & GLM_LANG_CXX11_FLAG # define GLM_HAS_RVALUE_REFERENCES 1 @@ -369,7 +362,7 @@ #endif // N2437 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf -#if GLM_COMPILER & GLM_COMPILER_LLVM +#if GLM_COMPILER & GLM_COMPILER_CLANG # define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS __has_feature(cxx_explicit_conversions) #elif GLM_LANG & GLM_LANG_CXX11_FLAG # define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS 1 @@ -382,7 +375,7 @@ #endif // N2258 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf -#if GLM_COMPILER & GLM_COMPILER_LLVM +#if GLM_COMPILER & GLM_COMPILER_CLANG # define GLM_HAS_TEMPLATE_ALIASES __has_feature(cxx_alias_templates) #elif GLM_LANG & GLM_LANG_CXX11_FLAG # define GLM_HAS_TEMPLATE_ALIASES 1 @@ -395,7 +388,7 @@ #endif // N2930 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html -#if GLM_COMPILER & GLM_COMPILER_LLVM +#if GLM_COMPILER & GLM_COMPILER_CLANG # define GLM_HAS_RANGE_FOR __has_feature(cxx_range_for) #elif GLM_LANG & GLM_LANG_CXX11_FLAG # define GLM_HAS_RANGE_FOR 1 @@ -450,8 +443,8 @@ # else # define GLM_HAS_OPENMP 0 # endif -# elif GLM_COMPILER & GLM_COMPILER_LLVM -# if GLM_COMPILER >= GLM_COMPILER_LLVM38 +# elif GLM_COMPILER & GLM_COMPILER_CLANG +# if GLM_COMPILER >= GLM_COMPILER_CLANG38 # define GLM_HAS_OPENMP 31 # else # define GLM_HAS_OPENMP 0 @@ -510,7 +503,7 @@ # if GLM_COMPILER & GLM_COMPILER_VC # define GLM_INLINE __forceinline # define GLM_NEVER_INLINE __declspec((noinline)) -# elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM) +# 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 @@ -590,15 +583,15 @@ # else # define GLM_VECTOR_CALL # endif -#elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM | GLM_COMPILER_CUDA | GLM_COMPILER_INTEL) +#elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG | GLM_COMPILER_CUDA | GLM_COMPILER_INTEL) # define GLM_DEPRECATED __attribute__((__deprecated__)) # define GLM_ALIGN(x) __attribute__((aligned(x))) # define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x))) # define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment))) # define GLM_RESTRICT_FUNC __restrict__ # define GLM_RESTRICT __restrict__ -# if GLM_COMPILER & GLM_COMPILER_LLVM -# if GLM_COMPILER >= GLM_COMPILER_LLVM37 +# if GLM_COMPILER & GLM_COMPILER_CLANG +# if GLM_COMPILER >= GLM_COMPILER_CLANG37 # define GLM_VECTOR_CALL __vectorcall # else # define GLM_VECTOR_CALL diff --git a/glm/gtc/reciprocal.hpp b/glm/gtc/reciprocal.hpp index e4c977b0..28d09c37 100644 --- a/glm/gtc/reciprocal.hpp +++ b/glm/gtc/reciprocal.hpp @@ -24,16 +24,20 @@ namespace glm /// @addtogroup gtc_reciprocal /// @{ - /// Secant function. + /// Secant function. /// hypotenuse / adjacent or 1 / cos(x) /// /// @tparam genType Floating-point scalar or vector types. /// /// @see gtc_reciprocal +<<<<<<< HEAD template +======= + template +>>>>>>> 0.9.7 GLM_FUNC_DECL genType sec(genType angle); - /// Cosecant function. + /// Cosecant function. /// hypotenuse / opposite or 1 / sin(x) /// /// @tparam genType Floating-point scalar or vector types. @@ -42,91 +46,111 @@ namespace glm template GLM_FUNC_DECL genType csc(genType angle); - /// Cotangent function. + /// Cotangent function. /// adjacent / opposite or 1 / tan(x) /// /// @tparam genType Floating-point scalar or vector types. /// /// @see gtc_reciprocal +<<<<<<< HEAD template +======= + template +>>>>>>> 0.9.7 GLM_FUNC_DECL genType cot(genType angle); - /// Inverse secant function. + /// Inverse secant function. /// /// @return Return an angle expressed in radians. /// @tparam genType Floating-point scalar or vector types. /// /// @see gtc_reciprocal +<<<<<<< HEAD template +======= + template +>>>>>>> 0.9.7 GLM_FUNC_DECL genType asec(genType x); - /// Inverse cosecant function. + /// Inverse cosecant function. /// /// @return Return an angle expressed in radians. /// @tparam genType Floating-point scalar or vector types. /// /// @see gtc_reciprocal +<<<<<<< HEAD template +======= + template +>>>>>>> 0.9.7 GLM_FUNC_DECL genType acsc(genType x); - /// Inverse cotangent function. + /// Inverse cotangent function. /// /// @return Return an angle expressed in radians. /// @tparam genType Floating-point scalar or vector types. /// /// @see gtc_reciprocal +<<<<<<< HEAD template +======= + template +>>>>>>> 0.9.7 GLM_FUNC_DECL genType acot(genType x); - /// Secant hyperbolic function. + /// Secant hyperbolic function. /// /// @tparam genType Floating-point scalar or vector types. /// /// @see gtc_reciprocal +<<<<<<< HEAD template +======= + template +>>>>>>> 0.9.7 GLM_FUNC_DECL genType sech(genType angle); - /// Cosecant hyperbolic function. + /// Cosecant hyperbolic function. /// /// @tparam genType Floating-point scalar or vector types. /// /// @see gtc_reciprocal - template + template GLM_FUNC_DECL genType csch(genType angle); - /// Cotangent hyperbolic function. + /// Cotangent hyperbolic function. /// /// @tparam genType Floating-point scalar or vector types. /// /// @see gtc_reciprocal - template + template GLM_FUNC_DECL genType coth(genType angle); - /// Inverse secant hyperbolic function. + /// Inverse secant hyperbolic function. /// /// @return Return an angle expressed in radians. /// @tparam genType Floating-point scalar or vector types. /// /// @see gtc_reciprocal - template + template GLM_FUNC_DECL genType asech(genType x); - /// Inverse cosecant hyperbolic function. + /// Inverse cosecant hyperbolic function. /// /// @return Return an angle expressed in radians. /// @tparam genType Floating-point scalar or vector types. /// /// @see gtc_reciprocal - template + template GLM_FUNC_DECL genType acsch(genType x); - /// Inverse cotangent hyperbolic function. + /// Inverse cotangent hyperbolic function. /// /// @return Return an angle expressed in radians. /// @tparam genType Floating-point scalar or vector types. /// /// @see gtc_reciprocal - template + template GLM_FUNC_DECL genType acoth(genType x); /// @} diff --git a/glm/simd/platform.h b/glm/simd/platform.h index 2df18f80..9a3ef72a 100644 --- a/glm/simd/platform.h +++ b/glm/simd/platform.h @@ -103,7 +103,14 @@ #define GLM_COMPILER_GCC51 0x02000300 #define GLM_COMPILER_GCC52 0x02000400 #define GLM_COMPILER_GCC53 0x02000500 -#define GLM_COMPILER_GCC60 0x02000600 +#define GLM_COMPILER_GCC54 0x02000600 +#define GLM_COMPILER_GCC60 0x02000700 +#define GLM_COMPILER_GCC61 0x02000800 +#define GLM_COMPILER_GCC62 0x02000900 +#define GLM_COMPILER_GCC70 0x02000A00 +#define GLM_COMPILER_GCC71 0x02000B00 +#define GLM_COMPILER_GCC72 0x02000C00 +#define GLM_COMPILER_GCC80 0x02000D00 // CUDA #define GLM_COMPILER_CUDA 0x10000000 @@ -115,17 +122,18 @@ #define GLM_COMPILER_CUDA65 0x10000090 #define GLM_COMPILER_CUDA70 0x100000A0 #define GLM_COMPILER_CUDA75 0x100000B0 +#define GLM_COMPILER_CUDA80 0x100000C0 -// LLVM -#define GLM_COMPILER_LLVM 0x20000000 -#define GLM_COMPILER_LLVM32 0x20000030 -#define GLM_COMPILER_LLVM33 0x20000040 -#define GLM_COMPILER_LLVM34 0x20000050 -#define GLM_COMPILER_LLVM35 0x20000060 -#define GLM_COMPILER_LLVM36 0x20000070 -#define GLM_COMPILER_LLVM37 0x20000080 -#define GLM_COMPILER_LLVM38 0x20000090 -#define GLM_COMPILER_LLVM39 0x200000A0 +// Clang +#define GLM_COMPILER_CLANG 0x20000000 +#define GLM_COMPILER_CLANG32 0x20000030 +#define GLM_COMPILER_CLANG33 0x20000040 +#define GLM_COMPILER_CLANG34 0x20000050 +#define GLM_COMPILER_CLANG35 0x20000060 +#define GLM_COMPILER_CLANG36 0x20000070 +#define GLM_COMPILER_CLANG37 0x20000080 +#define GLM_COMPILER_CLANG38 0x20000090 +#define GLM_COMPILER_CLANG39 0x200000A0 // Build model #define GLM_MODEL_32 0x00000010 @@ -167,43 +175,43 @@ #elif defined(__clang__) # if GLM_PLATFORM & GLM_PLATFORM_APPLE # if __clang_major__ == 5 && __clang_minor__ == 0 -# define GLM_COMPILER GLM_COMPILER_LLVM33 +# define GLM_COMPILER GLM_COMPILER_CLANG33 # elif __clang_major__ == 5 && __clang_minor__ == 1 -# define GLM_COMPILER GLM_COMPILER_LLVM34 +# define GLM_COMPILER GLM_COMPILER_CLANG34 # elif __clang_major__ == 6 && __clang_minor__ == 0 -# define GLM_COMPILER GLM_COMPILER_LLVM35 +# define GLM_COMPILER GLM_COMPILER_CLANG35 # elif __clang_major__ == 6 && __clang_minor__ >= 1 -# define GLM_COMPILER GLM_COMPILER_LLVM36 +# define GLM_COMPILER GLM_COMPILER_CLANG36 # elif __clang_major__ >= 7 -# define GLM_COMPILER GLM_COMPILER_LLVM37 +# define GLM_COMPILER GLM_COMPILER_CLANG37 # else -# define GLM_COMPILER GLM_COMPILER_LLVM +# define GLM_COMPILER GLM_COMPILER_CLANG # endif # else # if __clang_major__ == 3 && __clang_minor__ == 0 -# define GLM_COMPILER GLM_COMPILER_LLVM30 +# define GLM_COMPILER GLM_COMPILER_CLANG30 # elif __clang_major__ == 3 && __clang_minor__ == 1 -# define GLM_COMPILER GLM_COMPILER_LLVM31 +# define GLM_COMPILER GLM_COMPILER_CLANG31 # elif __clang_major__ == 3 && __clang_minor__ == 2 -# define GLM_COMPILER GLM_COMPILER_LLVM32 +# define GLM_COMPILER GLM_COMPILER_CLANG32 # elif __clang_major__ == 3 && __clang_minor__ == 3 -# define GLM_COMPILER GLM_COMPILER_LLVM33 +# define GLM_COMPILER GLM_COMPILER_CLANG33 # elif __clang_major__ == 3 && __clang_minor__ == 4 -# define GLM_COMPILER GLM_COMPILER_LLVM34 +# define GLM_COMPILER GLM_COMPILER_CLANG34 # elif __clang_major__ == 3 && __clang_minor__ == 5 -# define GLM_COMPILER GLM_COMPILER_LLVM35 +# define GLM_COMPILER GLM_COMPILER_CLANG35 # elif __clang_major__ == 3 && __clang_minor__ == 6 -# define GLM_COMPILER GLM_COMPILER_LLVM36 +# define GLM_COMPILER GLM_COMPILER_CLANG36 # elif __clang_major__ == 3 && __clang_minor__ == 7 -# define GLM_COMPILER GLM_COMPILER_LLVM37 +# define GLM_COMPILER GLM_COMPILER_CLANG37 # elif __clang_major__ == 3 && __clang_minor__ == 8 -# define GLM_COMPILER GLM_COMPILER_LLVM38 +# define GLM_COMPILER GLM_COMPILER_CLANG38 # elif __clang_major__ == 3 && __clang_minor__ >= 9 -# define GLM_COMPILER GLM_COMPILER_LLVM39 +# define GLM_COMPILER GLM_COMPILER_CLANG39 # elif __clang_major__ >= 4 -# define GLM_COMPILER GLM_COMPILER_LLVM39 +# define GLM_COMPILER GLM_COMPILER_CLANG39 # else -# define GLM_COMPILER GLM_COMPILER_LLVM +# define GLM_COMPILER GLM_COMPILER_CLANG # endif # endif @@ -247,10 +255,24 @@ # define GLM_COMPILER (GLM_COMPILER_GCC51) # elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 2) # define GLM_COMPILER (GLM_COMPILER_GCC52) -# elif (__GNUC__ == 5) && (__GNUC_MINOR__ >= 3) +# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 3) # define GLM_COMPILER (GLM_COMPILER_GCC53) -# elif (__GNUC__ >= 6) +# elif (__GNUC__ == 5) && (__GNUC_MINOR__ >= 4) +# define GLM_COMPILER (GLM_COMPILER_GCC54) +# elif (__GNUC__ == 6) && (__GNUC_MINOR__ == 0) # define GLM_COMPILER (GLM_COMPILER_GCC60) +# elif (__GNUC__ == 6) && (__GNUC_MINOR__ == 1) +# define GLM_COMPILER (GLM_COMPILER_GCC61) +# elif (__GNUC__ == 6) && (__GNUC_MINOR__ >= 2) +# define GLM_COMPILER (GLM_COMPILER_GCC62) +# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 0) +# define GLM_COMPILER (GLM_COMPILER_GCC70) +# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 1) +# define GLM_COMPILER (GLM_COMPILER_GCC71) +# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 2) +# define GLM_COMPILER (GLM_COMPILER_GCC72) +# elif (__GNUC__ >= 8) +# define GLM_COMPILER (GLM_COMPILER_GCC80) # else # define GLM_COMPILER (GLM_COMPILER_GCC) # endif @@ -321,7 +343,7 @@ # define GLM_ARCH (GLM_ARCH_SSE3) #elif defined(GLM_FORCE_SSE2) # define GLM_ARCH (GLM_ARCH_SSE2) -#elif (GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_GCC)) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_LINUX)) +#elif (GLM_COMPILER & (GLM_COMPILER_CLANG | GLM_COMPILER_GCC)) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_LINUX)) // This is Skylake set of instruction set # if defined(__AVX512BW__) && defined(__AVX512F__) && defined(__AVX512CD__) && defined(__AVX512VL__) && defined(__AVX512DQ__) # define GLM_ARCH (GLM_ARCH_AVX512) diff --git a/readme.md b/readme.md index 65a188d2..b1379588 100644 --- a/readme.md +++ b/readme.md @@ -78,6 +78,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) - Added MIPS CPUs detection - Added PowerPC CPUs detection - Use Cuda built-in function for abs function implementation with Cuda compiler +- Factorized GLM_COMPILER_LLVM and GLM_COMPILER_APPLE_CLANG into GLM_COMPILER_CLANG ##### Fixes: - Fixed GTX_extended_min_max filename typo #386 @@ -96,11 +97,14 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) #### [GLM 0.9.7.6](https://github.com/g-truc/glm/tree/0.9.7) - 2016-0X-XX ##### Improvements: - Added pkg-config file #509 +- Updated list of compiler versions detected +- Improved C++ 11 STL detection #523 ##### Fixes: - Fixed STL for C++11 detection on ICC #510 - Fixed missing vec1 overload to length2 and distance2 functions #431 - Fixed long long warnings when using C++98 on GCC and Clang #482 +- Fixed scalar reciprocal functions (GTC_reciprocal) #520 #### [GLM 0.9.7.5](https://github.com/g-truc/glm/releases/tag/0.9.7.5) - 2016-05-24 ##### Improvements: diff --git a/test/core/core_setup_message.cpp b/test/core/core_setup_message.cpp index 6f68ba79..2aae3940 100644 --- a/test/core/core_setup_message.cpp +++ b/test/core/core_setup_message.cpp @@ -62,9 +62,30 @@ int test_compiler() case GLM_COMPILER_GCC53: std::printf("GLM_COMPILER_GCC53\n"); break; + case GLM_COMPILER_GCC54: + std::printf("GLM_COMPILER_GCC54\n"); + break; case GLM_COMPILER_GCC60: std::printf("GLM_COMPILER_GCC60\n"); break; + case GLM_COMPILER_GCC61: + std::printf("GLM_COMPILER_GCC61\n"); + break; + case GLM_COMPILER_GCC62: + std::printf("GLM_COMPILER_GCC62\n"); + break; + case GLM_COMPILER_GCC70: + std::printf("GLM_COMPILER_GCC70\n"); + break; + case GLM_COMPILER_GCC71: + std::printf("GLM_COMPILER_GCC71\n"); + break; + case GLM_COMPILER_GCC72: + std::printf("GLM_COMPILER_GCC72\n"); + break; + case GLM_COMPILER_GCC80: + std::printf("GLM_COMPILER_GCC80\n"); + break; default: std::printf("GCC version not detected\n"); Error += 1; @@ -75,33 +96,33 @@ int test_compiler() { std::printf("GLM_COMPILER_CUDA\n"); } - else if(GLM_COMPILER & GLM_COMPILER_LLVM) + else if(GLM_COMPILER & GLM_COMPILER_CLANG) { switch(GLM_COMPILER) { - case GLM_COMPILER_LLVM32: - std::printf("GLM_COMPILER_LLVM32\n"); + case GLM_COMPILER_CLANG32: + std::printf("GLM_COMPILER_CLANG32\n"); break; - case GLM_COMPILER_LLVM33: - std::printf("GLM_COMPILER_LLVM33\n"); + case GLM_COMPILER_CLANG33: + std::printf("GLM_COMPILER_CLANG33\n"); break; - case GLM_COMPILER_LLVM34: - std::printf("GLM_COMPILER_LLVM34\n"); + case GLM_COMPILER_CLANG34: + std::printf("GLM_COMPILER_CLANG34\n"); break; - case GLM_COMPILER_LLVM35: - std::printf("GLM_COMPILER_LLVM35\n"); + case GLM_COMPILER_CLANG35: + std::printf("GLM_COMPILER_CLANG35\n"); break; - case GLM_COMPILER_LLVM36: - std::printf("GLM_COMPILER_LLVM36\n"); + case GLM_COMPILER_CLANG36: + std::printf("GLM_COMPILER_CLANG36\n"); break; - case GLM_COMPILER_LLVM37: - std::printf("GLM_COMPILER_LLVM37\n"); + case GLM_COMPILER_CLANG37: + std::printf("GLM_COMPILER_CLANG37\n"); break; - case GLM_COMPILER_LLVM38: - std::printf("GLM_COMPILER_LLVM38\n"); + case GLM_COMPILER_CLANG38: + std::printf("GLM_COMPILER_CLANG38\n"); break; - case GLM_COMPILER_LLVM39: - std::printf("GLM_COMPILER_LLVM39\n"); + case GLM_COMPILER_CLANG39: + std::printf("GLM_COMPILER_CLANG39\n"); break; default: std::printf("LLVM version not detected\n");