| 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() |