diff options
Diffstat (limited to 'Modules/Internal/FeatureTesting.cmake')
-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 |