summaryrefslogtreecommitdiff
path: root/Modules/Internal/FeatureTesting.cmake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-05-09 11:18:54 -0400
committerBrad King <brad.king@kitware.com>2017-05-09 11:22:18 -0400
commitd49aa10768fba4c2cb113d49629138140b37d560 (patch)
tree4026ad5bde7a5e622e5eb04370ede8bc8ab8e4a3 /Modules/Internal/FeatureTesting.cmake
parente17b1791843b473d0d57ccdbe98689d1be8228e2 (diff)
downloadcmake-d49aa10768fba4c2cb113d49629138140b37d560.tar.gz
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.
Diffstat (limited to 'Modules/Internal/FeatureTesting.cmake')
-rw-r--r--Modules/Internal/FeatureTesting.cmake10
1 files changed, 10 insertions, 0 deletions
diff --git a/Modules/Internal/FeatureTesting.cmake b/Modules/Internal/FeatureTesting.cmake
index 50b8526f25..de336e7089 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