diff --git a/cmake/QtAutoDetectHelpers.cmake b/cmake/QtAutoDetectHelpers.cmake index bef1d876bf5..fe6087748d6 100644 --- a/cmake/QtAutoDetectHelpers.cmake +++ b/cmake/QtAutoDetectHelpers.cmake @@ -248,6 +248,11 @@ function(qt_auto_detect_apple) if(QT_APPLE_SDK) set(CMAKE_OSX_SYSROOT "${QT_APPLE_SDK}" CACHE STRING "") + elseif(NOT CMAKE_SYSTEM_NAME) + # Persist SDK name for macOS builds, since CMake 4.x will pick arbitrary + # SDK paths, ignoring xcode-select, if not given an explicit SDK. + _qt_internal_get_apple_sdk_name(sdk_name) + set(CMAKE_OSX_SYSROOT "${sdk_name}" CACHE STRING "") endif() if(CMAKE_SYSTEM_NAME STREQUAL iOS OR CMAKE_SYSTEM_NAME STREQUAL visionOS) diff --git a/cmake/QtToolchainHelpers.cmake b/cmake/QtToolchainHelpers.cmake index 1ee064bd7a9..c006f1b677a 100644 --- a/cmake/QtToolchainHelpers.cmake +++ b/cmake/QtToolchainHelpers.cmake @@ -168,7 +168,7 @@ endif()") set(cmake_sysroot_name "$CACHE{CMAKE_OSX_SYSROOT}") list(LENGTH CMAKE_OSX_ARCHITECTURES _qt_osx_architectures_count) - if(cmake_sysroot_name AND NOT _qt_osx_architectures_count GREATER 1 AND UIKIT) + if(cmake_sysroot_name AND (MACOS OR (UIKIT AND NOT _qt_osx_architectures_count GREATER 1))) list(APPEND init_platform " if(NOT DEFINED CMAKE_OSX_SYSROOT) set(CMAKE_OSX_SYSROOT \"${cmake_sysroot_name}\" CACHE STRING \"\")