summaryrefslogtreecommitdiffstats
path: root/Modules/Compiler/MSVC-CXX.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/Compiler/MSVC-CXX.cmake')
-rw-r--r--Modules/Compiler/MSVC-CXX.cmake12
1 files changed, 12 insertions, 0 deletions
diff --git a/Modules/Compiler/MSVC-CXX.cmake b/Modules/Compiler/MSVC-CXX.cmake
index 79cd2e0..2243a14 100644
--- a/Modules/Compiler/MSVC-CXX.cmake
+++ b/Modules/Compiler/MSVC-CXX.cmake
@@ -30,14 +30,18 @@ if ((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.0.24215.1 AND
set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std:c++latest")
endif()
+ set(CMAKE_CXX_STANDARD_LATEST 17)
+
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.29.30129)
set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std:c++20")
set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std:c++20")
set(CMAKE_CXX23_STANDARD_COMPILE_OPTION "-std:c++latest")
set(CMAKE_CXX23_EXTENSION_COMPILE_OPTION "-std:c++latest")
+ set(CMAKE_CXX_STANDARD_LATEST 23)
elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.12.25835)
set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std:c++latest")
set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std:c++latest")
+ set(CMAKE_CXX_STANDARD_LATEST 20)
endif()
__compiler_check_default_language_standard(CXX 19.0 14)
@@ -57,6 +61,14 @@ elseif (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0)
set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "")
set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "")
+ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.0)
+ set(CMAKE_CXX_STANDARD_LATEST 17)
+ elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 18.0)
+ set(CMAKE_CXX_STANDARD_LATEST 14)
+ else()
+ set(CMAKE_CXX_STANDARD_LATEST 11)
+ endif()
+
# There is no meaningful default for this
set(CMAKE_CXX_STANDARD_DEFAULT "")