Просмотр исходного кода

Merge topic 'sunpro-c++11-link'

d49aa107 Features: On SunPro link feature check with lang std flag

Acked-by: Kitware Robot <[email protected]>
Merge-request: !818
Brad King 8 лет назад
Родитель
Сommit
8cc9e07a2c
1 измененных файлов с 10 добавлено и 0 удалено
  1. 10 0
      Modules/Internal/FeatureTesting.cmake

+ 10 - 0
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