CMake/Tests/RunCMake/CompileFeatures/generate_feature_list.cmake
Stephen Kelly e0890d03a4 Features: Extend concept to C language.
Add properties and variables corresponding to CXX equivalents.

Add features for c_function_prototypes (C90), c_restrict (C99),
c_variadic_macros (C99) and c_static_assert (C11). This feature
set can be extended later.

Add a <PREFIX>_RESTRICT symbol define to WriteCompilerDetectionHeader
to conditionally represent the c_restrict feature.
2014-05-15 00:15:18 +02:00

30 lines
826 B
CMake

enable_language(C)
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/c_features.txt"
"${CMAKE_C_COMPILE_FEATURES}"
)
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/cxx_features.txt"
"${CMAKE_CXX_COMPILE_FEATURES}"
)
foreach(standard 98 11)
set(CXX${standard}_FLAG NOTFOUND)
if (DEFINED CMAKE_CXX${standard}_STANDARD_COMPILE_OPTION)
set(CXX${standard}_FLAG ${CMAKE_CXX${standard}_STANDARD_COMPILE_OPTION})
endif()
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/cxx${standard}_flag.txt"
"${CXX${standard}_FLAG}"
)
set(CXX${standard}EXT_FLAG NOTFOUND)
if (DEFINED CMAKE_CXX${standard}_EXTENSION_COMPILE_OPTION)
set(CXX${standard}EXT_FLAG ${CMAKE_CXX${standard}_EXTENSION_COMPILE_OPTION})
endif()
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/cxx${standard}ext_flag.txt"
"${CXX${standard}EXT_FLAG}"
)
endforeach()