diff options
author | Brad King <brad.king@kitware.com> | 2017-05-09 15:18:54 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-05-09 15:22:18 (GMT) |
commit | d49aa10768fba4c2cb113d49629138140b37d560 (patch) | |
tree | 4026ad5bde7a5e622e5eb04370ede8bc8ab8e4a3 | |
parent | e17b1791843b473d0d57ccdbe98689d1be8228e2 (diff) | |
download | CMake-d49aa10768fba4c2cb113d49629138140b37d560.zip CMake-d49aa10768fba4c2cb113d49629138140b37d560.tar.gz CMake-d49aa10768fba4c2cb113d49629138140b37d560.tar.bz2 |
Features: On SunPro link feature check with lang std flag
Follow up commit e17b179184 (Features: On SunPro link with language
standard compiler flag, 2017-04-28) to apply the same fix to the feature
checks. The `try_compile` used for these is intentionally not using
`CXX_STANDARD`-based logic so that it can test the individual flags.
-rw-r--r-- | Modules/Internal/FeatureTesting.cmake | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Modules/Internal/FeatureTesting.cmake b/Modules/Internal/FeatureTesting.cmake index 50b8526..de336e7 100644 --- a/Modules/Internal/FeatureTesting.cmake +++ b/Modules/Internal/FeatureTesting.cmake @@ -22,9 +22,18 @@ macro(_record_compiler_features lang compile_flags feature_list) file(APPEND "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}" "\n};\n\nint main(int argc, char** argv) { (void)argv; return features[argc]; }\n") + if(CMAKE_${lang}_LINK_WITH_STANDARD_COMPILE_OPTION) + # This toolchain requires use of the language standard flag + # when linking in order to use the matching standard library. + set(compile_flags_for_link "${compile_flags}") + else() + set(compile_flags_for_link "") + endif() + try_compile(CMAKE_${lang}_FEATURE_TEST ${CMAKE_BINARY_DIR} "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}" COMPILE_DEFINITIONS "${compile_flags}" + LINK_LIBRARIES "${compile_flags_for_link}" OUTPUT_VARIABLE _output COPY_FILE "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.bin" COPY_FILE_ERROR _copy_error @@ -35,6 +44,7 @@ macro(_record_compiler_features lang compile_flags feature_list) set(_result 255) endif() unset(CMAKE_${lang}_FEATURE_TEST CACHE) + unset(compile_flags_for_link) if (_result EQUAL 0) file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log |