mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-20 04:24:36 +08:00
CompilerID: Compiler extensions default detection
This commit is contained in:
@@ -553,6 +553,7 @@ Variables for Languages
|
|||||||
/variable/CMAKE_LANG_CREATE_SHARED_MODULE
|
/variable/CMAKE_LANG_CREATE_SHARED_MODULE
|
||||||
/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY
|
/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY
|
||||||
/variable/CMAKE_LANG_EXTENSIONS
|
/variable/CMAKE_LANG_EXTENSIONS
|
||||||
|
/variable/CMAKE_LANG_EXTENSIONS_DEFAULT
|
||||||
/variable/CMAKE_LANG_FLAGS
|
/variable/CMAKE_LANG_FLAGS
|
||||||
/variable/CMAKE_LANG_FLAGS_CONFIG
|
/variable/CMAKE_LANG_FLAGS_CONFIG
|
||||||
/variable/CMAKE_LANG_FLAGS_CONFIG_INIT
|
/variable/CMAKE_LANG_FLAGS_CONFIG_INIT
|
||||||
|
7
Help/variable/CMAKE_LANG_EXTENSIONS_DEFAULT.rst
Normal file
7
Help/variable/CMAKE_LANG_EXTENSIONS_DEFAULT.rst
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
CMAKE_<LANG>_EXTENSIONS_DEFAULT
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
.. versionadded:: 3.22
|
||||||
|
|
||||||
|
Default value used when the :prop_tgt:`<LANG>_EXTENSIONS` target property is
|
||||||
|
not set. Initialized during compiler detection to the compiler's default.
|
@@ -5,6 +5,7 @@ set(CMAKE_C_COMPILER_VERSION "@CMAKE_C_COMPILER_VERSION@")
|
|||||||
set(CMAKE_C_COMPILER_VERSION_INTERNAL "@CMAKE_C_COMPILER_VERSION_INTERNAL@")
|
set(CMAKE_C_COMPILER_VERSION_INTERNAL "@CMAKE_C_COMPILER_VERSION_INTERNAL@")
|
||||||
set(CMAKE_C_COMPILER_WRAPPER "@CMAKE_C_COMPILER_WRAPPER@")
|
set(CMAKE_C_COMPILER_WRAPPER "@CMAKE_C_COMPILER_WRAPPER@")
|
||||||
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "@CMAKE_C_STANDARD_COMPUTED_DEFAULT@")
|
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "@CMAKE_C_STANDARD_COMPUTED_DEFAULT@")
|
||||||
|
set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "@CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT@")
|
||||||
set(CMAKE_C_COMPILE_FEATURES "@CMAKE_C_COMPILE_FEATURES@")
|
set(CMAKE_C_COMPILE_FEATURES "@CMAKE_C_COMPILE_FEATURES@")
|
||||||
set(CMAKE_C90_COMPILE_FEATURES "@CMAKE_C90_COMPILE_FEATURES@")
|
set(CMAKE_C90_COMPILE_FEATURES "@CMAKE_C90_COMPILE_FEATURES@")
|
||||||
set(CMAKE_C99_COMPILE_FEATURES "@CMAKE_C99_COMPILE_FEATURES@")
|
set(CMAKE_C99_COMPILE_FEATURES "@CMAKE_C99_COMPILE_FEATURES@")
|
||||||
|
@@ -59,6 +59,17 @@ char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
|
|||||||
const char* info_language_standard_default =
|
const char* info_language_standard_default =
|
||||||
"INFO" ":" "standard_default[" C_VERSION "]";
|
"INFO" ":" "standard_default[" C_VERSION "]";
|
||||||
|
|
||||||
|
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
|
||||||
|
// !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode.
|
||||||
|
#if (defined(__clang__) || defined(__GNUC__) || \
|
||||||
|
defined(__TI_COMPILER_VERSION__)) && \
|
||||||
|
!defined(__STRICT_ANSI__) && !defined(_MSC_VER)
|
||||||
|
"ON"
|
||||||
|
#else
|
||||||
|
"OFF"
|
||||||
|
#endif
|
||||||
|
"]";
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#ifdef ID_VOID_MAIN
|
#ifdef ID_VOID_MAIN
|
||||||
@@ -90,6 +101,7 @@ int main(int argc, char* argv[])
|
|||||||
require += info_cray[argc];
|
require += info_cray[argc];
|
||||||
#endif
|
#endif
|
||||||
require += info_language_standard_default[argc];
|
require += info_language_standard_default[argc];
|
||||||
|
require += info_language_extensions_default[argc];
|
||||||
(void)argv;
|
(void)argv;
|
||||||
return require;
|
return require;
|
||||||
}
|
}
|
||||||
|
@@ -6,6 +6,7 @@ set(CMAKE_CUDA_COMPILER_VERSION "@CMAKE_CUDA_COMPILER_VERSION@")
|
|||||||
set(CMAKE_CUDA_DEVICE_LINKER "@CMAKE_CUDA_DEVICE_LINKER@")
|
set(CMAKE_CUDA_DEVICE_LINKER "@CMAKE_CUDA_DEVICE_LINKER@")
|
||||||
set(CMAKE_CUDA_FATBINARY "@CMAKE_CUDA_FATBINARY@")
|
set(CMAKE_CUDA_FATBINARY "@CMAKE_CUDA_FATBINARY@")
|
||||||
set(CMAKE_CUDA_STANDARD_COMPUTED_DEFAULT "@CMAKE_CUDA_STANDARD_COMPUTED_DEFAULT@")
|
set(CMAKE_CUDA_STANDARD_COMPUTED_DEFAULT "@CMAKE_CUDA_STANDARD_COMPUTED_DEFAULT@")
|
||||||
|
set(CMAKE_CUDA_EXTENSIONS_COMPUTED_DEFAULT "@CMAKE_CUDA_EXTENSIONS_COMPUTED_DEFAULT@")
|
||||||
set(CMAKE_CUDA_COMPILE_FEATURES "@CMAKE_CUDA_COMPILE_FEATURES@")
|
set(CMAKE_CUDA_COMPILE_FEATURES "@CMAKE_CUDA_COMPILE_FEATURES@")
|
||||||
set(CMAKE_CUDA03_COMPILE_FEATURES "@CMAKE_CUDA03_COMPILE_FEATURES@")
|
set(CMAKE_CUDA03_COMPILE_FEATURES "@CMAKE_CUDA03_COMPILE_FEATURES@")
|
||||||
set(CMAKE_CUDA11_COMPILE_FEATURES "@CMAKE_CUDA11_COMPILE_FEATURES@")
|
set(CMAKE_CUDA11_COMPILE_FEATURES "@CMAKE_CUDA11_COMPILE_FEATURES@")
|
||||||
|
@@ -32,6 +32,16 @@ const char* info_language_standard_default = "INFO" ":" "standard_default["
|
|||||||
#endif
|
#endif
|
||||||
"]";
|
"]";
|
||||||
|
|
||||||
|
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
|
||||||
|
// !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode.
|
||||||
|
#if (defined(__clang__) || defined(__GNUC__)) && !defined(__STRICT_ANSI__) && \
|
||||||
|
!defined(_MSC_VER)
|
||||||
|
"ON"
|
||||||
|
#else
|
||||||
|
"OFF"
|
||||||
|
#endif
|
||||||
|
"]";
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
@@ -49,6 +59,7 @@ int main(int argc, char* argv[])
|
|||||||
require += info_simulate_version[argc];
|
require += info_simulate_version[argc];
|
||||||
#endif
|
#endif
|
||||||
require += info_language_standard_default[argc];
|
require += info_language_standard_default[argc];
|
||||||
|
require += info_language_extensions_default[argc];
|
||||||
(void)argv;
|
(void)argv;
|
||||||
return require;
|
return require;
|
||||||
}
|
}
|
||||||
|
@@ -5,6 +5,7 @@ set(CMAKE_CXX_COMPILER_VERSION "@CMAKE_CXX_COMPILER_VERSION@")
|
|||||||
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "@CMAKE_CXX_COMPILER_VERSION_INTERNAL@")
|
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "@CMAKE_CXX_COMPILER_VERSION_INTERNAL@")
|
||||||
set(CMAKE_CXX_COMPILER_WRAPPER "@CMAKE_CXX_COMPILER_WRAPPER@")
|
set(CMAKE_CXX_COMPILER_WRAPPER "@CMAKE_CXX_COMPILER_WRAPPER@")
|
||||||
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "@CMAKE_CXX_STANDARD_COMPUTED_DEFAULT@")
|
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "@CMAKE_CXX_STANDARD_COMPUTED_DEFAULT@")
|
||||||
|
set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "@CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT@")
|
||||||
set(CMAKE_CXX_COMPILE_FEATURES "@CMAKE_CXX_COMPILE_FEATURES@")
|
set(CMAKE_CXX_COMPILE_FEATURES "@CMAKE_CXX_COMPILE_FEATURES@")
|
||||||
set(CMAKE_CXX98_COMPILE_FEATURES "@CMAKE_CXX98_COMPILE_FEATURES@")
|
set(CMAKE_CXX98_COMPILE_FEATURES "@CMAKE_CXX98_COMPILE_FEATURES@")
|
||||||
set(CMAKE_CXX11_COMPILE_FEATURES "@CMAKE_CXX11_COMPILE_FEATURES@")
|
set(CMAKE_CXX11_COMPILE_FEATURES "@CMAKE_CXX11_COMPILE_FEATURES@")
|
||||||
|
@@ -65,6 +65,17 @@ const char* info_language_standard_default = "INFO" ":" "standard_default["
|
|||||||
#endif
|
#endif
|
||||||
"]";
|
"]";
|
||||||
|
|
||||||
|
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
|
||||||
|
// !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode.
|
||||||
|
#if (defined(__clang__) || defined(__GNUC__) || \
|
||||||
|
defined(__TI_COMPILER_VERSION__)) && \
|
||||||
|
!defined(__STRICT_ANSI__) && !defined(_MSC_VER)
|
||||||
|
"ON"
|
||||||
|
#else
|
||||||
|
"OFF"
|
||||||
|
#endif
|
||||||
|
"]";
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
@@ -88,6 +99,7 @@ int main(int argc, char* argv[])
|
|||||||
require += info_cray[argc];
|
require += info_cray[argc];
|
||||||
#endif
|
#endif
|
||||||
require += info_language_standard_default[argc];
|
require += info_language_standard_default[argc];
|
||||||
|
require += info_language_extensions_default[argc];
|
||||||
(void)argv;
|
(void)argv;
|
||||||
return require;
|
return require;
|
||||||
}
|
}
|
||||||
|
@@ -267,6 +267,7 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
|
|||||||
set(CMAKE_${lang}_SIMULATE_ID "${CMAKE_${lang}_SIMULATE_ID}" PARENT_SCOPE)
|
set(CMAKE_${lang}_SIMULATE_ID "${CMAKE_${lang}_SIMULATE_ID}" PARENT_SCOPE)
|
||||||
set(CMAKE_${lang}_SIMULATE_VERSION "${CMAKE_${lang}_SIMULATE_VERSION}" PARENT_SCOPE)
|
set(CMAKE_${lang}_SIMULATE_VERSION "${CMAKE_${lang}_SIMULATE_VERSION}" PARENT_SCOPE)
|
||||||
set(CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT "${CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT}" PARENT_SCOPE)
|
set(CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT "${CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT}" PARENT_SCOPE)
|
||||||
|
set(CMAKE_${lang}_EXTENSIONS_COMPUTED_DEFAULT "${CMAKE_${lang}_EXTENSIONS_COMPUTED_DEFAULT}" PARENT_SCOPE)
|
||||||
set(CMAKE_${lang}_COMPILER_PRODUCED_OUTPUT "${COMPILER_${lang}_PRODUCED_OUTPUT}" PARENT_SCOPE)
|
set(CMAKE_${lang}_COMPILER_PRODUCED_OUTPUT "${COMPILER_${lang}_PRODUCED_OUTPUT}" PARENT_SCOPE)
|
||||||
set(CMAKE_${lang}_COMPILER_PRODUCED_FILES "${COMPILER_${lang}_PRODUCED_FILES}" PARENT_SCOPE)
|
set(CMAKE_${lang}_COMPILER_PRODUCED_FILES "${COMPILER_${lang}_PRODUCED_FILES}" PARENT_SCOPE)
|
||||||
endfunction()
|
endfunction()
|
||||||
@@ -884,6 +885,9 @@ function(CMAKE_DETERMINE_COMPILER_ID_CHECK lang file)
|
|||||||
if("${info}" MATCHES "INFO:standard_default\\[([^]\"]*)\\]")
|
if("${info}" MATCHES "INFO:standard_default\\[([^]\"]*)\\]")
|
||||||
set(CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT "${CMAKE_MATCH_1}")
|
set(CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT "${CMAKE_MATCH_1}")
|
||||||
endif()
|
endif()
|
||||||
|
if("${info}" MATCHES "INFO:extensions_default\\[([^]\"]*)\\]")
|
||||||
|
set(CMAKE_${lang}_EXTENSIONS_COMPUTED_DEFAULT "${CMAKE_MATCH_1}")
|
||||||
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# Construct compiler version from components if needed.
|
# Construct compiler version from components if needed.
|
||||||
@@ -993,6 +997,7 @@ function(CMAKE_DETERMINE_COMPILER_ID_CHECK lang file)
|
|||||||
set(CMAKE_${lang}_SIMULATE_VERSION "${CMAKE_${lang}_SIMULATE_VERSION}" PARENT_SCOPE)
|
set(CMAKE_${lang}_SIMULATE_VERSION "${CMAKE_${lang}_SIMULATE_VERSION}" PARENT_SCOPE)
|
||||||
set(COMPILER_QNXNTO "${COMPILER_QNXNTO}" PARENT_SCOPE)
|
set(COMPILER_QNXNTO "${COMPILER_QNXNTO}" PARENT_SCOPE)
|
||||||
set(CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT "${CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT}" PARENT_SCOPE)
|
set(CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT "${CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT}" PARENT_SCOPE)
|
||||||
|
set(CMAKE_${lang}_EXTENSIONS_COMPUTED_DEFAULT "${CMAKE_${lang}_EXTENSIONS_COMPUTED_DEFAULT}" PARENT_SCOPE)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
|
@@ -2,6 +2,7 @@ set(CMAKE_HIP_COMPILER "@CMAKE_HIP_COMPILER@")
|
|||||||
set(CMAKE_HIP_COMPILER_ID "@CMAKE_HIP_COMPILER_ID@")
|
set(CMAKE_HIP_COMPILER_ID "@CMAKE_HIP_COMPILER_ID@")
|
||||||
set(CMAKE_HIP_COMPILER_VERSION "@CMAKE_HIP_COMPILER_VERSION@")
|
set(CMAKE_HIP_COMPILER_VERSION "@CMAKE_HIP_COMPILER_VERSION@")
|
||||||
set(CMAKE_HIP_STANDARD_COMPUTED_DEFAULT "@CMAKE_HIP_STANDARD_COMPUTED_DEFAULT@")
|
set(CMAKE_HIP_STANDARD_COMPUTED_DEFAULT "@CMAKE_HIP_STANDARD_COMPUTED_DEFAULT@")
|
||||||
|
set(CMAKE_HIP_EXTENSIONS_COMPUTED_DEFAULT "@CMAKE_HIP_EXTENSIONS_COMPUTED_DEFAULT@")
|
||||||
set(CMAKE_HIP_COMPILE_FEATURES "@CMAKE_HIP_COMPILE_FEATURES@")
|
set(CMAKE_HIP_COMPILE_FEATURES "@CMAKE_HIP_COMPILE_FEATURES@")
|
||||||
set(CMAKE_HIP98_COMPILE_FEATURES "@CMAKE_HIP03_COMPILE_FEATURES@")
|
set(CMAKE_HIP98_COMPILE_FEATURES "@CMAKE_HIP03_COMPILE_FEATURES@")
|
||||||
set(CMAKE_HIP11_COMPILE_FEATURES "@CMAKE_HIP11_COMPILE_FEATURES@")
|
set(CMAKE_HIP11_COMPILE_FEATURES "@CMAKE_HIP11_COMPILE_FEATURES@")
|
||||||
|
@@ -32,6 +32,14 @@ const char* info_language_standard_default = "INFO" ":" "standard_default["
|
|||||||
#endif
|
#endif
|
||||||
"]";
|
"]";
|
||||||
|
|
||||||
|
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
|
||||||
|
#if (defined(__clang__) || defined(__GNUC__)) && !defined(__STRICT_ANSI__)
|
||||||
|
"ON"
|
||||||
|
#else
|
||||||
|
"OFF"
|
||||||
|
#endif
|
||||||
|
"]";
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
@@ -49,6 +57,7 @@ int main(int argc, char* argv[])
|
|||||||
require += info_simulate_version[argc];
|
require += info_simulate_version[argc];
|
||||||
#endif
|
#endif
|
||||||
require += info_language_standard_default[argc];
|
require += info_language_standard_default[argc];
|
||||||
|
require += info_language_extensions_default[argc];
|
||||||
(void)argv;
|
(void)argv;
|
||||||
return require;
|
return require;
|
||||||
}
|
}
|
||||||
|
@@ -5,6 +5,7 @@ set(CMAKE_OBJC_COMPILER_VERSION "@CMAKE_OBJC_COMPILER_VERSION@")
|
|||||||
set(CMAKE_OBJC_COMPILER_VERSION_INTERNAL "@CMAKE_OBJC_COMPILER_VERSION_INTERNAL@")
|
set(CMAKE_OBJC_COMPILER_VERSION_INTERNAL "@CMAKE_OBJC_COMPILER_VERSION_INTERNAL@")
|
||||||
set(CMAKE_OBJC_COMPILER_WRAPPER "@CMAKE_OBJC_COMPILER_WRAPPER@")
|
set(CMAKE_OBJC_COMPILER_WRAPPER "@CMAKE_OBJC_COMPILER_WRAPPER@")
|
||||||
set(CMAKE_OBJC_STANDARD_COMPUTED_DEFAULT "@CMAKE_OBJC_STANDARD_COMPUTED_DEFAULT@")
|
set(CMAKE_OBJC_STANDARD_COMPUTED_DEFAULT "@CMAKE_OBJC_STANDARD_COMPUTED_DEFAULT@")
|
||||||
|
set(CMAKE_OBJC_EXTENSIONS_COMPUTED_DEFAULT "@CMAKE_OBJC_EXTENSIONS_COMPUTED_DEFAULT@")
|
||||||
set(CMAKE_OBJC_COMPILE_FEATURES "@CMAKE_OBJC_COMPILE_FEATURES@")
|
set(CMAKE_OBJC_COMPILE_FEATURES "@CMAKE_OBJC_COMPILE_FEATURES@")
|
||||||
set(CMAKE_OBJC90_COMPILE_FEATURES "@CMAKE_OBJC90_COMPILE_FEATURES@")
|
set(CMAKE_OBJC90_COMPILE_FEATURES "@CMAKE_OBJC90_COMPILE_FEATURES@")
|
||||||
set(CMAKE_OBJC99_COMPILE_FEATURES "@CMAKE_OBJC99_COMPILE_FEATURES@")
|
set(CMAKE_OBJC99_COMPILE_FEATURES "@CMAKE_OBJC99_COMPILE_FEATURES@")
|
||||||
|
@@ -41,6 +41,14 @@ char const* qnxnto = "INFO" ":" "qnxnto[]";
|
|||||||
const char* info_language_standard_default =
|
const char* info_language_standard_default =
|
||||||
"INFO" ":" "standard_default[" C_VERSION "]";
|
"INFO" ":" "standard_default[" C_VERSION "]";
|
||||||
|
|
||||||
|
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
|
||||||
|
#if (defined(__clang__) || defined(__GNUC__)) && !defined(__STRICT_ANSI__)
|
||||||
|
"ON"
|
||||||
|
#else
|
||||||
|
"OFF"
|
||||||
|
#endif
|
||||||
|
"]";
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
@@ -62,6 +70,7 @@ int main(int argc, char* argv[])
|
|||||||
require += info_simulate_version[argc];
|
require += info_simulate_version[argc];
|
||||||
#endif
|
#endif
|
||||||
require += info_language_standard_default[argc];
|
require += info_language_standard_default[argc];
|
||||||
|
require += info_language_extensions_default[argc];
|
||||||
(void)argv;
|
(void)argv;
|
||||||
return require;
|
return require;
|
||||||
}
|
}
|
||||||
|
@@ -5,6 +5,7 @@ set(CMAKE_OBJCXX_COMPILER_VERSION "@CMAKE_OBJCXX_COMPILER_VERSION@")
|
|||||||
set(CMAKE_OBJCXX_COMPILER_VERSION_INTERNAL "@CMAKE_OBJCXX_COMPILER_VERSION_INTERNAL@")
|
set(CMAKE_OBJCXX_COMPILER_VERSION_INTERNAL "@CMAKE_OBJCXX_COMPILER_VERSION_INTERNAL@")
|
||||||
set(CMAKE_OBJCXX_COMPILER_WRAPPER "@CMAKE_OBJCXX_COMPILER_WRAPPER@")
|
set(CMAKE_OBJCXX_COMPILER_WRAPPER "@CMAKE_OBJCXX_COMPILER_WRAPPER@")
|
||||||
set(CMAKE_OBJCXX_STANDARD_COMPUTED_DEFAULT "@CMAKE_OBJCXX_STANDARD_COMPUTED_DEFAULT@")
|
set(CMAKE_OBJCXX_STANDARD_COMPUTED_DEFAULT "@CMAKE_OBJCXX_STANDARD_COMPUTED_DEFAULT@")
|
||||||
|
set(CMAKE_OBJCXX_EXTENSIONS_COMPUTED_DEFAULT "@CMAKE_OBJCXX_EXTENSIONS_COMPUTED_DEFAULT@")
|
||||||
set(CMAKE_OBJCXX_COMPILE_FEATURES "@CMAKE_OBJCXX_COMPILE_FEATURES@")
|
set(CMAKE_OBJCXX_COMPILE_FEATURES "@CMAKE_OBJCXX_COMPILE_FEATURES@")
|
||||||
set(CMAKE_OBJCXX98_COMPILE_FEATURES "@CMAKE_OBJCXX98_COMPILE_FEATURES@")
|
set(CMAKE_OBJCXX98_COMPILE_FEATURES "@CMAKE_OBJCXX98_COMPILE_FEATURES@")
|
||||||
set(CMAKE_OBJCXX11_COMPILE_FEATURES "@CMAKE_OBJCXX11_COMPILE_FEATURES@")
|
set(CMAKE_OBJCXX11_COMPILE_FEATURES "@CMAKE_OBJCXX11_COMPILE_FEATURES@")
|
||||||
|
@@ -45,6 +45,14 @@ const char* info_language_standard_default = "INFO" ":" "standard_default["
|
|||||||
#endif
|
#endif
|
||||||
"]";
|
"]";
|
||||||
|
|
||||||
|
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
|
||||||
|
#if (defined(__clang__) || defined(__GNUC__)) && !defined(__STRICT_ANSI__)
|
||||||
|
"ON"
|
||||||
|
#else
|
||||||
|
"OFF"
|
||||||
|
#endif
|
||||||
|
"]";
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
@@ -65,6 +73,7 @@ int main(int argc, char* argv[])
|
|||||||
require += info_simulate_version[argc];
|
require += info_simulate_version[argc];
|
||||||
#endif
|
#endif
|
||||||
require += info_language_standard_default[argc];
|
require += info_language_standard_default[argc];
|
||||||
|
require += info_language_extensions_default[argc];
|
||||||
(void)argv;
|
(void)argv;
|
||||||
return require;
|
return require;
|
||||||
}
|
}
|
||||||
|
@@ -38,20 +38,26 @@ macro(__compiler_check_default_language_standard lang stdver1 std1)
|
|||||||
# support for language standards, then don't bother.
|
# support for language standards, then don't bother.
|
||||||
if (CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL "${stdver1}")
|
if (CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL "${stdver1}")
|
||||||
if (NOT CMAKE_${lang}_COMPILER_FORCED)
|
if (NOT CMAKE_${lang}_COMPILER_FORCED)
|
||||||
if (NOT CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT)
|
if (NOT CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT OR NOT DEFINED CMAKE_${lang}_EXTENSIONS_COMPUTED_DEFAULT)
|
||||||
message(FATAL_ERROR "CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT should be set for ${CMAKE_${lang}_COMPILER_ID} (${CMAKE_${lang}_COMPILER}) version ${CMAKE_${lang}_COMPILER_VERSION}")
|
message(FATAL_ERROR "CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT and CMAKE_${lang}_EXTENSIONS_COMPUTED_DEFAULT should be set for ${CMAKE_${lang}_COMPILER_ID} (${CMAKE_${lang}_COMPILER}) version ${CMAKE_${lang}_COMPILER_VERSION}")
|
||||||
endif ()
|
endif ()
|
||||||
set(CMAKE_${lang}_STANDARD_DEFAULT ${CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT})
|
set(CMAKE_${lang}_STANDARD_DEFAULT ${CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT})
|
||||||
|
set(CMAKE_${lang}_EXTENSIONS_DEFAULT ${CMAKE_${lang}_EXTENSIONS_COMPUTED_DEFAULT})
|
||||||
else ()
|
else ()
|
||||||
list(REVERSE __std_ver_pairs)
|
list(REVERSE __std_ver_pairs)
|
||||||
foreach (__std_ver_pair IN LISTS __std_ver_pairs)
|
foreach (__std_ver_pair IN LISTS __std_ver_pairs)
|
||||||
string(REGEX MATCH "([^ ]+) (.+)" __std_ver_pair "${__std_ver_pair}")
|
string(REGEX MATCH "([^ ]+) (.+)" __std_ver_pair "${__std_ver_pair}")
|
||||||
set(__stdver ${CMAKE_MATCH_1})
|
set(__stdver ${CMAKE_MATCH_1})
|
||||||
set(__std ${CMAKE_MATCH_2})
|
set(__std ${CMAKE_MATCH_2})
|
||||||
if (CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL __stdver AND
|
# Compiler id was forced so just guess the defaults.
|
||||||
NOT DEFINED CMAKE_${lang}_STANDARD_DEFAULT)
|
if (CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL __stdver)
|
||||||
# Compiler id was forced so just guess the default standard level.
|
if(NOT DEFINED CMAKE_${lang}_EXTENSIONS_DEFAULT)
|
||||||
set(CMAKE_${lang}_STANDARD_DEFAULT ${__std})
|
# Currently known compilers default to enabling extensions.
|
||||||
|
set(CMAKE_${lang}_EXTENSIONS_DEFAULT ON)
|
||||||
|
endif()
|
||||||
|
if(NOT DEFINED CMAKE_${lang}_STANDARD_DEFAULT)
|
||||||
|
set(CMAKE_${lang}_STANDARD_DEFAULT ${__std})
|
||||||
|
endif()
|
||||||
endif ()
|
endif ()
|
||||||
unset(__std)
|
unset(__std)
|
||||||
unset(__stdver)
|
unset(__stdver)
|
||||||
|
Reference in New Issue
Block a user