blob: f85b1a1dfdf9c78e890426058bfdb1f69337c177 [file] [log] [blame] [edit]
include(RunCMake)
# Isolate from caller's environment.
unset(ENV{CMAKE_OSX_ARCHITECTURES})
unset(ENV{CMAKE_OSX_DEPLOYMENT_TARGET})
unset(ENV{SDKROOT})
function(run_xcode_cc)
set(RunCMake_TEST_VARIANT_DESCRIPTION "-xcode")
if(EXISTS "/usr/include/AvailabilityMacros.h")
run_cmake(SDK)
else()
run_cmake(NoSDK)
endif()
endfunction()
if(RunCMake_GENERATOR STREQUAL "Xcode")
run_xcode_cc()
else()
set(system_cc "/usr/bin/cc")
set(system_cxx "/usr/bin/c++")
if(EXISTS "${system_cc}" AND EXISTS "${system_cxx}")
set(ENV{CC} "${system_cc}")
set(ENV{CXX} "${system_cxx}")
set(ENV{OBJC} "${system_cc}")
set(ENV{OBJCXX} "${system_cxx}")
set(RunCMake_TEST_VARIANT_DESCRIPTION "-system")
run_cmake(SDK)
endif()
execute_process(COMMAND xcrun --find cc OUTPUT_VARIABLE xcode_cc OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND xcrun --find c++ OUTPUT_VARIABLE xcode_cxx OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND xcrun --show-sdk-path OUTPUT_VARIABLE xcode_sdk OUTPUT_STRIP_TRAILING_WHITESPACE)
if(EXISTS "${xcode_cc}" AND EXISTS "${xcode_cxx}")
set(ENV{CC} "${xcode_cc}")
set(ENV{CXX} "${xcode_cxx}")
set(ENV{OBJC} "${xcode_cc}")
set(ENV{OBJCXX} "${xcode_cxx}")
run_xcode_cc()
if(EXISTS "${xcode_sdk}")
set(RunCMake_TEST_VARIANT_DESCRIPTION "-xcode-SDKROOT")
set(ENV{SDKROOT} "${xcode_sdk}")
run_cmake(SDK)
unset(ENV{SDKROOT})
endif()
endif()
endif()