mirror of
https://github.com/Kitware/CMake.git
synced 2026-03-07 15:18:38 -06:00
C++26: Support detection as the default standard
This was missed in commit f808d8afb9 (CMake: Support upcoming C++26
language level, 2022-08-19, v3.25.0-rc1~218^2).
This commit is contained in:
@@ -25,7 +25,9 @@ char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
|
|||||||
#define CXX_STD __cplusplus
|
#define CXX_STD __cplusplus
|
||||||
|
|
||||||
const char* info_language_standard_default = "INFO" ":" "standard_default["
|
const char* info_language_standard_default = "INFO" ":" "standard_default["
|
||||||
#if CXX_STD > CXX_STD_20
|
#if CXX_STD > CXX_STD_23
|
||||||
|
"26"
|
||||||
|
#elif CXX_STD > CXX_STD_20
|
||||||
"23"
|
"23"
|
||||||
#elif CXX_STD > CXX_STD_17
|
#elif CXX_STD > CXX_STD_17
|
||||||
"20"
|
"20"
|
||||||
|
|||||||
@@ -89,7 +89,9 @@ char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char* info_language_standard_default = "INFO" ":" "standard_default["
|
const char* info_language_standard_default = "INFO" ":" "standard_default["
|
||||||
#if CXX_STD > CXX_STD_20
|
#if CXX_STD > CXX_STD_23
|
||||||
|
"26"
|
||||||
|
#elif CXX_STD > CXX_STD_20
|
||||||
"23"
|
"23"
|
||||||
#elif CXX_STD > CXX_STD_17
|
#elif CXX_STD > CXX_STD_17
|
||||||
"20"
|
"20"
|
||||||
|
|||||||
@@ -26,7 +26,9 @@ char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
|
|||||||
#define CXX_STD __cplusplus
|
#define CXX_STD __cplusplus
|
||||||
|
|
||||||
const char* info_language_standard_default = "INFO" ":" "standard_default["
|
const char* info_language_standard_default = "INFO" ":" "standard_default["
|
||||||
#if CXX_STD > CXX_STD_20
|
#if CXX_STD > CXX_STD_23
|
||||||
|
"26"
|
||||||
|
#elif CXX_STD > CXX_STD_20
|
||||||
"23"
|
"23"
|
||||||
#elif CXX_STD > CXX_STD_17
|
#elif CXX_STD > CXX_STD_17
|
||||||
"20"
|
"20"
|
||||||
|
|||||||
@@ -33,7 +33,9 @@ char const* qnxnto = "INFO" ":" "qnxnto[]";
|
|||||||
#define CXX_STD __cplusplus
|
#define CXX_STD __cplusplus
|
||||||
|
|
||||||
const char* info_language_standard_default = "INFO" ":" "standard_default["
|
const char* info_language_standard_default = "INFO" ":" "standard_default["
|
||||||
#if CXX_STD > CXX_STD_20
|
#if CXX_STD > CXX_STD_23
|
||||||
|
"26"
|
||||||
|
#elif CXX_STD > CXX_STD_20
|
||||||
"23"
|
"23"
|
||||||
#elif CXX_STD > CXX_STD_17
|
#elif CXX_STD > CXX_STD_17
|
||||||
"20"
|
"20"
|
||||||
|
|||||||
@@ -286,6 +286,7 @@ if (CMAKE_CXX_COMPILE_FEATURES)
|
|||||||
if (std_flag_idx EQUAL -1)
|
if (std_flag_idx EQUAL -1)
|
||||||
add_executable(default_dialect default_dialect.cpp)
|
add_executable(default_dialect default_dialect.cpp)
|
||||||
target_compile_definitions(default_dialect PRIVATE
|
target_compile_definitions(default_dialect PRIVATE
|
||||||
|
DEFAULT_CXX26=$<EQUAL:${CMAKE_CXX_STANDARD_DEFAULT},26>
|
||||||
DEFAULT_CXX23=$<EQUAL:${CMAKE_CXX_STANDARD_DEFAULT},23>
|
DEFAULT_CXX23=$<EQUAL:${CMAKE_CXX_STANDARD_DEFAULT},23>
|
||||||
DEFAULT_CXX20=$<EQUAL:${CMAKE_CXX_STANDARD_DEFAULT},20>
|
DEFAULT_CXX20=$<EQUAL:${CMAKE_CXX_STANDARD_DEFAULT},20>
|
||||||
DEFAULT_CXX17=$<EQUAL:${CMAKE_CXX_STANDARD_DEFAULT},17>
|
DEFAULT_CXX17=$<EQUAL:${CMAKE_CXX_STANDARD_DEFAULT},17>
|
||||||
|
|||||||
@@ -3,7 +3,11 @@
|
|||||||
template <long l>
|
template <long l>
|
||||||
struct Outputter;
|
struct Outputter;
|
||||||
|
|
||||||
#if DEFAULT_CXX23
|
#if DEFAULT_CXX26
|
||||||
|
# if CXX_STD <= CXX_STD_23
|
||||||
|
Outputter<CXX_STD> o;
|
||||||
|
# endif
|
||||||
|
#elif DEFAULT_CXX23
|
||||||
# if CXX_STD <= CXX_STD_20
|
# if CXX_STD <= CXX_STD_20
|
||||||
Outputter<CXX_STD> o;
|
Outputter<CXX_STD> o;
|
||||||
# endif
|
# endif
|
||||||
|
|||||||
@@ -40,6 +40,6 @@ set(${lang}${standard}_EXT_FLAG ${CMAKE_${lang}${standard}_EXTENSION_COMPILE_OPT
|
|||||||
endforeach()
|
endforeach()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
info(C 90 99 11 17 23)
|
info(C 90 99 11 17 23 26)
|
||||||
info(CXX 98 11 14 17 20 23)
|
info(CXX 98 11 14 17 20 23 26)
|
||||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/info.cmake" "${info}")
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/info.cmake" "${info}")
|
||||||
|
|||||||
Reference in New Issue
Block a user