diff options
author | Robert Maynard <robert.maynard@kitware.com> | 2019-04-12 18:39:57 (GMT) |
---|---|---|
committer | Robert Maynard <robert.maynard@kitware.com> | 2019-04-12 18:39:57 (GMT) |
commit | 8e4899fd6cb3518723710f7ba57d28ef058518c0 (patch) | |
tree | ce8c4ff1b288c8636d4b082bddf2dd2c86d8c5b6 /Modules/Compiler | |
parent | 7f83e8033bd30ad112989f7dc17840fdf497586b (diff) | |
download | CMake-8e4899fd6cb3518723710f7ba57d28ef058518c0.zip CMake-8e4899fd6cb3518723710f7ba57d28ef058518c0.tar.gz CMake-8e4899fd6cb3518723710f7ba57d28ef058518c0.tar.bz2 |
CompileFeatures: Record which C features the MSVC compiler supports
Use the infrastructure added by commit f92ccbc306c20554af
(CompileFeatures: memoize C compilers with full language level support)
to avoid using a `try_compile` to check for C 90/99/11 feature support when the running compiler is known to have a fixed set of feature support.
Diffstat (limited to 'Modules/Compiler')
-rw-r--r-- | Modules/Compiler/Clang-C.cmake | 3 | ||||
-rw-r--r-- | Modules/Compiler/MSVC-C.cmake | 10 |
2 files changed, 10 insertions, 3 deletions
diff --git a/Modules/Compiler/Clang-C.cmake b/Modules/Compiler/Clang-C.cmake index ff51d30..0448965 100644 --- a/Modules/Compiler/Clang-C.cmake +++ b/Modules/Compiler/Clang-C.cmake @@ -23,12 +23,15 @@ if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4) # clang-cl doesn't have any of these set(CMAKE_C90_STANDARD_COMPILE_OPTION "") set(CMAKE_C90_EXTENSION_COMPILE_OPTION "") + set(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT ON) set(CMAKE_C99_STANDARD_COMPILE_OPTION "") set(CMAKE_C99_EXTENSION_COMPILE_OPTION "") + set(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT ON) set(CMAKE_C11_STANDARD_COMPILE_OPTION "") set(CMAKE_C11_EXTENSION_COMPILE_OPTION "") + set(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT ON) endif() endif() diff --git a/Modules/Compiler/MSVC-C.cmake b/Modules/Compiler/MSVC-C.cmake index 22c34f8..a722130 100644 --- a/Modules/Compiler/MSVC-C.cmake +++ b/Modules/Compiler/MSVC-C.cmake @@ -11,8 +11,8 @@ set(CMAKE_C11_EXTENSION_COMPILE_OPTION "") # There is no meaningful default for this set(CMAKE_C_STANDARD_DEFAULT "") -# There are no C compiler modes so we only need to test features once. -# Override the default macro for this special case. Pretend that +# There are no C compiler modes so we hard-code the known compiler supported +# features. Override the default macro for this special case. Pretend that # all language standards are available so that at least compilation # can be attempted. macro(cmake_record_c_compile_features) @@ -20,6 +20,10 @@ macro(cmake_record_c_compile_features) c_std_90 c_std_99 c_std_11 + c_function_prototypes + c_variadic_macros ) - _record_compiler_features(C "" CMAKE_C_COMPILE_FEATURES) + list(APPEND CMAKE_C90_COMPILE_FEATURES c_std_90 c_function_prototypes) + list(APPEND CMAKE_C99_COMPILE_FEATURES c_std_99 c_variadic_macros) + list(APPEND CMAKE_C11_COMPILE_FEATURES c_std_11) endmacro() |