From 34c308ebdb219c8c3e5cdc5a1192db8a51ef0c44 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Geenz\" Goodman" Date: Wed, 17 Jun 2026 11:46:23 -0400 Subject: macOS 27 build fixes + transition to UTType for file pickers (#5937) * Get the viewer building on macOS 27 * Strip -mmacosx-version-min when we're below an SDK supported version. Substitutes an actual SDK supported minimum version. * Move kIOMainPortDefault behind an SDK compatibility check. * Update llwindowmacosx_iokit.h * Update llwindowmacosx_iokit.h --- indra/cmake/Variables.cmake | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'indra/cmake/Variables.cmake') diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 22c2156bb8..baa93bd128 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -144,7 +144,38 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(DARWIN 1) string(REGEX MATCH "-mmacosx-version-min=([^ ]+)" scratch "$ENV{LL_BUILD}") - set(CMAKE_OSX_DEPLOYMENT_TARGET "${CMAKE_MATCH_1}" CACHE STRING "macOS Deploy Target" FORCE) + set(LL_REQUESTED_DEPLOYMENT_TARGET "${CMAKE_MATCH_1}") + + # Determine the lowest deployment target the active macOS SDK still supports. + # We aim for 11.0 in our public builds, but newer Xcode/SDK releases + # periodically raise this floor (e.g. Xcode 26 -> 13.3, Xcode 27 -> 14), and + # linking against a deployment target below the SDK's minimum fails. Read the + # supported minimum from the SDK and clamp our requested target up to it when + # necessary, so the build tracks whatever the SDK allows automatically. + set(LL_SDK_MINIMUM_DEPLOYMENT_TARGET "") + execute_process( + COMMAND xcrun --sdk macosx --show-sdk-path + OUTPUT_VARIABLE LL_MACOS_SDK_PATH + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET) + if (LL_MACOS_SDK_PATH AND EXISTS "${LL_MACOS_SDK_PATH}/SDKSettings.plist") + execute_process( + COMMAND /usr/libexec/PlistBuddy -c + "Print :SupportedTargets:macosx:MinimumDeploymentTarget" + "${LL_MACOS_SDK_PATH}/SDKSettings.plist" + OUTPUT_VARIABLE LL_SDK_MINIMUM_DEPLOYMENT_TARGET + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET) + endif () + + set(LL_EFFECTIVE_DEPLOYMENT_TARGET "${LL_REQUESTED_DEPLOYMENT_TARGET}") + if (LL_SDK_MINIMUM_DEPLOYMENT_TARGET AND + LL_REQUESTED_DEPLOYMENT_TARGET VERSION_LESS LL_SDK_MINIMUM_DEPLOYMENT_TARGET) + message(STATUS "Requested macOS deploy target ${LL_REQUESTED_DEPLOYMENT_TARGET} is below the SDK minimum ${LL_SDK_MINIMUM_DEPLOYMENT_TARGET}; clamping to ${LL_SDK_MINIMUM_DEPLOYMENT_TARGET}") + set(LL_EFFECTIVE_DEPLOYMENT_TARGET "${LL_SDK_MINIMUM_DEPLOYMENT_TARGET}") + endif () + + set(CMAKE_OSX_DEPLOYMENT_TARGET "${LL_EFFECTIVE_DEPLOYMENT_TARGET}" CACHE STRING "macOS Deploy Target" FORCE) message(STATUS "CMAKE_OSX_DEPLOYMENT_TARGET = '${CMAKE_OSX_DEPLOYMENT_TARGET}'") # Use dwarf symbols for most libraries for compilation speed -- cgit v1.3