From 627351f561bcdb8234ccf62ea2b19178eb6fa033 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Fri, 6 Mar 2020 13:59:29 +0100 Subject: CMake: Set minimum deployment target for darwin platforms Same value as QMAKE_IOS_DEPLOYMENT_TARGET in mkspecs/macx-ios-clang/qmake.conf, etc. Change-Id: I1f6a07d73c2126d0286e8d26f7e61a690607c8ce Reviewed-by: Joerg Bornemann Reviewed-by: Leander Beernaert --- cmake/QtAutoDetect.cmake | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/cmake/QtAutoDetect.cmake b/cmake/QtAutoDetect.cmake index 0929989b18..b776f109b4 100644 --- a/cmake/QtAutoDetect.cmake +++ b/cmake/QtAutoDetect.cmake @@ -175,16 +175,30 @@ endfunction() function(qt_auto_detect_darwin) if(APPLE) - # If no CMAKE_OSX_DEPLOYMENT_TARGET is provided, default - # to a value that we choose. This replicates the behavior - # in mkspecs/common/macx.conf where + # If no CMAKE_OSX_DEPLOYMENT_TARGET is provided, default to a value that Qt defines. + # This replicates the behavior in mkspecs/common/macx.conf where # QMAKE_MACOSX_DEPLOYMENT_TARGET is set. - # Currently only set for macOS, and not the mobile platforms. - if(NOT CMAKE_OSX_DEPLOYMENT_TARGET AND NOT CMAKE_SYSTEM_NAME) - set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14" CACHE STRING - "Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value.") + set(description + "Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value.") + if(NOT CMAKE_OSX_DEPLOYMENT_TARGET) + if(NOT CMAKE_SYSTEM_NAME) + # macOS + set(version "10.14") + elseif(CMAKE_SYSTEM_NAME STREQUAL iOS) + set(version "12.0") + elseif(CMAKE_SYSTEM_NAME STREQUAL watchOS) + set(version "5.0") + elseif(CMAKE_SYSTEM_NAME STREQUAL tvOS) + set(version "12.0") + endif() + if(version) + set(CMAKE_OSX_DEPLOYMENT_TARGET "${version}" CACHE STRING "${description}") + endif() + endif() + if(CMAKE_OSX_DEPLOYMENT_TARGET) + message(STATUS + "CMAKE_OSX_DEPLOYMENT_TARGET set to: \"${CMAKE_OSX_DEPLOYMENT_TARGET}\".") endif() - message(STATUS "CMAKE_OSX_DEPLOYMENT_TARGET set to: \"${CMAKE_OSX_DEPLOYMENT_TARGET}\".") endif() endfunction() -- cgit v1.2.3