mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 19:00:54 -06:00
Features: Test feature propagation with language standard meta-feature
The `cxx_static_assert` feature may be available in C++ 98 mode of some compilers or not available at all in others. Intstead of using an individual feature to test propagation of a feature requiring C++ 11, use the `std_cxx_11` meta-feature that has exactly this meaning.
This commit is contained in:
@@ -398,7 +398,7 @@ if (CMAKE_CXX_COMPILE_FEATURES)
|
||||
)
|
||||
|
||||
add_executable(CompileFeaturesGenex2 genex_test.cpp)
|
||||
target_compile_features(CompileFeaturesGenex2 PRIVATE cxx_static_assert)
|
||||
target_compile_features(CompileFeaturesGenex2 PRIVATE cxx_std_11)
|
||||
target_compile_definitions(CompileFeaturesGenex2 PRIVATE
|
||||
HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>
|
||||
HAVE_AUTO_TYPE=$<COMPILE_FEATURES:cxx_auto_type>
|
||||
@@ -407,10 +407,10 @@ if (CMAKE_CXX_COMPILE_FEATURES)
|
||||
HAVE_INHERITING_CONSTRUCTORS_AND_FINAL=$<COMPILE_FEATURES:cxx_inheriting_constructors,cxx_final>
|
||||
)
|
||||
|
||||
add_library(static_assert_iface INTERFACE)
|
||||
target_compile_features(static_assert_iface INTERFACE cxx_static_assert)
|
||||
add_library(std_11_iface INTERFACE)
|
||||
target_compile_features(std_11_iface INTERFACE cxx_std_11)
|
||||
add_executable(CompileFeaturesGenex3 genex_test.cpp)
|
||||
target_link_libraries(CompileFeaturesGenex3 PRIVATE static_assert_iface)
|
||||
target_link_libraries(CompileFeaturesGenex3 PRIVATE std_11_iface)
|
||||
target_compile_definitions(CompileFeaturesGenex3 PRIVATE
|
||||
HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>
|
||||
HAVE_AUTO_TYPE=$<COMPILE_FEATURES:cxx_auto_type>
|
||||
|
||||
Reference in New Issue
Block a user