summaryrefslogtreecommitdiffstats
path: root/Tests/CMakeCommands
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-06-01 17:40:03 (GMT)
committerKitware Robot <kwrobot@kitware.com>2017-06-01 17:40:47 (GMT)
commit860db083cafb1337147923f7dd21b57767abbee3 (patch)
treefea1a13e782087d9699998de11a2f321769c2103 /Tests/CMakeCommands
parentc80148c77e552a43b0648bad02de86e6b6d2b61d (diff)
parent3c1ecb5214afa45a44742ad2b1e24517925e858a (diff)
downloadCMake-860db083cafb1337147923f7dd21b57767abbee3.zip
CMake-860db083cafb1337147923f7dd21b57767abbee3.tar.gz
CMake-860db083cafb1337147923f7dd21b57767abbee3.tar.bz2
Merge topic 'add-common-record-features-macros'
3c1ecb52 Intel: Fix missing C std default for 12.0 <= ver < 12.1 f70b0bb3 SunPro: Make sure all known versions get CXX98 defaults 220ede74 GNU: Fix language defaults for 3.4 a40e6ba8 Clang: Fix language defaults for 2.1 9b112a84 Compilers: Port to use default cmake_record_lang_compile_features macros 37221529 MSVC: Add empty definitions for std compile options e556f1b9 CompileFeatures: Makes tests work with meta-feature only 20ffa147 Tests: Allow test macro to take no executable arguments ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !833
Diffstat (limited to 'Tests/CMakeCommands')
-rw-r--r--Tests/CMakeCommands/target_compile_features/CMakeLists.txt70
-rw-r--r--Tests/CMakeCommands/target_compile_features/dummy.cpp5
2 files changed, 45 insertions, 30 deletions
diff --git a/Tests/CMakeCommands/target_compile_features/CMakeLists.txt b/Tests/CMakeCommands/target_compile_features/CMakeLists.txt
index 555a08f..5096a58 100644
--- a/Tests/CMakeCommands/target_compile_features/CMakeLists.txt
+++ b/Tests/CMakeCommands/target_compile_features/CMakeLists.txt
@@ -1,45 +1,65 @@
cmake_minimum_required(VERSION 3.0)
+cmake_policy(SET CMP0057 NEW)
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
+if (c_restrict IN_LIST CMAKE_C_COMPILE_FEATURES)
+ add_executable(c_target_compile_features_specific main.c)
+ target_compile_features(c_target_compile_features_specific
PRIVATE c_restrict
)
- add_library(lib_restrict lib_restrict.c)
- target_compile_features(lib_restrict
+ add_library(c_lib_restrict_specific lib_restrict.c)
+ target_compile_features(c_lib_restrict_specific
PUBLIC c_restrict
)
- add_executable(restrict_user restrict_user.c)
- target_link_libraries(restrict_user lib_restrict)
+ add_executable(c_restrict_user_specific restrict_user.c)
+ target_link_libraries(c_restrict_user_specific c_lib_restrict_specific)
endif()
-if (CMAKE_CXX_COMPILE_FEATURES AND ";${CMAKE_CXX_COMPILE_FEATURES};" MATCHES ";cxx_auto_type;")
- 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}
+if (c_std_99 IN_LIST CMAKE_C_COMPILE_FEATURES)
+ add_executable(c_target_compile_features_meta main.c)
+ target_compile_features(c_target_compile_features_meta
+ PRIVATE c_std_99
+ )
+
+ add_library(c_lib_restrict_meta lib_restrict.c)
+ target_compile_features(c_lib_restrict_meta
+ PUBLIC c_std_99
+ )
+
+ add_executable(c_restrict_user_meta restrict_user.c)
+ target_link_libraries(c_restrict_user_meta c_lib_restrict_meta)
+endif()
+
+if (cxx_auto_type IN_LIST CMAKE_CXX_COMPILE_FEATURES)
+ add_executable(cxx_target_compile_features_specific main.cpp)
+ target_compile_features(cxx_target_compile_features_specific
PRIVATE cxx_auto_type
)
- add_library(lib_auto_type lib_auto_type.cpp)
- target_compile_features(lib_auto_type
+ add_library(cxx_lib_auto_type_specific lib_auto_type.cpp)
+ target_compile_features(cxx_lib_auto_type_specific
PUBLIC cxx_auto_type
)
- add_executable(lib_user lib_user.cpp)
- target_link_libraries(lib_user lib_auto_type)
+ add_executable(cxx_lib_user_specific lib_user.cpp)
+ target_link_libraries(cxx_lib_user_specific cxx_lib_auto_type_specific)
+endif()
+
+if (cxx_std_11 IN_LIST CMAKE_CXX_COMPILE_FEATURES)
+ add_executable(cxx_target_compile_features_meta main.cpp)
+ target_compile_features(cxx_target_compile_features_meta
+ PRIVATE cxx_std_11
+ )
+
+ add_library(cxx_lib_auto_type_meta lib_auto_type.cpp)
+ target_compile_features(cxx_lib_auto_type_meta
+ PUBLIC cxx_std_11
+ )
+
+ add_executable(cxx_lib_user_meta lib_user.cpp)
+ target_link_libraries(cxx_lib_user_meta cxx_lib_auto_type_meta)
endif()
diff --git a/Tests/CMakeCommands/target_compile_features/dummy.cpp b/Tests/CMakeCommands/target_compile_features/dummy.cpp
deleted file mode 100644
index e9ad257..0000000
--- a/Tests/CMakeCommands/target_compile_features/dummy.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-
-int main(int, char**)
-{
- return 0;
-}