From: Chris Bieneman Date: Fri, 19 Aug 2016 22:22:35 +0000 (+0000) Subject: [CMake] Support building on OS X without Xcode installation X-Git-Tag: llvmorg-4.0.0-rc1~11857 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9b818ac5d9a617dc2485ca3ed83b08f46d30824b;p=platform%2Fupstream%2Fllvm.git [CMake] Support building on OS X without Xcode installation This should resolve PR23162. This patch has two parts. First we need to check the error code from xcodebuild when querying for SDKs, second if the OS X SDK is not discovered, we ensure that /usr/include exists and use / as the OS X sysroot. llvm-svn: 279336 --- diff --git a/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake index 95a06ce..28d3986 100644 --- a/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake +++ b/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake @@ -7,13 +7,15 @@ function(find_darwin_sdk_dir var sdk_name) # Let's first try the internal SDK, otherwise use the public SDK. execute_process( COMMAND xcodebuild -version -sdk ${sdk_name}.internal Path + RESULT_VARIABLE result_process OUTPUT_VARIABLE var_internal OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_FILE /dev/null ) - if("" STREQUAL "${var_internal}") + if((NOT result_process EQUAL 0) OR "" STREQUAL "${var_internal}") execute_process( COMMAND xcodebuild -version -sdk ${sdk_name} Path + RESULT_VARIABLE result_process OUTPUT_VARIABLE var_internal OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_FILE /dev/null @@ -21,7 +23,9 @@ function(find_darwin_sdk_dir var sdk_name) else() set(${var}_INTERNAL ${var_internal} PARENT_SCOPE) endif() - set(${var} ${var_internal} PARENT_SCOPE) + if(result_process EQUAL 0) + set(${var} ${var_internal} PARENT_SCOPE) + endif() endfunction() # There isn't a clear mapping of what architectures are supported with a given diff --git a/compiler-rt/cmake/config-ix.cmake b/compiler-rt/cmake/config-ix.cmake index 67d0c7c..9eb1353 100644 --- a/compiler-rt/cmake/config-ix.cmake +++ b/compiler-rt/cmake/config-ix.cmake @@ -174,6 +174,14 @@ if(APPLE) find_darwin_sdk_dir(DARWIN_tvossim_SYSROOT appletvsimulator) find_darwin_sdk_dir(DARWIN_tvos_SYSROOT appletvos) + if(NOT DARWIN_osx_SYSROOT) + if(EXISTS /usr/include) + set(DARWIN_osx_SYSROOT /) + else() + message(ERROR "Could not detect OS X Sysroot. Either install Xcode or the Apple Command Line Tools") + endif() + endif() + if(COMPILER_RT_ENABLE_IOS) list(APPEND DARWIN_EMBEDDED_PLATFORMS ios) set(DARWIN_ios_MIN_VER_FLAG -miphoneos-version-min)