Przeglądaj źródła

Merge branch 'CheckIPOSupported-output-backslashes' into release-3.12

Merge-request: !2331
Brad King 7 lat temu
rodzic
commit
80bb9214dd
1 zmienionych plików z 11 dodań i 4 usunięć
  1. 11 4
      Modules/CheckIPOSupported.cmake

+ 11 - 4
Modules/CheckIPOSupported.cmake

@@ -56,13 +56,14 @@ include(CMakeParseArguments) # cmake_parse_arguments
 # X_RESULT - name of the final result variable
 # X_OUTPUT - name of the variable with information about error
 macro(_ipo_not_supported output)
-  string(COMPARE EQUAL "${X_RESULT}" "" is_empty)
-  if(is_empty)
+  if(NOT X_RESULT)
     message(FATAL_ERROR "IPO is not supported (${output}).")
   endif()
 
   set("${X_RESULT}" NO PARENT_SCOPE)
-  set("${X_OUTPUT}" "${output}" PARENT_SCOPE)
+  if(X_OUTPUT)
+    set("${X_OUTPUT}" "${output}" PARENT_SCOPE)
+  endif()
 endmacro()
 
 # Run IPO/LTO test
@@ -125,7 +126,13 @@ macro(_ipo_run_language_check language)
   )
 
   if(NOT result)
-    _ipo_not_supported("${output}")
+    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+      "${language} compiler IPO check failed with the following output:\n"
+      "${output}\n")
+    _ipo_not_supported("check failed to compile")
+    if(X_OUTPUT)
+      set("${X_OUTPUT}" "${output}" PARENT_SCOPE)
+    endif()
     return()
   endif()
 endmacro()