[PATCH] [COMPILER-RT] Fix CMake build for Apple/Darwin without Xcode and for universal build

Jonathan Buschmann jonathan+llvm at pinacea.com
Tue Jun 2 11:13:38 PDT 2015


- Add comments
- Move all the selection of -arch flag in test_target_arch


http://reviews.llvm.org/D8936

Files:
  CMakeLists.txt
  cmake/config-ix.cmake

Index: cmake/config-ix.cmake
===================================================================
--- cmake/config-ix.cmake
+++ cmake/config-ix.cmake
@@ -102,6 +102,20 @@
 #   2) simple file can be successfully built.
 # If successful, saves target flags for this architecture.
 macro(test_target_arch arch def)
+  if(APPLE)
+    # set appropriate -arch flag in order to test only one architecture 
+    if(${arch} MATCHES "x86_64")
+      set(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES x86_64)
+    elseif(${arch} MATCHES "i386|i686")
+      set(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES i386)
+    elseif(${arch} MATCHES "powerpc64|powerpc64le")
+      set(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES ppc64)
+    elseif(${arch} MATCHES "arm")
+      set(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES armv7)
+    elseif(${arch} MATCHES "aarch64")
+      set(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES arm64)
+    endif()
+  endif()
   set(TARGET_${arch}_CFLAGS ${ARGN})
   set(argstring "")
   foreach(arg ${ARGN})
@@ -123,6 +137,10 @@
     # Bail out if we cannot target the architecture we plan to test.
     message(FATAL_ERROR "Cannot compile for ${arch}:\n${TARGET_${arch}_OUTPUT}")
   endif()
+  if(APPLE)
+    # unset flag necessary for testing only one architecture 
+    set(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES)
+  endif()
 endmacro()
 
 # Add $arch as supported with no additional flags.
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -275,16 +275,26 @@
     execute_process(
       COMMAND xcodebuild -version -sdk ${sdk_name}.internal Path
       OUTPUT_VARIABLE ${var}
+      RESULT_VARIABLE result_xcodebuild
       OUTPUT_STRIP_TRAILING_WHITESPACE
       ERROR_FILE /dev/null
     )
+    if(result_xcodebuild)
+      # clear ${var} content if the return status is non-zero
+      set(${var})
+    endif()
     if(${var} STREQUAL "")
       execute_process(
         COMMAND xcodebuild -version -sdk ${sdk_name} Path
         OUTPUT_VARIABLE ${var}
+        RESULT_VARIABLE result_xcodebuild
         OUTPUT_STRIP_TRAILING_WHITESPACE
         ERROR_FILE /dev/null
       )
+      if(result_xcodebuild)
+        # clear ${var} content if the return status is non-zero
+        set(${var})
+      endif()
     endif()
   endmacro()

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D8936.26988.patch
Type: text/x-patch
Size: 2292 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150602/dd145b4e/attachment.bin>


More information about the llvm-commits mailing list