Christophe Riccio 6 years ago
parent
commit
13d2cea73f
3 changed files with 65 additions and 52 deletions
  1. 58 52
      glm/simd/platform.h
  2. 1 0
      readme.md
  3. 6 0
      test/core/core_setup_message.cpp

+ 58 - 52
glm/simd/platform.h

@@ -60,7 +60,9 @@
 #define GLM_COMPILER_VC15_5			0x01000005
 #define GLM_COMPILER_VC15_5			0x01000005
 #define GLM_COMPILER_VC15_6			0x01000006
 #define GLM_COMPILER_VC15_6			0x01000006
 #define GLM_COMPILER_VC15_7			0x01000007
 #define GLM_COMPILER_VC15_7			0x01000007
-#define GLM_COMPILER_VC16			0x01000008
+#define GLM_COMPILER_VC15_8			0x01000008
+#define GLM_COMPILER_VC15_9			0x01000009
+#define GLM_COMPILER_VC16			0x0100000A
 
 
 // GCC defines
 // GCC defines
 #define GLM_COMPILER_GCC			0x02000000
 #define GLM_COMPILER_GCC			0x02000000
@@ -100,16 +102,16 @@
 #	define GLM_COMPILER GLM_COMPILER_UNKNOWN
 #	define GLM_COMPILER GLM_COMPILER_UNKNOWN
 
 
 #elif defined(__INTEL_COMPILER)
 #elif defined(__INTEL_COMPILER)
-#	if (__INTEL_COMPILER < 1400)
-#		error "GLM requires ICC 2013 SP1 or newer"
-#	elif __INTEL_COMPILER == 1400
-#		define GLM_COMPILER GLM_COMPILER_INTEL14
-#	elif __INTEL_COMPILER == 1500
-#		define GLM_COMPILER GLM_COMPILER_INTEL15
-#	elif __INTEL_COMPILER == 1600
-#		define GLM_COMPILER GLM_COMPILER_INTEL16
-#	elif __INTEL_COMPILER >= 1700
+#	if __INTEL_COMPILER >= 1700
 #		define GLM_COMPILER GLM_COMPILER_INTEL17
 #		define GLM_COMPILER GLM_COMPILER_INTEL17
+#	elif __INTEL_COMPILER >= 1600
+#		define GLM_COMPILER GLM_COMPILER_INTEL16
+#	elif __INTEL_COMPILER >= 1500
+#		define GLM_COMPILER GLM_COMPILER_INTEL15
+#	elif __INTEL_COMPILER >= 1400
+#		define GLM_COMPILER GLM_COMPILER_INTEL14
+#	elif __INTEL_COMPILER < 1400
+#		error "GLM requires ICC 2013 SP1 or newer"
 #	endif
 #	endif
 
 
 // CUDA
 // CUDA
@@ -117,14 +119,14 @@
 #	if !defined(CUDA_VERSION) && !defined(GLM_FORCE_CUDA)
 #	if !defined(CUDA_VERSION) && !defined(GLM_FORCE_CUDA)
 #		include <cuda.h>  // make sure version is defined since nvcc does not define it itself!
 #		include <cuda.h>  // make sure version is defined since nvcc does not define it itself!
 #	endif
 #	endif
-#	if CUDA_VERSION < 7000
-#		error "GLM requires CUDA 7.0 or higher"
-#	elif (CUDA_VERSION >= 7000 && CUDA_VERSION < 7500)
-#		define GLM_COMPILER GLM_COMPILER_CUDA70
-#	elif (CUDA_VERSION >= 7500 && CUDA_VERSION < 8000)
-#		define GLM_COMPILER GLM_COMPILER_CUDA75
-#	elif (CUDA_VERSION >= 8000)
+#	if CUDA_VERSION >= 8000
 #		define GLM_COMPILER GLM_COMPILER_CUDA80
 #		define GLM_COMPILER GLM_COMPILER_CUDA80
+#	elif CUDA_VERSION >= 7500
+#		define GLM_COMPILER GLM_COMPILER_CUDA75
+#	elif CUDA_VERSION >= 7000
+#		define GLM_COMPILER GLM_COMPILER_CUDA70
+#	elif CUDA_VERSION < 7000
+#		error "GLM requires CUDA 7.0 or higher"
 #	endif
 #	endif
 
 
 // Clang
 // Clang
@@ -167,46 +169,50 @@
 
 
 // Visual C++
 // Visual C++
 #elif defined(_MSC_VER)
 #elif defined(_MSC_VER)
-#	if _MSC_VER < 1800
-#		error "GLM requires Visual C++ 12 - 2013 or higher"
-#	elif _MSC_VER == 1800
-#		define GLM_COMPILER GLM_COMPILER_VC12
-#	elif _MSC_VER == 1900
-#		define GLM_COMPILER GLM_COMPILER_VC14
-#	elif _MSC_VER == 1910
-#		define GLM_COMPILER GLM_COMPILER_VC15
-#	elif _MSC_VER == 1911
-#		define GLM_COMPILER GLM_COMPILER_VC15_3
-#	elif _MSC_VER == 1912
-#		define GLM_COMPILER GLM_COMPILER_VC15_5
-#	elif _MSC_VER == 1913
-#		define GLM_COMPILER GLM_COMPILER_VC15_6
-#	elif _MSC_VER == 1914
-#		define GLM_COMPILER GLM_COMPILER_VC15_7
-#	elif _MSC_VER >= 1920
+#	if _MSC_VER >= 1920
 #		define GLM_COMPILER GLM_COMPILER_VC16
 #		define GLM_COMPILER GLM_COMPILER_VC16
