Browse Source

Updated VC support compilers list

Christophe Riccio 11 years ago
parent
commit
2d48d922bd
3 changed files with 34 additions and 42 deletions
  1. 25 30
      glm/detail/setup.hpp
  2. 1 1
      glm/gtx/string_cast.inl
  3. 8 11
      test/core/core_setup_message.cpp

+ 25 - 30
glm/detail/setup.hpp

@@ -122,11 +122,10 @@
 
 
 // Visual C++ defines
 // Visual C++ defines
 #define GLM_COMPILER_VC				0x01000000
 #define GLM_COMPILER_VC				0x01000000
-#define GLM_COMPILER_VC10			0x01000090
-#define GLM_COMPILER_VC11			0x010000A0
-#define GLM_COMPILER_VC12			0x010000B0
-#define GLM_COMPILER_VC13			0x010000C0
-#define GLM_COMPILER_VC14			0x010000D0
+#define GLM_COMPILER_VC2010			0x01000090
+#define GLM_COMPILER_VC2012			0x010000A0
+#define GLM_COMPILER_VC2013			0x010000B0
+#define GLM_COMPILER_VC2015			0x010000C0
 
 
 // GCC defines
 // GCC defines
 #define GLM_COMPILER_GCC			0x02000000
 #define GLM_COMPILER_GCC			0x02000000
@@ -206,20 +205,16 @@
 
 
 // Visual C++
 // Visual C++
 #elif defined(_MSC_VER)
 #elif defined(_MSC_VER)
-#	if _MSC_VER < 1400
-#		error "GLM requires Visual C++ 2005 or higher"
-#	elif _MSC_VER == 1400
-#		define GLM_COMPILER GLM_COMPILER_VC8
-#	elif _MSC_VER == 1500
-#		define GLM_COMPILER GLM_COMPILER_VC9
+#	if _MSC_VER < 1600
+#		error "GLM requires Visual C++ 2010 or higher"
 #	elif _MSC_VER == 1600
 #	elif _MSC_VER == 1600
-#		define GLM_COMPILER GLM_COMPILER_VC10
+#		define GLM_COMPILER GLM_COMPILER_VC2010
 #	elif _MSC_VER == 1700
 #	elif _MSC_VER == 1700
-#		define GLM_COMPILER GLM_COMPILER_VC11
+#		define GLM_COMPILER GLM_COMPILER_VC2012
 #	elif _MSC_VER == 1800
 #	elif _MSC_VER == 1800
-#		define GLM_COMPILER GLM_COMPILER_VC12
+#		define GLM_COMPILER GLM_COMPILER_VC2013
 #	elif _MSC_VER >= 1900
 #	elif _MSC_VER >= 1900
-#		define GLM_COMPILER GLM_COMPILER_VC13
+#		define GLM_COMPILER GLM_COMPILER_VC2015
 #	else//_MSC_VER
 #	else//_MSC_VER
 #		define GLM_COMPILER GLM_COMPILER_VC
 #		define GLM_COMPILER GLM_COMPILER_VC
 #	endif//_MSC_VER
 #	endif//_MSC_VER
@@ -385,13 +380,13 @@
 #		endif
 #		endif
 #	elif GLM_COMPILER & GLM_COMPILER_VC
 #	elif GLM_COMPILER & GLM_COMPILER_VC
 #		ifdef _MSC_EXTENSIONS
 #		ifdef _MSC_EXTENSIONS
-#			if GLM_COMPILER >= GLM_COMPILER_VC10
+#			if GLM_COMPILER >= GLM_COMPILER_VC2010
 #				define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)
 #				define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)
 #			else
 #			else
 #				define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)
 #				define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)
 #			endif
 #			endif
 #		else
 #		else
-#			if GLM_COMPILER >= GLM_COMPILER_VC10
+#			if GLM_COMPILER >= GLM_COMPILER_VC2010
 #				define GLM_LANG GLM_LANG_CXX0X
 #				define GLM_LANG GLM_LANG_CXX0X
 #			else
 #			else
 #				define GLM_LANG GLM_LANG_CXX98
 #				define GLM_LANG GLM_LANG_CXX98
