Selaa lähdekoodia

Fixed Visual C++ language detection

Groove 7 vuotta sitten
vanhempi
sitoutus
9a0311f327
2 muutettua tiedostoa jossa 20 lisäystä ja 8 poistoa
  1. 8 6
      CMakeLists.txt
  2. 12 2
      glm/detail/setup.hpp

+ 8 - 6
CMakeLists.txt

@@ -21,27 +21,27 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
 
 if(GLM_TEST_ENABLE_CXX_20)
 if(GLM_TEST_ENABLE_CXX_20)
 	set(CMAKE_CXX_STANDARD 20)
 	set(CMAKE_CXX_STANDARD 20)
-	add_definitions(-DGLM_FORCE_CXX2A)
+#	add_definitions(-DGLM_FORCE_CXX2A)
 	message(STATUS "GLM: Build with C++20 features")
 	message(STATUS "GLM: Build with C++20 features")
 
 
 elseif(GLM_TEST_ENABLE_CXX_17)
 elseif(GLM_TEST_ENABLE_CXX_17)
 	set(CMAKE_CXX_STANDARD 17)
 	set(CMAKE_CXX_STANDARD 17)
-	add_definitions(-DGLM_FORCE_CXX17)
+#	add_definitions(-DGLM_FORCE_CXX17)
 	message(STATUS "GLM: Build with C++17 features")
 	message(STATUS "GLM: Build with C++17 features")
 
 
 elseif(GLM_TEST_ENABLE_CXX_14)
 elseif(GLM_TEST_ENABLE_CXX_14)
 	set(CMAKE_CXX_STANDARD 14)
 	set(CMAKE_CXX_STANDARD 14)
-	add_definitions(-DGLM_FORCE_CXX14)
+#	add_definitions(-DGLM_FORCE_CXX14)
 	message(STATUS "GLM: Build with C++14 features")
 	message(STATUS "GLM: Build with C++14 features")
 
 
 elseif(GLM_TEST_ENABLE_CXX_11)
 elseif(GLM_TEST_ENABLE_CXX_11)
 	set(CMAKE_CXX_STANDARD 11)
 	set(CMAKE_CXX_STANDARD 11)
-	add_definitions(-DGLM_FORCE_CXX11)
+#	add_definitions(-DGLM_FORCE_CXX11)
 	message(STATUS "GLM: Build with C++11 features")
 	message(STATUS "GLM: Build with C++11 features")
 
 
 elseif(GLM_TEST_ENABLE_CXX_98)
 elseif(GLM_TEST_ENABLE_CXX_98)
 	set(CMAKE_CXX_STANDARD 98)
 	set(CMAKE_CXX_STANDARD 98)
-	add_definitions(-DGLM_FORCE_CXX98)
+#	add_definitions(-DGLM_FORCE_CXX98)
 	message(STATUS "GLM: Build with C++98 features")
 	message(STATUS "GLM: Build with C++98 features")
 endif()
 endif()
 
 
@@ -57,7 +57,9 @@ else()
 	set(CMAKE_CXX_EXTENSIONS OFF)
 	set(CMAKE_CXX_EXTENSIONS OFF)
 	if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
 	if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
 		add_compile_options(/Za)
 		add_compile_options(/Za)
-		add_compile_options(/permissive-)
+		if(MSVC15)
+			add_compile_options(/permissive-)
+		endif()
 	endif()
 	endif()
 endif()
 endif()
 
 

+ 12 - 2
glm/detail/setup.hpp

@@ -133,8 +133,18 @@
 #elif defined(GLM_FORCE_CXX98)
 #elif defined(GLM_FORCE_CXX98)
 #	define GLM_LANG GLM_LANG_CXX98
 #	define GLM_LANG GLM_LANG_CXX98
 #else
 #else
-#	ifdef _MSVC_LANG
-#		define GLM_LANG_PLATFORM _MSVC_LANG
+#	if GLM_COMPILER & GLM_COMPILER_VC && defined(_MSVC_LANG)
+#		if GLM_COMPILER >= GLM_COMPILER_VC15_7
+#			define GLM_LANG_PLATFORM _MSVC_LANG
+#		elif GLM_COMPILER >= GLM_COMPILER_VC15
+#			if _MSVC_LANG > 201402L
+#				define GLM_LANG_PLATFORM 201402L
+#			else
+#				define GLM_LANG_PLATFORM _MSVC_LANG
+#			endif
+#		else
+#			define GLM_LANG_PLATFORM 0
+#		endif
 #	else
 #	else
 #		define GLM_LANG_PLATFORM 0
 #		define GLM_LANG_PLATFORM 0
 #	endif
 #	endif