diff options
Diffstat (limited to 'Tests/CMakeCommands/target_compile_features/CMakeLists.txt')
-rw-r--r-- | Tests/CMakeCommands/target_compile_features/CMakeLists.txt | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Tests/CMakeCommands/target_compile_features/CMakeLists.txt b/Tests/CMakeCommands/target_compile_features/CMakeLists.txt new file mode 100644 index 0000000000..9b35f2713f --- /dev/null +++ b/Tests/CMakeCommands/target_compile_features/CMakeLists.txt @@ -0,0 +1,45 @@ +cmake_minimum_required(VERSION 3.0) +project(target_compile_features) + +if (NOT CMAKE_CXX_COMPILE_FEATURES AND NOT CMAKE_C_COMPILE_FEATURES) + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test_dummy.cpp" + "int main(int,char**) { return 0; }\n" + ) + add_executable(target_compile_features "${CMAKE_CURRENT_BINARY_DIR}/test_dummy.cpp") + return() +endif() + +set(CMAKE_VERBOSE_MAKEFILE ON) + +if (CMAKE_C_COMPILE_FEATURES) + add_executable(target_compile_features main.c) + target_compile_features(target_compile_features + PRIVATE c_restrict + ) + + add_library(lib_restrict lib_restrict.c) + target_compile_features(lib_restrict + PUBLIC c_restrict + ) + + add_executable(restrict_user restrict_user.c) + target_link_libraries(restrict_user lib_restrict) +endif() + +if (CMAKE_CXX_COMPILE_FEATURES) + if (CMAKE_C_COMPILE_FEATURES) + set(target_suffix _cxx) + endif() + add_executable(target_compile_features${target_suffix} main.cpp) + target_compile_features(target_compile_features${target_suffix} + PRIVATE cxx_auto_type + ) + + add_library(lib_auto_type lib_auto_type.cpp) + target_compile_features(lib_auto_type + PUBLIC cxx_auto_type + ) + + add_executable(lib_user lib_user.cpp) + target_link_libraries(lib_user lib_auto_type) +endif() |