@@ -461,19 +456,19 @@
 // N1720
 // N1720
 #define GLM_HAS_CXX11_STL ( \
 #define GLM_HAS_CXX11_STL ( \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC13)))
+	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2015)))
 
 
 // N1720
 // N1720
 #define GLM_HAS_STATIC_ASSERT ( \
 #define GLM_HAS_STATIC_ASSERT ( \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC10)) || \
+	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2010)) || \
 	((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_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
 	__has_feature(cxx_static_assert))
 	__has_feature(cxx_static_assert))
 
 
 // N1988
 // N1988
 #define GLM_HAS_EXTENDED_INTEGER_TYPE ( \
 #define GLM_HAS_EXTENDED_INTEGER_TYPE ( \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC11)) || \
+	((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_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
 	((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_CLANG) && (GLM_COMPILER >= GLM_COMPILER_CLANG29)))
 	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG) && (GLM_COMPILER >= GLM_COMPILER_CLANG29)))
 
 
@@ -486,7 +481,7 @@
 // N2672
 // N2672
 #define GLM_HAS_INITIALIZER_LISTS ( \
 #define GLM_HAS_INITIALIZER_LISTS ( \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12))) || \
+	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013))) || \
 	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \
 	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \
 	__has_feature(cxx_generalized_initializers))
 	__has_feature(cxx_generalized_initializers))
 
 
@@ -500,30 +495,30 @@
 // N2346
 // N2346
 #define GLM_HAS_DEFAULTED_FUNCTIONS ( \
 #define GLM_HAS_DEFAULTED_FUNCTIONS ( \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12))) || \
+	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013))) || \
 	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \
 	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \
 	__has_feature(cxx_defaulted_functions))
 	__has_feature(cxx_defaulted_functions))
 
 
 // N2118
 // N2118
 #define GLM_HAS_RVALUE_REFERENCES ( \
 #define GLM_HAS_RVALUE_REFERENCES ( \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC11))) || \
+	((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_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
 	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
 	__has_feature(cxx_rvalue_references))
 	__has_feature(cxx_rvalue_references))
 
 
 #define GLM_HAS_STL_ARRAY ( \
 #define GLM_HAS_STL_ARRAY ( \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC10))) || \
+	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2010))) || \
 	((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_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)))
 
 
 #define GLM_HAS_TEMPLATE_ALIASES ( \
 #define GLM_HAS_TEMPLATE_ALIASES ( \
-	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12))) || \
+	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013))) || \
 	__has_feature(cxx_alias_templates))
 	__has_feature(cxx_alias_templates))
 	//((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC47)) || \
 	//((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC47)) || \
 
 
 #define GLM_HAS_RANGE_FOR ( \
 #define GLM_HAS_RANGE_FOR ( \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC11))) || \
+	((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_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46)) || \
 	((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46)) || \
 	__has_feature(cxx_range_for))
 	__has_feature(cxx_range_for))
 
 
@@ -533,11 +528,11 @@
 
 
 #define GLM_HAS_TRIVIAL_QUERIES (\
 #define GLM_HAS_TRIVIAL_QUERIES (\
 	((GLM_LANG & GLM_LANG_CXX11_FLAG) && !(GLM_COMPILER & GLM_COMPILER_GCC)) || \
 	((GLM_LANG & GLM_LANG_CXX11_FLAG) && !(GLM_COMPILER & GLM_COMPILER_GCC)) || \
-	((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)))
+	((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)))
 
 
 #define GLM_HAS_MAKE_SIGNED (\
 #define GLM_HAS_MAKE_SIGNED (\
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
 	(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-	((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)))
+	((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)))
 
 
 // OpenMP
 // OpenMP
 #ifdef _OPENMP 
 #ifdef _OPENMP 
