diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp index 1be82bdc..09c62b73 100644 --- a/glm/detail/setup.hpp +++ b/glm/detail/setup.hpp @@ -125,8 +125,6 @@ // Visual C++ defines #define GLM_COMPILER_VC 0x01000000 -#define GLM_COMPILER_VC8 0x01000070 -#define GLM_COMPILER_VC9 0x01000080 #define GLM_COMPILER_VC10 0x01000090 #define GLM_COMPILER_VC11 0x010000A0 #define GLM_COMPILER_VC12 0x010000B0 @@ -134,10 +132,6 @@ // GCC defines #define GLM_COMPILER_GCC 0x02000000 -#define GLM_COMPILER_GCC34 0x02000050 -#define GLM_COMPILER_GCC35 0x02000060 -#define GLM_COMPILER_GCC40 0x02000070 -#define GLM_COMPILER_GCC41 0x02000080 #define GLM_COMPILER_GCC42 0x02000090 #define GLM_COMPILER_GCC43 0x020000A0 #define GLM_COMPILER_GCC44 0x020000B0 @@ -162,6 +156,9 @@ #define GLM_COMPILER_CUDA40 0x10000040 #define GLM_COMPILER_CUDA41 0x10000050 #define GLM_COMPILER_CUDA42 0x10000060 +#define GLM_COMPILER_CUDA50 0x10000070 +#define GLM_COMPILER_CUDA60 0x10000080 +#define GLM_COMPILER_CUDA65 0x10000090 // Clang #define GLM_COMPILER_CLANG 0x20000000 @@ -326,30 +323,18 @@ #endif//GLM_COMPILER // Report compiler detection -#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_COMPILER_DISPLAYED)) +#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_COMPILER_DISPLAYED) # define GLM_MESSAGE_COMPILER_DISPLAYED -# if(GLM_COMPILER & GLM_COMPILER_CUDA) +# if GLM_COMPILER & GLM_COMPILER_CUDA # pragma message("GLM: CUDA compiler detected") -# elif(GLM_COMPILER & GLM_COMPILER_VC) +# elif GLM_COMPILER & GLM_COMPILER_VC # pragma message("GLM: Visual C++ compiler detected") -# elif(GLM_COMPILER & GLM_COMPILER_CLANG) +# elif GLM_COMPILER & GLM_COMPILER_CLANG # pragma message("GLM: Clang compiler detected") -# elif(GLM_COMPILER & GLM_COMPILER_LLVM_GCC) -# pragma message("GLM: LLVM GCC compiler detected") -# elif(GLM_COMPILER & GLM_COMPILER_INTEL) +# elif GLM_COMPILER & GLM_COMPILER_INTEL # pragma message("GLM: Intel Compiler detected") -# elif(GLM_COMPILER & GLM_COMPILER_GCC) -# if(GLM_COMPILER == GLM_COMPILER_GCC_LLVM) -# pragma message("GLM: LLVM GCC compiler detected") -# elif(GLM_COMPILER == GLM_COMPILER_GCC_CLANG) -# pragma message("GLM: CLANG compiler detected") -# else -# pragma message("GLM: GCC compiler detected") -# endif -# elif(GLM_COMPILER & GLM_COMPILER_BC) -# pragma message("GLM: Borland compiler detected but not supported") -# elif(GLM_COMPILER & GLM_COMPILER_CODEWARRIOR) -# pragma message("GLM: Codewarrior compiler detected but not supported") +# elif GLM_COMPILER & GLM_COMPILER_GCC +# pragma message("GLM: GCC compiler detected") # else # pragma message("GLM: Compiler not detected") # endif @@ -358,19 +343,19 @@ ///////////////// // Build model // -#if(defined(__arch64__) || defined(__LP64__) || defined(_M_X64) || defined(__ppc64__) || defined(__x86_64__)) +#if defined(__arch64__) || defined(__LP64__) || defined(_M_X64) || defined(__ppc64__) || defined(__x86_64__) # define GLM_MODEL GLM_MODEL_64 -#elif(defined(__i386__) || defined(__ppc__)) +#elif defined(__i386__) || defined(__ppc__) # define GLM_MODEL GLM_MODEL_32 #else # define GLM_MODEL GLM_MODEL_32 #endif// -#if(!defined(GLM_MODEL) && GLM_COMPILER != 0) +#if !defined(GLM_MODEL) && GLM_COMPILER != 0 # error "GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message." #endif//GLM_MODEL -#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_MODEL_DISPLAYED)) +#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_MODEL_DISPLAYED) # define GLM_MESSAGE_MODEL_DISPLAYED # if(GLM_MODEL == GLM_MODEL_64) # pragma message("GLM: 64 bits model") @@ -384,7 +369,6 @@ // User defines: GLM_FORCE_CXX98 -#define GLM_LANG_CXX_FLAG (1 << 0) #define GLM_LANG_CXX98_FLAG (1 << 1) #define GLM_LANG_CXX03_FLAG (1 << 2) #define GLM_LANG_CXX0X_FLAG (1 << 3) @@ -393,8 +377,7 @@ #define GLM_LANG_CXXMS_FLAG (1 << 6) #define GLM_LANG_CXXGNU_FLAG (1 << 7) -#define GLM_LANG_CXX GLM_LANG_CXX_FLAG -#define GLM_LANG_CXX98 (GLM_LANG_CXX | GLM_LANG_CXX98_FLAG) +#define GLM_LANG_CXX98 GLM_LANG_CXX98_FLAG #define GLM_LANG_CXX03 (GLM_LANG_CXX98 | GLM_LANG_CXX03_FLAG) #define GLM_LANG_CXX0X (GLM_LANG_CXX03 | GLM_LANG_CXX0X_FLAG) #define GLM_LANG_CXX11 (GLM_LANG_CXX0X | GLM_LANG_CXX11_FLAG) @@ -402,72 +385,78 @@ #define GLM_LANG_CXXMS GLM_LANG_CXXMS_FLAG #define GLM_LANG_CXXGNU GLM_LANG_CXXGNU_FLAG -#if(defined(GLM_FORCE_CXX1Y)) +#if defined(GLM_FORCE_CXX1Y) # define GLM_LANG GLM_LANG_CXX1Y -#elif(defined(GLM_FORCE_CXX11)) +#elif defined(GLM_FORCE_CXX11) # define GLM_LANG GLM_LANG_CXX11 -#elif(defined(GLM_FORCE_CXX03)) +#elif defined(GLM_FORCE_CXX03) # define GLM_LANG GLM_LANG_CXX03 -#elif(defined(GLM_FORCE_CXX98)) +#elif defined(GLM_FORCE_CXX98) # define GLM_LANG GLM_LANG_CXX98 #else -# if(__cplusplus >= 201103L) +# if __cplusplus >= 201103L # define GLM_LANG GLM_LANG_CXX11 -# elif((GLM_COMPILER & GLM_COMPILER_CLANG) == GLM_COMPILER_CLANG) +# elif GLM_COMPILER & GLM_COMPILER_CLANG # if(GLM_PLATFORM == GLM_PLATFORM_APPLE) # define GLM_DETAIL_MAJOR 1 # else # define GLM_DETAIL_MAJOR 0 # endif -# if(__clang_major__ < (2 + GLM_DETAIL_MAJOR)) +# if __clang_major__ < (2 + GLM_DETAIL_MAJOR) # define GLM_LANG GLM_LANG_CXX -# elif(__has_feature(cxx_auto_type)) +# elif __has_feature(cxx_auto_type) # define GLM_LANG GLM_LANG_CXX0X # else # define GLM_LANG GLM_LANG_CXX98 # endif -# elif((GLM_COMPILER & GLM_COMPILER_GCC) == GLM_COMPILER_GCC) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) +# elif GLM_COMPILER & GLM_COMPILER_GCC +# ifdef __GXX_EXPERIMENTAL_CXX0X__ # define GLM_LANG GLM_LANG_CXX0X # else # define GLM_LANG GLM_LANG_CXX98 # endif -# elif(GLM_COMPILER & GLM_COMPILER_VC) -# if(defined(_MSC_EXTENSIONS)) -# if(GLM_COMPILER >= GLM_COMPILER_VC10) +# elif GLM_COMPILER & GLM_COMPILER_VC +# ifdef _MSC_EXTENSIONS +# if GLM_COMPILER >= GLM_COMPILER_VC10 # define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG) # else # define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG) # endif # else -# if(GLM_COMPILER >= GLM_COMPILER_VC10) +# if(GLM_COMPILER >= GLM_COMPILER_VC10 # define GLM_LANG GLM_LANG_CXX0X # else # define GLM_LANG GLM_LANG_CXX98 # endif # endif -# elif(GLM_COMPILER & GLM_COMPILER_INTEL) -# if(defined(_MSC_EXTENSIONS)) -# if(GLM_COMPILER >= GLM_COMPILER_INTEL13_0) +# elif GLM_COMPILER & GLM_COMPILER_INTEL +# ifdef _MSC_EXTENSIONS +# if GLM_COMPILER >= GLM_COMPILER_INTEL13_0 # define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG) # else # define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG) # endif # else -# if(GLM_COMPILER >= GLM_COMPILER_INTEL13_0) +# if GLM_COMPILER >= GLM_COMPILER_INTEL13_0 # define GLM_LANG (GLM_LANG_CXX0X) # else # define GLM_LANG (GLM_LANG_CXX98) # endif # endif -# elif(__cplusplus >= 199711L) -# define GLM_LANG GLM_LANG_CXX98 # else -# define GLM_LANG GLM_LANG_CXX +# if __cplusplus >= 199711L +# define GLM_LANG GLM_LANG_CXX98 +# endif +# ifndef GLM_FORCE_CXX98 +# define GLM_FORCE_CXX98 +# endif +# ifndef GLM_FORCE_PURE +# define GLM_FORCE_PURE +# endif # endif #endif -#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_LANG_DISPLAYED)) +#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_LANG_DISPLAYED) # define GLM_MESSAGE_LANG_DISPLAYED # if(GLM_LANG & GLM_LANG_CXXGNU_FLAG) # pragma message("GLM: C++ with language extensions") @@ -568,21 +557,19 @@ // OpenMP #ifdef _OPENMP -# if(GLM_COMPILER & GLM_COMPILER_GCC) -# if(GLM_COMPILER > GLM_COMPILER_GCC47) +# if GLM_COMPILER & GLM_COMPILER_GCC +# if GLM_COMPILER > GLM_COMPILER_GCC47 # define GLM_HAS_OPENMP 31 -# elif(GLM_COMPILER > GLM_COMPILER_GCC44) +# elif GLM_COMPILER > GLM_COMPILER_GCC44 # define GLM_HAS_OPENMP 30 -# elif(GLM_COMPILER > GLM_COMPILER_GCC42) -# define GLM_HAS_OPENMP 25 # endif -# endif//(GLM_COMPILER & GLM_COMPILER_GCC) +# endif// GLM_COMPILER & GLM_COMPILER_GCC -# if(GLM_COMPILER & GLM_COMPILER_VC) -# if(GLM_COMPILER > GLM_COMPILER_VC8) +# if GLM_COMPILER & GLM_COMPILER_VC +# if GLM_COMPILER > GLM_COMPILER_VC10 # define GLM_HAS_OPENMP 20 # endif -# endif//(GLM_COMPILER & GLM_COMPILER_GCC) +# endif// GLM_COMPILER & GLM_COMPILER_VC #endif // Not standard @@ -600,19 +587,19 @@ #define GLM_ARCH_AVX 0x0008 #define GLM_ARCH_AVX2 0x0010 -#if(defined(GLM_FORCE_PURE)) +#if defined(GLM_FORCE_PURE) # define GLM_ARCH GLM_ARCH_PURE -#elif(defined(GLM_FORCE_AVX2)) +#elif defined(GLM_FORCE_AVX2) # define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2) -#elif(defined(GLM_FORCE_AVX)) +#elif defined(GLM_FORCE_AVX) # define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2) -#elif(defined(GLM_FORCE_SSE4)) +#elif defined(GLM_FORCE_SSE4) # define GLM_ARCH (GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2) -#elif(defined(GLM_FORCE_SSE3)) +#elif defined(GLM_FORCE_SSE3) # define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2) -#elif(defined(GLM_FORCE_SSE2)) +#elif defined(GLM_FORCE_SSE2) # define GLM_ARCH (GLM_ARCH_SSE2) -#elif((GLM_COMPILER & GLM_COMPILER_CLANG) || (GLM_COMPILER & GLM_COMPILER_GCC)) +#elif (GLM_COMPILER & GLM_COMPILER_CLANG) || (GLM_COMPILER & GLM_COMPILER_GCC) # if(__AVX2__) # define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2) # elif(__AVX__) @@ -624,7 +611,7 @@ # else # define GLM_ARCH GLM_ARCH_PURE # endif -#elif(GLM_COMPILER & GLM_COMPILER_VC) +#elif GLM_COMPILER & GLM_COMPILER_VC # if _M_IX86_FP == 2 && defined(__AVX__) # define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2) # elif _M_IX86_FP == 2 @@ -632,7 +619,7 @@ # else # define GLM_ARCH (GLM_ARCH_PURE) # endif -#elif(((GLM_COMPILER & GLM_COMPILER_GCC) && (defined(__i386__) || defined(__x86_64__))) || (GLM_COMPILER & GLM_COMPILER_LLVM_GCC) || (GLM_COMPILER & GLM_COMPILER_CLANG)) +#elif (GLM_COMPILER & GLM_COMPILER_GCC) && (defined(__i386__) || defined(__x86_64__)) # if defined(__AVX2__) # define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2) # elif defined(__AVX__) @@ -657,19 +644,19 @@ # include #endif -#if(GLM_ARCH & GLM_ARCH_AVX2) +#if GLM_ARCH & GLM_ARCH_AVX2 # include #endif//GLM_ARCH -#if(GLM_ARCH & GLM_ARCH_AVX) +#if GLM_ARCH & GLM_ARCH_AVX # include #endif//GLM_ARCH -#if(GLM_ARCH & GLM_ARCH_SSE4) +#if GLM_ARCH & GLM_ARCH_SSE4 # include #endif//GLM_ARCH -#if(GLM_ARCH & GLM_ARCH_SSE3) +#if GLM_ARCH & GLM_ARCH_SSE3 # include #endif//GLM_ARCH -#if(GLM_ARCH & GLM_ARCH_SSE2) +#if GLM_ARCH & GLM_ARCH_SSE2 # include # if(GLM_COMPILER == GLM_COMPILER_VC8) // VC8 is missing some intrinsics, workaround inline float _mm_cvtss_f32(__m128 A) { return A.m128_f32[0]; } @@ -680,7 +667,7 @@ # endif #endif//GLM_ARCH -#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_ARCH_DISPLAYED)) +#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_ARCH_DISPLAYED) # define GLM_MESSAGE_ARCH_DISPLAYED # if(GLM_ARCH == GLM_ARCH_PURE) # pragma message("GLM: Platform independent code") @@ -701,9 +688,9 @@ #if GLM_HAS_STATIC_ASSERT # define GLM_STATIC_ASSERT(x, message) static_assert(x, message) -#elif(defined(BOOST_STATIC_ASSERT)) +#elif defined(BOOST_STATIC_ASSERT) # define GLM_STATIC_ASSERT(x, message) BOOST_STATIC_ASSERT(x) -#elif(GLM_COMPILER & GLM_COMPILER_VC) +#elif GLM_COMPILER & GLM_COMPILER_VC # define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1] #else # define GLM_STATIC_ASSERT(x, message) @@ -727,12 +714,12 @@ # define GLM_VAR_USED #endif -#if(defined(GLM_FORCE_INLINE)) -# if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC8)) +#if defined(GLM_FORCE_INLINE) +# if GLM_COMPILER & GLM_COMPILER_VC # define GLM_INLINE __forceinline -# elif((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC34)) +# elif GLM_COMPILER & GLM_COMPILER_GCC # define GLM_INLINE __attribute__((always_inline)) inline -# elif(GLM_COMPILER & GLM_COMPILER_CLANG) +# elif GLM_COMPILER & GLM_COMPILER_CLANG # define GLM_INLINE __attribute__((always_inline)) # else # define GLM_INLINE inline @@ -749,7 +736,7 @@ // User defines: GLM_SWIZZLE -#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED)) +#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED) # define GLM_MESSAGE_SWIZZLE_DISPLAYED # if defined(GLM_SWIZZLE) # pragma message("GLM: Swizzling operators enabled") @@ -761,19 +748,19 @@ /////////////////////////////////////////////////////////////////////////////////////////////////// // Qualifiers -#if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC8)) +#if GLM_COMPILER & GLM_COMPILER_VC # define GLM_DEPRECATED __declspec(deprecated) # define GLM_ALIGN(x) __declspec(align(x)) # define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct # define GLM_RESTRICT __declspec(restrict) # define GLM_RESTRICT_VAR __restrict -#elif(GLM_COMPILER & GLM_COMPILER_INTEL) +#elif GLM_COMPILER & GLM_COMPILER_INTEL # define GLM_DEPRECATED # define GLM_ALIGN(x) __declspec(align(x)) # define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct # define GLM_RESTRICT # define GLM_RESTRICT_VAR __restrict -#elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)) +#elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG) # define GLM_DEPRECATED __attribute__((__deprecated__)) # define GLM_ALIGN(x) __attribute__((aligned(x))) # define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x))) @@ -827,7 +814,7 @@ namespace detail }//namespace detail }//namespace glm -#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_FORCE_SIZE_T_LENGTH)) +#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_FORCE_SIZE_T_LENGTH) # define GLM_MESSAGE_FORCE_SIZE_T_LENGTH # if defined(GLM_FORCE_SIZE_T_LENGTH) # pragma message("GLM: .length() returns glm::length_t, a typedef of std::size_t") diff --git a/readme.txt b/readme.txt index 511fd14a..cc8eece8 100644 --- a/readme.txt +++ b/readme.txt @@ -65,6 +65,13 @@ GLM 0.9.6.0: 2014-XX-XX - Removed GLM_FORCE_CUDA, Cuda is implicitly detected - Updated GTX_associated_min_max with vec1 support - Fixed lack of consistency of quat and dualquat constructors +- Removed VC 2005 / 8 and 2008 / 9 support +- Removed GCC 3.4 to 4.5 support +- Removed LLVM GCC support +- Removed LLVM 2.6 to 2.9 support +- Removed CUDA 3.0 to 4.0 support +- Undetected C++ compiler automatically compile with GLM_FORCE_CXX98 and + GLM_FORCE_PURE ================================================================================ GLM 0.9.5.4: 2014-06-21 diff --git a/test/core/core_setup_message.cpp b/test/core/core_setup_message.cpp index ca029f06..a3f5cf12 100644 --- a/test/core/core_setup_message.cpp +++ b/test/core/core_setup_message.cpp @@ -19,12 +19,6 @@ int test_compiler() { switch(GLM_COMPILER) { - case GLM_COMPILER_VC8: - std::cout << "GLM_COMPILER_VC8" << std::endl; - break; - case GLM_COMPILER_VC9: - std::cout << "GLM_COMPILER_VC9" << std::endl; - break; case GLM_COMPILER_VC10: std::cout << "GLM_COMPILER_VC10" << std::endl; break; @@ -47,18 +41,6 @@ int test_compiler() { switch(GLM_COMPILER) { - case GLM_COMPILER_GCC34: - std::cout << "GLM_COMPILER_GCC34" << std::endl; - break; - case GLM_COMPILER_GCC35: - std::cout << "GLM_COMPILER_GCC35" << std::endl; - break; - case GLM_COMPILER_GCC40: - std::cout << "GLM_COMPILER_GCC40" << std::endl; - break; - case GLM_COMPILER_GCC41: - std::cout << "GLM_COMPILER_GCC41" << std::endl; - break; case GLM_COMPILER_GCC42: std::cout << "GLM_COMPILER_GCC42" << std::endl; break; diff --git a/test/core/core_type_vec1.cpp b/test/core/core_type_vec1.cpp index b0813911..6dfc33fc 100644 --- a/test/core/core_type_vec1.cpp +++ b/test/core/core_type_vec1.cpp @@ -93,11 +93,11 @@ int test_vec1_size() int Error = 0; Error += sizeof(glm::vec1) == sizeof(glm::mediump_vec1) ? 0 : 1; - Error += 8 == sizeof(glm::mediump_vec1) ? 0 : 1; + Error += 4 == sizeof(glm::mediump_vec1) ? 0 : 1; Error += sizeof(glm::dvec1) == sizeof(glm::highp_dvec1) ? 0 : 1; - Error += 16 == sizeof(glm::highp_dvec1) ? 0 : 1; - Error += glm::vec1().length() == 2 ? 0 : 1; - Error += glm::dvec1().length() == 2 ? 0 : 1; + Error += 8 == sizeof(glm::highp_dvec1) ? 0 : 1; + Error += glm::vec1().length() == 1 ? 0 : 1; + Error += glm::dvec1().length() == 1 ? 0 : 1; return Error; }