| 123456789101112131415161718192021222324252627282930313233343536 |
- cmake_minimum_required(VERSION 3.0)
- project(CompileFeatures)
- macro(run_test feature)
- if (";${CMAKE_CXX_COMPILE_FEATURES};" MATCHES ${feature})
- add_library(test_${feature} OBJECT ${feature}.cpp)
- set_property(TARGET test_${feature}
- PROPERTY COMPILE_FEATURES "${feature}"
- )
- else()
- message("Not supported: ${feature}")
- endif()
- endmacro()
- foreach(feature ${CMAKE_CXX_KNOWN_FEATURES})
- run_test(${feature})
- endforeach()
- add_executable(CompileFeatures main.cpp)
- set_property(TARGET CompileFeatures
- PROPERTY COMPILE_FEATURES "cxx_auto_type"
- )
- add_executable(GenexCompileFeatures main.cpp)
- set_property(TARGET GenexCompileFeatures
- PROPERTY COMPILE_FEATURES "$<1:cxx_auto_type>;$<0:not_a_feature>"
- )
- add_library(iface INTERFACE)
- set_property(TARGET iface
- PROPERTY INTERFACE_COMPILE_FEATURES "cxx_auto_type"
- )
- add_executable(IfaceCompileFeatures main.cpp)
- target_link_libraries(IfaceCompileFeatures iface)
|