@@ -552,7 +547,7 @@
 #	endif// GLM_COMPILER & GLM_COMPILER_GCC
 #	endif// GLM_COMPILER & GLM_COMPILER_GCC
 
 
 #	if GLM_COMPILER & GLM_COMPILER_VC
 #	if GLM_COMPILER & GLM_COMPILER_VC
-#		if GLM_COMPILER >= GLM_COMPILER_VC10
+#		if GLM_COMPILER >= GLM_COMPILER_VC2010
 #			define GLM_HAS_OPENMP 20
 #			define GLM_HAS_OPENMP 20
 #		endif
 #		endif
 #	endif// GLM_COMPILER & GLM_COMPILER_VC
 #	endif// GLM_COMPILER & GLM_COMPILER_VC
@@ -644,7 +639,7 @@
 #endif//GLM_ARCH
 #endif//GLM_ARCH
 #if GLM_ARCH & GLM_ARCH_SSE2
 #if GLM_ARCH & GLM_ARCH_SSE2
 #	include <emmintrin.h>
 #	include <emmintrin.h>
-#	if(GLM_COMPILER == GLM_COMPILER_VC8) // VC8 is missing some intrinsics, workaround
+#	if(GLM_COMPILER == GLM_COMPILER_VC2005) // VC2005 is missing some intrinsics, workaround
 		inline float _mm_cvtss_f32(__m128 A) { return A.m128_f32[0]; }
 		inline float _mm_cvtss_f32(__m128 A) { return A.m128_f32[0]; }
 		inline __m128 _mm_castpd_ps(__m128d PD) { union { __m128 ps; __m128d pd; } c; c.pd = PD; return c.ps; }
 		inline __m128 _mm_castpd_ps(__m128d PD) { union { __m128 ps; __m128d pd; } c; c.pd = PD; return c.ps; }
 		inline __m128d _mm_castps_pd(__m128 PS) { union { __m128 ps; __m128d pd; } c; c.ps = PS; return c.pd; }
 		inline __m128d _mm_castps_pd(__m128 PS) { union { __m128 ps; __m128d pd; } c; c.ps = PS; return c.pd; }

+ 1 - 1
glm/gtx/string_cast.inl

@@ -23,7 +23,7 @@ namespace detail
 			return std::string();
 			return std::string();
 
 
 		va_start(list, msg);
 		va_start(list, msg);
-#		if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC8))
+#		if(GLM_COMPILER & GLM_COMPILER_VC)
 			vsprintf_s(text, STRING_BUFFER, msg, list);
 			vsprintf_s(text, STRING_BUFFER, msg, list);
 #		else//
 #		else//
 			vsprintf(text, msg, list);
 			vsprintf(text, msg, list);

+ 8 - 11
test/core/core_setup_message.cpp

@@ -19,20 +19,17 @@ int test_compiler()
 	{
 	{
 		switch(GLM_COMPILER)
 		switch(GLM_COMPILER)
 		{
 		{
-		case GLM_COMPILER_VC10:
-			std::printf("GLM_COMPILER_VC10\n");
+		case GLM_COMPILER_VC2010:
+			std::printf("GLM_COMPILER_VC2010\n");
 			break;
 			break;
-		case GLM_COMPILER_VC11:
-			std::printf("GLM_COMPILER_VC11\n");
+		case GLM_COMPILER_VC2012:
+			std::printf("GLM_COMPILER_VC2012\n");
 			break;
 			break;
-		case GLM_COMPILER_VC12:
-			std::printf("GLM_COMPILER_VC12\n");
+		case GLM_COMPILER_VC2013:
+			std::printf("GLM_COMPILER_VC2013\n");
 			break;
 			break;
-		case GLM_COMPILER_VC13:
-			std::printf("GLM_COMPILER_VC13\n");
-			break;
-		case GLM_COMPILER_VC14:
-			std::printf("GLM_COMPILER_VC14\n");
+		case GLM_COMPILER_VC2015:
+			std::printf("GLM_COMPILER_VC2015\n");
 			break;
 			break;
 		default:
 		default:
 			std::printf("Visual C++ version not detected\n");
 			std::printf("Visual C++ version not detected\n");