cmake: Rename QT_UIKIT_SDK to QT_APPLE_SDK
The SDK is relevant for all Apple systems, including macOS, iOS, tvOS, watchOS, and visionOS. We still pick up -DQT_UIKIT_SDK for iOS for compatibility. [ChangeLog][CMake] The -sdk configure argument now maps to the QT_APPLE_SDK CMake variable. QT_UIKIT_SDK is still supported for iOS builds for compatibility. Change-Id: I983a2f23c2414eb73cd35bb83738088defb45cbd Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
parent
09705c74b2
commit
d04cf2c58b
@ -181,10 +181,15 @@ function(qt_auto_detect_ios)
|
|||||||
if(CMAKE_SYSTEM_NAME STREQUAL iOS)
|
if(CMAKE_SYSTEM_NAME STREQUAL iOS)
|
||||||
message(STATUS "Using internal CMake ${CMAKE_SYSTEM_NAME} toolchain file.")
|
message(STATUS "Using internal CMake ${CMAKE_SYSTEM_NAME} toolchain file.")
|
||||||
|
|
||||||
# The QT_UIKIT_SDK check simulates the input.sdk condition for simulator_and_device in
|
# Pass on QT_UIKIT_SDK for compatibility
|
||||||
|
if(QT_UIKIT_SDK AND NOT QT_APPLE_SDK)
|
||||||
|
set(QT_APPLE_SDK "${QT_UIKIT_SDK}" CACHE STRING "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# The QT_APPLE_SDK check simulates the input.sdk condition for simulator_and_device in
|
||||||
# configure.json.
|
# configure.json.
|
||||||
# If the variable is explicitly provided, assume simulator_and_device to be off.
|
# If the variable is explicitly provided, assume simulator_and_device to be off.
|
||||||
if(QT_UIKIT_SDK)
|
if(QT_APPLE_SDK)
|
||||||
set(simulator_and_device OFF)
|
set(simulator_and_device OFF)
|
||||||
else()
|
else()
|
||||||
# Default to simulator_and_device when an explicit sdk is not requested.
|
# Default to simulator_and_device when an explicit sdk is not requested.
|
||||||
@ -199,24 +204,24 @@ function(qt_auto_detect_ios)
|
|||||||
# architectures, otherwise compilation fails with unknown defines.
|
# architectures, otherwise compilation fails with unknown defines.
|
||||||
if(simulator_and_device)
|
if(simulator_and_device)
|
||||||
set(osx_architectures "arm64;x86_64")
|
set(osx_architectures "arm64;x86_64")
|
||||||
elseif(QT_UIKIT_SDK STREQUAL "iphoneos")
|
elseif(QT_APPLE_SDK STREQUAL "iphoneos")
|
||||||
set(osx_architectures "arm64")
|
set(osx_architectures "arm64")
|
||||||
elseif(QT_UIKIT_SDK STREQUAL "iphonesimulator")
|
elseif(QT_APPLE_SDK STREQUAL "iphonesimulator")
|
||||||
set(osx_architectures "x86_64")
|
set(osx_architectures "x86_64")
|
||||||
else()
|
else()
|
||||||
if(NOT DEFINED QT_UIKIT_SDK)
|
if(NOT DEFINED QT_APPLE_SDK)
|
||||||
message(FATAL_ERROR "Please provide a value for -DQT_UIKIT_SDK."
|
message(FATAL_ERROR "Please provide a value for -DQT_APPLE_SDK."
|
||||||
" Possible values: iphoneos, iphonesimulator.")
|
" Possible values: iphoneos, iphonesimulator.")
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR
|
message(FATAL_ERROR
|
||||||
"Unknown SDK argument given to QT_UIKIT_SDK: ${QT_UIKIT_SDK}.")
|
"Unknown SDK argument given to QT_APPLE_SDK: ${QT_APPLE_SDK}.")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# For non simulator_and_device builds, we need to explicitly set the SYSROOT aka the sdk
|
# For non simulator_and_device builds, we need to explicitly set the SYSROOT aka the sdk
|
||||||
# value.
|
# value.
|
||||||
if(QT_UIKIT_SDK)
|
if(QT_APPLE_SDK)
|
||||||
set(CMAKE_OSX_SYSROOT "${QT_UIKIT_SDK}" CACHE STRING "")
|
set(CMAKE_OSX_SYSROOT "${QT_APPLE_SDK}" CACHE STRING "")
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_OSX_ARCHITECTURES "${osx_architectures}" CACHE STRING "")
|
set(CMAKE_OSX_ARCHITECTURES "${osx_architectures}" CACHE STRING "")
|
||||||
|
|
||||||
|
@ -203,8 +203,8 @@ function(qt_internal_print_cmake_darwin_info)
|
|||||||
if(DEFINED CACHE{QT_IS_MACOS_UNIVERSAL})
|
if(DEFINED CACHE{QT_IS_MACOS_UNIVERSAL})
|
||||||
message(STATUS "QT_IS_MACOS_UNIVERSAL: \"${QT_IS_MACOS_UNIVERSAL}\"")
|
message(STATUS "QT_IS_MACOS_UNIVERSAL: \"${QT_IS_MACOS_UNIVERSAL}\"")
|
||||||
endif()
|
endif()
|
||||||
if(QT_UIKIT_SDK)
|
if(QT_APPLE_SDK)
|
||||||
message(STATUS "QT_UIKIT_SDK: \"${QT_UIKIT_SDK}\"")
|
message(STATUS "QT_APPLE_SDK: \"${QT_APPLE_SDK}\"")
|
||||||
endif()
|
endif()
|
||||||
qt_internal_get_first_osx_arch(osx_first_arch)
|
qt_internal_get_first_osx_arch(osx_first_arch)
|
||||||
if(osx_first_arch)
|
if(osx_first_arch)
|
||||||
|
@ -1192,8 +1192,8 @@ function(qt_get_platform_try_compile_vars out_var)
|
|||||||
if(UIKIT)
|
if(UIKIT)
|
||||||
# Specify the sysroot, but only if not doing a simulator_and_device build.
|
# Specify the sysroot, but only if not doing a simulator_and_device build.
|
||||||
# So keep the sysroot empty for simulator_and_device builds.
|
# So keep the sysroot empty for simulator_and_device builds.
|
||||||
if(QT_UIKIT_SDK)
|
if(QT_APPLE_SDK)
|
||||||
list(APPEND flags_cmd_line "-DCMAKE_OSX_SYSROOT:STRING=${QT_UIKIT_SDK}")
|
list(APPEND flags_cmd_line "-DCMAKE_OSX_SYSROOT:STRING=${QT_APPLE_SDK}")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if(QT_NO_USE_FIND_PACKAGE_SYSTEM_ENVIRONMENT_PATH)
|
if(QT_NO_USE_FIND_PACKAGE_SYSTEM_ENVIRONMENT_PATH)
|
||||||
|
@ -630,9 +630,9 @@ set(__qt_internal_initial_qt_cmake_build_type \"${CMAKE_BUILD_TYPE}\")
|
|||||||
"set(QT_IS_MACOS_UNIVERSAL \"${QT_IS_MACOS_UNIVERSAL}\" CACHE BOOL \"\")\n")
|
"set(QT_IS_MACOS_UNIVERSAL \"${QT_IS_MACOS_UNIVERSAL}\" CACHE BOOL \"\")\n")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(DEFINED QT_UIKIT_SDK)
|
if(DEFINED QT_APPLE_SDK)
|
||||||
string(APPEND QT_EXTRA_BUILD_INTERNALS_VARS
|
string(APPEND QT_EXTRA_BUILD_INTERNALS_VARS
|
||||||
"set(QT_UIKIT_SDK \"${QT_UIKIT_SDK}\" CACHE BOOL \"\")\n")
|
"set(QT_APPLE_SDK \"${QT_APPLE_SDK}\" CACHE BOOL \"\")\n")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(QT_FORCE_FIND_TOOLS)
|
if(QT_FORCE_FIND_TOOLS)
|
||||||
|
@ -873,8 +873,8 @@ function(qt_generate_global_device_pri_file)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(QT_UIKIT_SDK)
|
if(QT_APPLE_SDK)
|
||||||
string(APPEND content "QMAKE_MAC_SDK = ${QT_UIKIT_SDK}\n")
|
string(APPEND content "QMAKE_MAC_SDK = ${QT_APPLE_SDK}\n")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(gcc_machine_dump "")
|
set(gcc_machine_dump "")
|
||||||
|
@ -924,8 +924,8 @@ endif()
|
|||||||
translate_string_input(android-javac-source QT_ANDROID_JAVAC_SOURCE)
|
translate_string_input(android-javac-source QT_ANDROID_JAVAC_SOURCE)
|
||||||
translate_string_input(android-javac-target QT_ANDROID_JAVAC_TARGET)
|
translate_string_input(android-javac-target QT_ANDROID_JAVAC_TARGET)
|
||||||
|
|
||||||
# FIXME: config_help.txt says -sdk should apply to macOS as well.
|
translate_string_input(sdk QT_APPLE_SDK)
|
||||||
translate_string_input(sdk QT_UIKIT_SDK)
|
|
||||||
if(DEFINED INPUT_sdk OR (DEFINED INPUT_xplatform AND INPUT_xplatform STREQUAL "macx-ios-clang")
|
if(DEFINED INPUT_sdk OR (DEFINED INPUT_xplatform AND INPUT_xplatform STREQUAL "macx-ios-clang")
|
||||||
OR (DEFINED INPUT_platform AND INPUT_platform STREQUAL "macx-ios-clang"))
|
OR (DEFINED INPUT_platform AND INPUT_platform STREQUAL "macx-ios-clang"))
|
||||||
push("-DCMAKE_SYSTEM_NAME=iOS")
|
push("-DCMAKE_SYSTEM_NAME=iOS")
|
||||||
|
@ -157,12 +157,12 @@ endif()")
|
|||||||
list(LENGTH CMAKE_OSX_ARCHITECTURES _qt_osx_architectures_count)
|
list(LENGTH CMAKE_OSX_ARCHITECTURES _qt_osx_architectures_count)
|
||||||
if(CMAKE_OSX_SYSROOT AND NOT _qt_osx_architectures_count GREATER 1 AND UIKIT)
|
if(CMAKE_OSX_SYSROOT AND NOT _qt_osx_architectures_count GREATER 1 AND UIKIT)
|
||||||
list(APPEND init_platform "
|
list(APPEND init_platform "
|
||||||
set(__qt_uikit_sdk \"${QT_UIKIT_SDK}\")
|
set(__qt_apple_sdk \"${QT_APPLE_SDK}\")
|
||||||
set(__qt_initial_cmake_osx_sysroot \"${CMAKE_OSX_SYSROOT}\")
|
set(__qt_initial_cmake_osx_sysroot \"${CMAKE_OSX_SYSROOT}\")
|
||||||
if(NOT DEFINED CMAKE_OSX_SYSROOT AND EXISTS \"\${__qt_initial_cmake_osx_sysroot}\")
|
if(NOT DEFINED CMAKE_OSX_SYSROOT AND EXISTS \"\${__qt_initial_cmake_osx_sysroot}\")
|
||||||
set(CMAKE_OSX_SYSROOT \"\${__qt_initial_cmake_osx_sysroot}\" CACHE PATH \"\")
|
set(CMAKE_OSX_SYSROOT \"\${__qt_initial_cmake_osx_sysroot}\" CACHE PATH \"\")
|
||||||
elseif(NOT DEFINED CMAKE_OSX_SYSROOT AND NOT QT_NO_SET_OSX_SYSROOT)
|
elseif(NOT DEFINED CMAKE_OSX_SYSROOT AND NOT QT_NO_SET_OSX_SYSROOT)
|
||||||
set(CMAKE_OSX_SYSROOT \"\${__qt_uikit_sdk}\" CACHE PATH \"\")
|
set(CMAKE_OSX_SYSROOT \"\${__qt_apple_sdk}\" CACHE PATH \"\")
|
||||||
endif()")
|
endif()")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -218,7 +218,7 @@ endif()")
|
|||||||
qt_internal_get_first_osx_arch(osx_first_arch)
|
qt_internal_get_first_osx_arch(osx_first_arch)
|
||||||
list(APPEND init_platform
|
list(APPEND init_platform
|
||||||
"if((NOT CMAKE_GENERATOR STREQUAL \"Xcode\" AND NOT __qt_toolchain_building_qt_repo)
|
"if((NOT CMAKE_GENERATOR STREQUAL \"Xcode\" AND NOT __qt_toolchain_building_qt_repo)
|
||||||
OR (CMAKE_GENERATOR STREQUAL \"Xcode\" AND __qt_uikit_sdk AND NOT QT_NO_SET_OSX_ARCHITECTURES))")
|
OR (CMAKE_GENERATOR STREQUAL \"Xcode\" AND __qt_apple_sdk AND NOT QT_NO_SET_OSX_ARCHITECTURES))")
|
||||||
list(APPEND init_platform
|
list(APPEND init_platform
|
||||||
" set(CMAKE_OSX_ARCHITECTURES \"${osx_first_arch}\" CACHE STRING \"\")")
|
" set(CMAKE_OSX_ARCHITECTURES \"${osx_first_arch}\" CACHE STRING \"\")")
|
||||||
list(APPEND init_platform "endif()")
|
list(APPEND init_platform "endif()")
|
||||||
|
@ -200,13 +200,13 @@ In order to cross-compile Qt to iOS, you need a host macOS build.
|
|||||||
When running cmake in qtbase, pass
|
When running cmake in qtbase, pass
|
||||||
``-DCMAKE_SYSTEM_NAME=iOS -DQT_HOST_PATH=/path/to/your/host/build -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH``
|
``-DCMAKE_SYSTEM_NAME=iOS -DQT_HOST_PATH=/path/to/your/host/build -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH``
|
||||||
|
|
||||||
If you don't supply the configuration argument ``-DQT_UIKIT_SDK=...``, CMake will build a
|
If you don't supply the configuration argument ``-DQT_APPLE_SDK=...``, CMake will build a
|
||||||
multi-arch simulator_and_device iOS build.
|
multi-arch simulator_and_device iOS build.
|
||||||
To target another SDK / device type, use one of the following values:
|
To target another SDK / device type, use one of the following values:
|
||||||
* iphonesimulator: ``-DQT_UIKIT_SDK=iphonesimulator``
|
* iphonesimulator: ``-DQT_APPLE_SDK=iphonesimulator``
|
||||||
* iphoneos: ``-DQT_UIKIT_SDK=iphoneos``
|
* iphoneos: ``-DQT_APPLE_SDK=iphoneos``
|
||||||
|
|
||||||
Depending on what value you pass to ``-DQT_UIKIT_SDK=`` a list of target architectures is chosen
|
Depending on what value you pass to ``-DQT_APPLE_SDK=`` a list of target architectures is chosen
|
||||||
by default:
|
by default:
|
||||||
* iphonesimulator: ``x86_64``
|
* iphonesimulator: ``x86_64``
|
||||||
* iphoneos: ``arm64``
|
* iphoneos: ``arm64``
|
||||||
|
@ -83,7 +83,7 @@ The following table describes the mapping of configure options to CMake argument
|
|||||||
| -I <string> | -DQT_EXTRA_INCLUDEPATHS=<string1>;<string2> | |
|
| -I <string> | -DQT_EXTRA_INCLUDEPATHS=<string1>;<string2> | |
|
||||||
| -L <string> | -DQT_EXTRA_LIBDIRS=<string1>;<string2> | |
|
| -L <string> | -DQT_EXTRA_LIBDIRS=<string1>;<string2> | |
|
||||||
| -F <string> | -DQT_EXTRA_FRAMEWORKPATHS=<string1>;<string2> | |
|
| -F <string> | -DQT_EXTRA_FRAMEWORKPATHS=<string1>;<string2> | |
|
||||||
| -sdk <sdk> | -DQT_UIKIT_SDK=<value> | Should be provided a value like 'iphoneos' or 'iphonesimulator' |
|
| -sdk <sdk> | -DQT_APPLE_SDK=<value> | Should be provided a value like 'iphoneos' or 'iphonesimulator' |
|
||||||
| | | If no value is provided, a simulator_and_device build is |
|
| | | If no value is provided, a simulator_and_device build is |
|
||||||
| | | assumed. |
|
| | | assumed. |
|
||||||
| -android-sdk <path> | -DANDROID_SDK_ROOT=<path> | |
|
| -android-sdk <path> | -DANDROID_SDK_ROOT=<path> | |
|
||||||
|
@ -542,7 +542,7 @@ if(APPLE)
|
|||||||
endif()
|
endif()
|
||||||
qt_feature("simulator_and_device" PUBLIC
|
qt_feature("simulator_and_device" PUBLIC
|
||||||
LABEL "Build for both simulator and device"
|
LABEL "Build for both simulator and device"
|
||||||
CONDITION UIKIT AND NOT QT_UIKIT_SDK
|
CONDITION UIKIT AND NOT QT_APPLE_SDK
|
||||||
)
|
)
|
||||||
qt_feature_config("simulator_and_device" QMAKE_PUBLIC_QT_CONFIG)
|
qt_feature_config("simulator_and_device" QMAKE_PUBLIC_QT_CONFIG)
|
||||||
qt_feature("rpath" PUBLIC
|
qt_feature("rpath" PUBLIC
|
||||||
|
@ -384,7 +384,7 @@ macro(_qt_internal_test_expect_pass _dir)
|
|||||||
endif()
|
endif()
|
||||||
if(build_environment STREQUAL "ci"
|
if(build_environment STREQUAL "ci"
|
||||||
AND osx_arch_count GREATER_EQUAL 2
|
AND osx_arch_count GREATER_EQUAL 2
|
||||||
AND NOT QT_UIKIT_SDK
|
AND NOT QT_APPLE_SDK
|
||||||
AND NOT QT_NO_IOS_BUILD_ADJUSTMENT_IN_CI)
|
AND NOT QT_NO_IOS_BUILD_ADJUSTMENT_IN_CI)
|
||||||
list(APPEND additional_configure_args
|
list(APPEND additional_configure_args
|
||||||
-DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_SYSROOT=iphonesimulator)
|
-DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_SYSROOT=iphonesimulator)
|
||||||
|
@ -909,7 +909,7 @@ endif()""",
|
|||||||
"condition": "__qt_ltcg_detected",
|
"condition": "__qt_ltcg_detected",
|
||||||
},
|
},
|
||||||
"msvc_mp": None,
|
"msvc_mp": None,
|
||||||
"simulator_and_device": {"condition": "UIKIT AND NOT QT_UIKIT_SDK"},
|
"simulator_and_device": {"condition": "UIKIT AND NOT QT_APPLE_SDK"},
|
||||||
"pkg-config": {"condition": "PKG_CONFIG_FOUND"},
|
"pkg-config": {"condition": "PKG_CONFIG_FOUND"},
|
||||||
"precompile_header": {"condition": "BUILD_WITH_PCH"},
|
"precompile_header": {"condition": "BUILD_WITH_PCH"},
|
||||||
"profile": None,
|
"profile": None,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user