
Add a variable to indicate the latest standard known to be supported for each language: * `CMAKE_C_STANDARD_LATEST` * `CMAKE_CXX_STANDARD_LATEST` * `CMAKE_CUDA_STANDARD_LATEST` * `CMAKE_HIP_STANDARD_LATEST` * `CMAKE_OBJC_STANDARD_LATEST` * `CMAKE_OBJCXX_STANDARD_LATEST` These variables, more generally referred to as `CMAKE_<LANG>_STANDARD_LATEST`, are assigned an integer value which represents the minimum between the latest version of the associated language standard supported by the current compiler and the latest version supported by CMake. Add documentation for these variables in a new page called `CMAKE_<LANG>_STANDARD_LATEST` was added under the "Variables for Languages" section of the `cmake-variables(7)` page. Update each compiler-specific CMake script under `${CMAKE_ROOT}\Modules\Compiler` to manually define the relevant `CMAKE_<LANG>_STANDARD_LATEST` variable as necessary. This will require updating and maintaining as newer compiler versions become recognized by CMake. Closes: #25717
33 lines
1.4 KiB
CMake
33 lines
1.4 KiB
CMake
include(Compiler/PGI)
|
|
__compiler_pgi(CXX)
|
|
string(APPEND CMAKE_CXX_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
|
|
string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " -DNDEBUG")
|
|
|
|
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 12.10)
|
|
set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
|
|
set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION --gnu_extensions)
|
|
set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
|
|
set(CMAKE_CXX_STANDARD_LATEST 98)
|
|
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13.10)
|
|
set(CMAKE_CXX98_STANDARD_COMPILE_OPTION --c++03)
|
|
set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION --c++03 --gnu_extensions)
|
|
set(CMAKE_CXX11_STANDARD_COMPILE_OPTION --c++11)
|
|
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION --c++11 --gnu_extensions)
|
|
set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON)
|
|
set(CMAKE_CXX_STANDARD_LATEST 11)
|
|
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 15.7)
|
|
set(CMAKE_CXX14_STANDARD_COMPILE_OPTION --c++14)
|
|
set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION --c++14 --gnu_extensions)
|
|
set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
|
|
set(CMAKE_CXX_STANDARD_LATEST 14)
|
|
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 17.1)
|
|
set(CMAKE_CXX17_STANDARD_COMPILE_OPTION --c++17)
|
|
set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION --c++17 --gnu_extensions)
|
|
set(CMAKE_CXX_STANDARD_LATEST 17)
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
__compiler_check_default_language_standard(CXX 12.10 98)
|