Index: CMakeLists.txt =================================================================== --- CMakeLists.txt +++ CMakeLists.txt @@ -274,16 +274,24 @@ 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) + 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) + set(${var}) + endif() endif() endmacro() Index: cmake/config-ix.cmake =================================================================== --- cmake/config-ix.cmake +++ cmake/config-ix.cmake @@ -160,22 +160,37 @@ else() if("${LLVM_NATIVE_ARCH}" STREQUAL "X86") if(NOT MSVC) + if(APPLE) + set(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES x86_64) + endif() test_target_arch(x86_64 "" "-m64") # FIXME: We build runtimes for both i686 and i386, as "clang -m32" may # target different variant than "$CMAKE_C_COMPILER -m32". This part should # be gone after we resolve PR14109. + if(APPLE) + set(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES i386) + endif() test_target_arch(i686 __i686__ "-m32") test_target_arch(i386 __i386__ "-m32") + if(APPLE) + set(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES) + endif() else() test_target_arch(i386 "" "") endif() elseif("${LLVM_NATIVE_ARCH}" STREQUAL "PowerPC") TEST_BIG_ENDIAN(HOST_IS_BIG_ENDIAN) + if(APPLE) + set(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES ppc64) + endif() if(HOST_IS_BIG_ENDIAN) test_target_arch(powerpc64 "" "-m64") else() test_target_arch(powerpc64le "" "-m64") endif() + if(APPLE) + set(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES) + endif() elseif("${LLVM_NATIVE_ARCH}" STREQUAL "Mips") if("${COMPILER_RT_TEST_TARGET_ARCH}" MATCHES "mipsel|mips64el") # regex for mipsel, mips64el @@ -186,11 +201,23 @@ test_target_arch(mips64 "" "-m64") endif() elseif("${COMPILER_RT_TEST_TARGET_ARCH}" MATCHES "arm") + if(APPLE) + set(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES armv7) + endif() test_target_arch(arm "" "-march=armv7-a") + if(APPLE) + set(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES) + endif() elseif("${COMPILER_RT_TEST_TARGET_ARCH}" MATCHES "aarch32") test_target_arch(aarch32 "" "-march=armv8-a") elseif("${COMPILER_RT_TEST_TARGET_ARCH}" MATCHES "aarch64") + if(APPLE) + set(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES arm64) + endif() test_target_arch(aarch64 "" "-march=armv8-a") + if(APPLE) + set(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES) + endif() endif() set(COMPILER_RT_OS_SUFFIX "") endif()