cmake: Adjust macOS SDK detection

This commit is contained in:
jcm
2025-03-15 00:23:59 -05:00
committed by Ryan Foster
parent 3e84469cc1
commit 8f1bcc1798

View File

@@ -21,22 +21,48 @@ endif()
set_property(CACHE CMAKE_OSX_ARCHITECTURES PROPERTY STRINGS arm64 x86_64)
# Ensure recent enough Xcode and platform SDK
set(_obs_macos_minimum_sdk 15.0) # Keep in sync with Xcode
set(_obs_macos_minimum_xcode 16.0) # Keep in sync with SDK
message(DEBUG "macOS SDK Path: ${CMAKE_OSX_SYSROOT}")
string(REGEX MATCH ".+/MacOSX.platform/Developer/SDKs/MacOSX([0-9]+\\.[0-9])+\\.sdk$" _ ${CMAKE_OSX_SYSROOT})
set(_obs_macos_current_sdk ${CMAKE_MATCH_1})
message(DEBUG "macOS SDK version: ${_obs_macos_current_sdk}")
if(_obs_macos_current_sdk VERSION_LESS _obs_macos_minimum_sdk)
message(
FATAL_ERROR
"Your macOS SDK version (${_obs_macos_current_sdk}) is too low. "
"The macOS ${_obs_macos_minimum_sdk} SDK (Xcode ${_obs_macos_minimum_xcode}) is required to build OBS."
function(check_sdk_requirements)
set(obs_macos_minimum_sdk 15.0) # Keep in sync with Xcode
set(obs_macos_minimum_xcode 16.0) # Keep in sync with SDK
execute_process(
COMMAND xcrun --sdk macosx --show-sdk-platform-version
OUTPUT_VARIABLE obs_macos_current_sdk
RESULT_VARIABLE result
OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif()
unset(_obs_macos_current_sdk)
unset(_obs_macos_minimum_sdk)
unset(_obs_macos_minimum_xcode)
if(NOT result EQUAL 0)
message(
FATAL_ERROR
"Failed to fetch macOS SDK version. "
"Ensure that the macOS SDK is installed and that xcode-select points at the Xcode developer directory."
)
endif()
message(DEBUG "macOS SDK version: ${obs_macos_current_sdk}")
if(obs_macos_current_sdk VERSION_LESS obs_macos_minimum_sdk)
message(
FATAL_ERROR
"Your macOS SDK version (${obs_macos_current_sdk}) is too low. "
"The macOS ${obs_macos_minimum_sdk} SDK (Xcode ${obs_macos_minimum_xcode}) is required to build OBS."
)
endif()
execute_process(COMMAND xcrun --find xcodebuild OUTPUT_VARIABLE obs_macos_xcodebuild RESULT_VARIABLE result)
if(NOT result EQUAL 0)
message(
FATAL_ERROR
"Xcode was not found. "
"Ensure you have installed Xcode and that xcode-select points at the Xcode developer directory."
)
endif()
message(DEBUG "Path to xcodebuild binary: ${obs_macos_xcodebuild}")
if(XCODE_VERSION VERSION_LESS obs_macos_minimum_xcode)
message(
FATAL_ERROR
"Your Xcode version (${XCODE_VERSION}) is too low. Xcode ${obs_macos_minimum_xcode} is required to build OBS."
)
endif()
endfunction()
check_sdk_requirements()
# Enable dSYM generator for release builds
string(APPEND CMAKE_C_FLAGS_RELEASE " -g")