diff --git a/CMakeLists.txt b/CMakeLists.txt index ee093716..5b87a8eb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,27 +21,27 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) if(GLM_TEST_ENABLE_CXX_20) set(CMAKE_CXX_STANDARD 20) - add_definitions(-DGLM_FORCE_CXX2A) +# add_definitions(-DGLM_FORCE_CXX2A) message(STATUS "GLM: Build with C++20 features") elseif(GLM_TEST_ENABLE_CXX_17) set(CMAKE_CXX_STANDARD 17) - add_definitions(-DGLM_FORCE_CXX17) +# add_definitions(-DGLM_FORCE_CXX17) message(STATUS "GLM: Build with C++17 features") elseif(GLM_TEST_ENABLE_CXX_14) set(CMAKE_CXX_STANDARD 14) - add_definitions(-DGLM_FORCE_CXX14) +# add_definitions(-DGLM_FORCE_CXX14) message(STATUS "GLM: Build with C++14 features") elseif(GLM_TEST_ENABLE_CXX_11) set(CMAKE_CXX_STANDARD 11) - add_definitions(-DGLM_FORCE_CXX11) +# add_definitions(-DGLM_FORCE_CXX11) message(STATUS "GLM: Build with C++11 features") elseif(GLM_TEST_ENABLE_CXX_98) set(CMAKE_CXX_STANDARD 98) - add_definitions(-DGLM_FORCE_CXX98) +# add_definitions(-DGLM_FORCE_CXX98) message(STATUS "GLM: Build with C++98 features") endif() @@ -57,7 +57,9 @@ else() set(CMAKE_CXX_EXTENSIONS OFF) if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") add_compile_options(/Za) - add_compile_options(/permissive-) + if(MSVC15) + add_compile_options(/permissive-) + endif() endif() endif() diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp index c850114e..eac2148f 100644 --- a/glm/detail/setup.hpp +++ b/glm/detail/setup.hpp @@ -133,8 +133,18 @@ #elif defined(GLM_FORCE_CXX98) # define GLM_LANG GLM_LANG_CXX98 #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 # define GLM_LANG_PLATFORM 0 # endif