+#	elif _MSC_VER >= 1916
+#		define GLM_COMPILER GLM_COMPILER_VC15_9
+#	elif _MSC_VER >= 1915
+#		define GLM_COMPILER GLM_COMPILER_VC15_8
+#	elif _MSC_VER >= 1914
+#		define GLM_COMPILER GLM_COMPILER_VC15_7
+#	elif _MSC_VER >= 1913
+#		define GLM_COMPILER GLM_COMPILER_VC15_6
+#	elif _MSC_VER >= 1912
+#		define GLM_COMPILER GLM_COMPILER_VC15_5
+#	elif _MSC_VER >= 1911
+#		define GLM_COMPILER GLM_COMPILER_VC15_3
+#	elif _MSC_VER >= 1910
+#		define GLM_COMPILER GLM_COMPILER_VC15
+#	elif _MSC_VER >= 1900
+#		define GLM_COMPILER GLM_COMPILER_VC14
+#	elif _MSC_VER >= 1800
+#		define GLM_COMPILER GLM_COMPILER_VC12
+#	elif _MSC_VER < 1800
+#		error "GLM requires Visual C++ 12 - 2013 or higher"
 #	endif//_MSC_VER
 #	endif//_MSC_VER
 
 
 // G++
 // G++
 #elif defined(__GNUC__) || defined(__MINGW32__)
 #elif defined(__GNUC__) || defined(__MINGW32__)
-#	if ((__GNUC__ == 4) && (__GNUC_MINOR__ < 6)) || (__GNUC__ < 4)
-#		error "GLM requires GCC 4.7 or higher"
-#	elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)
-#		define GLM_COMPILER (GLM_COMPILER_GCC46)
-#	elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 7)
-#		define GLM_COMPILER (GLM_COMPILER_GCC47)
-#	elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
-#		define GLM_COMPILER (GLM_COMPILER_GCC48)
-#	elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)
-#		define GLM_COMPILER (GLM_COMPILER_GCC49)
-#	elif (__GNUC__ == 5)
-#		define GLM_COMPILER (GLM_COMPILER_GCC5)
-#	elif (__GNUC__ == 6)
-#		define GLM_COMPILER (GLM_COMPILER_GCC6)
-#	elif (__GNUC__ == 7)
-#		define GLM_COMPILER (GLM_COMPILER_GCC7)
-#	elif (__GNUC__ >= 8)
-#		define GLM_COMPILER (GLM_COMPILER_GCC8)
+#	if __GNUC__ >= 8
+#		define GLM_COMPILER GLM_COMPILER_GCC8
+#	elif __GNUC__ >= 7
+#		define GLM_COMPILER GLM_COMPILER_GCC7
+#	elif __GNUC__ >= 6
+#		define GLM_COMPILER GLM_COMPILER_GCC6
+#	elif __GNUC__ >= 5
+#		define GLM_COMPILER GLM_COMPILER_GCC5
+#	elif __GNUC__ == 4 && __GNUC_MINOR__ >= 9
+#		define GLM_COMPILER GLM_COMPILER_GCC49
+#	elif __GNUC__ == 4 && __GNUC_MINOR__ >= 8
+#		define GLM_COMPILER GLM_COMPILER_GCC48
+#	elif __GNUC__ == 4 && __GNUC_MINOR__ >= 7
+#		define GLM_COMPILER GLM_COMPILER_GCC47
+#	elif __GNUC__ == 4 && __GNUC_MINOR__ >= 6
+#		define GLM_COMPILER GLM_COMPILER_GCC46
+#	elif ((__GNUC__ == 4) && (__GNUC_MINOR__ < 6)) || (__GNUC__ < 4)
+#		error "GLM requires GCC 4.6 or higher"
 #	endif
 #	endif
 
 
 #else
 #else

+ 1 - 0
readme.md

@@ -55,6 +55,7 @@ glm::mat4 camera(float Translate, glm::vec2 const& Rotate)
 ### [GLM 0.9.9.6](https://github.com/g-truc/glm/tree/master)
 ### [GLM 0.9.9.6](https://github.com/g-truc/glm/tree/master)
 #### Improvements:
 #### Improvements:
 - Added Visual C++ 2019 detection
 - Added Visual C++ 2019 detection
+- Added Visual C++ 2017 15.8 and 15.9 detection
 
 
 ### [GLM 0.9.9.5](https://github.com/g-truc/glm/releases/tag/0.9.9.5) - 2019-04-01
 ### [GLM 0.9.9.5](https://github.com/g-truc/glm/releases/tag/0.9.9.5) - 2019-04-01
 #### Fixes:
 #### Fixes:

+ 6 - 0
test/core/core_setup_message.cpp

@@ -31,6 +31,12 @@ int test_compiler()
 		case GLM_COMPILER_VC15_7:
 		case GLM_COMPILER_VC15_7:
 			std::printf("Visual C++ 15.7 - 2017\n");
 			std::printf("Visual C++ 15.7 - 2017\n");
 			break;
 			break;
+		case GLM_COMPILER_VC15_8:
+			std::printf("Visual C++ 15.8 - 2017\n");
+			break;
+		case GLM_COMPILER_VC15_9:
+			std::printf("Visual C++ 15.9 - 2017\n");
+			break;
 		case GLM_COMPILER_VC16:
 		case GLM_COMPILER_VC16:
 			std::printf("Visual C++ 16 - 2019\n");
 			std::printf("Visual C++ 16 - 2019\n");
 			break;
 			break;