Index: cmake/Modules/CompilerRTDarwinUtils.cmake =================================================================== --- cmake/Modules/CompilerRTDarwinUtils.cmake +++ cmake/Modules/CompilerRTDarwinUtils.cmake @@ -1,9 +1,15 @@ include(CMakeParseArguments) +set(DARWIN_${sdk_name}_CACHED_SYSROOT "" CACHE STRING "Darwin SDK path for SDK ${sdk_name}.") + # On OS X SDKs can be installed anywhere on the base system and xcode-select can # set the default Xcode to use. This function finds the SDKs that are present in # the current Xcode. -function(find_darwin_sdk_dir var sdk_name) +function(find_darwin_sdk_dir var sdk_name) + if(DARWIN_${sdk_name}_CACHED_SYSROOT) + set(${var} ${DARWIN_${sdk_name}_CACHED_SYSROOT} PARENT_SCOPE) + return() + endif() # Let's first try the internal SDK, otherwise use the public SDK. execute_process( COMMAND xcodebuild -version -sdk ${sdk_name}.internal Path @@ -26,6 +32,7 @@ if(result_process EQUAL 0) set(${var} ${var_internal} PARENT_SCOPE) endif() + set(DARWIN_${sdk_name}_CACHED_SYSROOT ${var_internal} CACHE STRING "Darwin SDK path for SDK ${sdk_name}." FORCE) endfunction() # There isn't a clear mapping of what architectures are supported with a given