summaryrefslogtreecommitdiff
path: root/indra/cmake/Variables.cmake
diff options
context:
space:
mode:
authorJonathan "Geenz" Goodman <geenz@lindenlab.com>2026-06-17 11:46:23 -0400
committerGitHub <noreply@github.com>2026-06-17 11:46:23 -0400
commit34c308ebdb219c8c3e5cdc5a1192db8a51ef0c44 (patch)
treeb4323eb1fe5ac13ca6e5227a10056779e9f35b01 /indra/cmake/Variables.cmake
parentdace31455ca4b382f94a03d3c7c244d805bd85fd (diff)
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
Diffstat (limited to 'indra/cmake/Variables.cmake')
-rw-r--r--indra/cmake/Variables.cmake33
1 files changed, 32 insertions, 1 deletions
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