[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