summaryrefslogtreecommitdiffstats
path: root/Tests/Module
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-02-03 14:32:45 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2017-02-03 14:32:45 (GMT)
commitfb26fcb261c927687f66b556df83ff6546f9bbd9 (patch)
tree873a1819da3b05c4bae35b6d3cb48eedd9c5f010 /Tests/Module
parent6286d26ca6408cfc45031536ed54b1679e6d5ac2 (diff)
parent37ed860ad1e71f347513a38432640f7dda5c07ee (diff)
downloadCMake-fb26fcb261c927687f66b556df83ff6546f9bbd9.zip
CMake-fb26fcb261c927687f66b556df83ff6546f9bbd9.tar.gz
CMake-fb26fcb261c927687f66b556df83ff6546f9bbd9.tar.bz2
Merge topic 'gcc-features'
37ed860a GNU C++: record that -fvisibility-inlines-hidden is available since 4.0 94a8ee6f GNU C: record that C99 is available since at least 3.4 940bf6a4 Tests/Module/WCDH: only use -Werror=undef compiler flag if actually supported f26ca5a1 Tests/Module/WCDH: write multi_file_compiler_detection.h before using it
Diffstat (limited to 'Tests/Module')
-rw-r--r--Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt28
1 files changed, 16 insertions, 12 deletions
diff --git a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
index 7957ab8..2657aeb 100644
--- a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
+++ b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
@@ -20,6 +20,17 @@ write_compiler_detection_header(
${cxx_known_features} ${c_known_features}
)
+write_compiler_detection_header(
+ FILE "${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files/multi_file_compiler_detection.h"
+ PREFIX MULTI
+ OUTPUT_FILES_VAR multi_files
+ OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files/compiler_support"
+ COMPILERS GNU Clang AppleClang MSVC SunPro Intel
+ VERSION 3.1
+ FEATURES
+ ${cxx_known_features} ${c_known_features}
+)
+
macro(set_defines target true_defs false_defs)
set(defines)
foreach(def ${true_defs})
@@ -57,7 +68,11 @@ if (CMAKE_C_COMPILE_FEATURES)
add_executable(C_undefined c_undefined.c)
set_property(TARGET C_undefined PROPERTY C_STANDARD 90)
- target_compile_options(C_undefined PRIVATE -Werror=undef)
+ include(CheckCCompilerFlag)
+ check_c_compiler_flag(-Werror=undef use_error_undef)
+ if (use_error_undef)
+ target_compile_options(C_undefined PRIVATE -Werror=undef)
+ endif()
add_executable(WriteCompilerDetectionHeader_C main.c)
set_property(TARGET WriteCompilerDetectionHeader_C PROPERTY C_STANDARD 90)
@@ -116,17 +131,6 @@ add_executable(WriteCompilerDetectionHeader main.cpp)
set_property(TARGET WriteCompilerDetectionHeader PROPERTY CXX_STANDARD 98)
set_defines(WriteCompilerDetectionHeader "${true_defs}" "${false_defs}")
-write_compiler_detection_header(
- FILE "${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files/multi_file_compiler_detection.h"
- PREFIX MULTI
- OUTPUT_FILES_VAR multi_files
- OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files/compiler_support"
- COMPILERS GNU Clang AppleClang MSVC SunPro Intel
- VERSION 3.1
- FEATURES
- ${cxx_known_features} ${c_known_features}
-)
-
add_executable(multi_files multi_files.cpp)
set_property(TARGET multi_files PROPERTY CXX_STANDARD 98)
target_include_directories(multi_files PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files)