diff options
-rw-r--r-- | cmake/QtAutoDetect.cmake | 30 | ||||
-rw-r--r-- | cmake/QtBuild.cmake | 4 |
2 files changed, 34 insertions, 0 deletions
diff --git a/cmake/QtAutoDetect.cmake b/cmake/QtAutoDetect.cmake index 65bbf1baeb..6e9b006d77 100644 --- a/cmake/QtAutoDetect.cmake +++ b/cmake/QtAutoDetect.cmake @@ -194,6 +194,31 @@ function(qt_auto_detect_cyclic_toolchain) endif() endfunction() +function(qt_internal_get_darwin_sdk_version out_var) + if(APPLE) + if(IOS) + set(sdk_name "iphoneos") + elseif(TVOS) + set(sdk_name "appletvos") + elseif(WATCHOS) + set(sdk_name "watchos") + else() + # Default to macOS + set(sdk_name "macosx") + endif() + set(xcrun_version_arg "--show-sdk-version") + execute_process(COMMAND /usr/bin/xcrun --sdk ${sdk_name} ${xcrun_version_arg} + OUTPUT_VARIABLE sdk_version + ERROR_VARIABLE xcrun_error) + if(NOT sdk_version) + message(FATAL_ERROR + "Can't determine darwin ${sdk_name} SDK version. Error: ${xcrun_error}") + endif() + string(STRIP "${sdk_version}" sdk_version) + set(${out_var} "${sdk_version}" PARENT_SCOPE) + endif() +endfunction() + function(qt_auto_detect_darwin) if(APPLE) # If no CMAKE_OSX_DEPLOYMENT_TARGET is provided, default to a value that Qt defines. @@ -220,6 +245,11 @@ function(qt_auto_detect_darwin) message(STATUS "CMAKE_OSX_DEPLOYMENT_TARGET set to: \"${CMAKE_OSX_DEPLOYMENT_TARGET}\".") endif() + + qt_internal_get_darwin_sdk_version(darwin_sdk_version) + set(QT_MAC_SDK_VERSION "${darwin_sdk_version}" CACHE STRING "Darwin SDK version.") + message(STATUS + "QT_MAC_SDK_VERSION set to: \"${QT_MAC_SDK_VERSION}\".") endif() endfunction() diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index cd459f251f..46442b9e96 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -1139,6 +1139,10 @@ function(qt_generate_global_config_pri_file) "${compiler_version_patch_var_name} = ${QT_COMPILER_VERSION_PATCH}") endif() + if(APPLE) + list(APPEND extra_statements "QT_MAC_SDK_VERSION = ${QT_MAC_SDK_VERSION}") + endif() + list(APPEND extra_statements "QT_EDITION = Open Source") if(extra_statements) |