diff options
Diffstat (limited to 'src/corelib/doc/src/cmake/cmake-configure-variables.qdoc')
-rw-r--r-- | src/corelib/doc/src/cmake/cmake-configure-variables.qdoc | 185 |
1 files changed, 166 insertions, 19 deletions
diff --git a/src/corelib/doc/src/cmake/cmake-configure-variables.qdoc b/src/corelib/doc/src/cmake/cmake-configure-variables.qdoc index 116e08fef4..64275c35f7 100644 --- a/src/corelib/doc/src/cmake/cmake-configure-variables.qdoc +++ b/src/corelib/doc/src/cmake/cmake-configure-variables.qdoc @@ -10,6 +10,7 @@ /*! \group cmake-variables-qtcore \title CMake Variables in Qt6 Core +\brief Lists CMake variables defined in Qt6::Core. The following CMake variables are defined when Qt6::Core is loaded, for instance with @@ -22,7 +23,7 @@ find_package(Qt6 REQUIRED COMPONENTS Core) */ */*! -\page cmake-variable-ANDROID_NDK_HOST_SYSTEM_NAME.html +\page cmake-variable-android-ndk-host-system-name.html \ingroup cmake-variables-qtcore \title ANDROID_NDK_HOST_SYSTEM_NAME @@ -41,7 +42,7 @@ part of the deployment settings for a target. */ /*! -\page cmake-variable-ANDROID_SDK_ROOT.html +\page cmake-variable-android-sdk-root.html \ingroup cmake-variables-qtcore \title ANDROID_SDK_ROOT @@ -60,7 +61,7 @@ It is written out as part of the deployment settings for a target. */ /*! -\page cmake-variable-QT_ANDROID_APPLICATION_ARGUMENTS.html +\page cmake-variable-qt-android-application-arguments.html \ingroup cmake-variables-qtcore \title QT_ANDROID_APPLICATION_ARGUMENTS @@ -79,7 +80,88 @@ out as part of the deployment settings for a target. */ /*! -\page cmake-variable-QT_ANDROID_BUILD_ALL_ABIS.html +\page cmake_variable-qt-android-multi-abi-forward-vars +\ingroup cmake-variables-qtcore + +\title QT_ANDROID_MULTI_ABI_FORWARD_VARS +\target cmake-variable-QT_ANDROID_MULTI_ABI_FORWARD_VARS + +\summary {Allows to share CMake variables in multi-ABI builds} + +\cmakevariablesince 6.4.2 +\preliminarycmakevariable +\cmakevariableandroidonly + +The \c{QT_ANDROID_MULTI_ABI_FORWARD_VARS} variable allows specifying the list of +CMake variables that need to be forwarded from the main ABI project to +ABI-specific subprojects. Due to the specifics of the Multi-ABI project build +process, there is no generic way to forward the CMake cache variables +that are specified either in the command line or in another similar way. + +A typical use case for the variable is propagating CMake cache variables +specified in the command line. For example, a project has two variables +\c{PROJECT_WIDE_VARIABLE1} and \c{PROJECT_WIDE_VARIABLE2} that affect the +project configuration: +\badcode +cmake_minimum_required(VERSION 3.18) + +project(MyProject LANGUAGES CXX) + +find_package(Qt6 REQUIRED COMPONENTS Core) + +qt_add_executable(MyApp main.cpp) + +if(PROJECT_WIDE_VARIABLE1) + target_sources(MyApp PRIVATE sourcefile1.cpp) +endif() +if(PROJECT_WIDE_VARIABLE2) + target_sources(MyApp PRIVATE sourcefile2.cpp) +endif() +\endcode + +The above contents of \c{CMakeLists.txt} enable you to control how +\c{MyApp} is built by setting the corresponding CMake variables from the +command line: +\badcode +qt-cmake -S<source directory> -B<build directory> \ + -DPROJECT_WIDE_VARIABLE1=ON \ + -DPROJECT_WIDE_VARIABLE2=ON \ + -DQT_ANDROID_MULTI_ABI_FORWARD_VARS="PROJECT_WIDE_VARIABLE1;PROJECT_WIDE_VARIABLE2" +\endcode + +When configuring the application for desktop, \c{PROJECT_WIDE_VARIABLE1} and +\c{PROJECT_WIDE_VARIABLE2} are visible in CMake listings and scripts as global +cache variables. This doesn't work for Android Multi-ABI builds because +ABI-specific subprojects do not inherit the cache variables from the main-ABI +project. This issue can be solved by passing the list of required variables to +the \c{QT_ANDROID_MULTI_ABI_FORWARD_VARS} variable, so both +\c{PROJECT_WIDE_VARIABLE1} and \c{PROJECT_WIDE_VARIABLE2} values will be +propagated to the ABI-specific builds. + +The variable can be also defined in the project's CMakeLists.txt: +\badcode +... +qt_add_executable(MyApp main.cpp) +... +if(ANDROID) + set(QT_ANDROID_MULTI_ABI_FORWARD_VARS "PROJECT_WIDE_VARIABLE1;PROJECT_WIDE_VARIABLE2") +endif() +... +\endcode + +Setting the variable in this way allows you to have a predefined set of +variables that will always be forwarded to abi-specific projects. + +\note The forwarding is done in the target finalizer, which is implicitly +called when \l{qt6_add_executable}{qt_add_executable()} is used. The +finalization occurs automatically when using CMake 3.19 or later. + +\sa {qt6_finalize_target}{qt_finalize_target()}, + {qt6_add_executable}{qt_add_executable()} +*/ + +/*! +\page cmake-variable-qt-android-build-all-abis.html \ingroup cmake-variables-qtcore \title QT_ANDROID_BUILD_ALL_ABIS @@ -98,11 +180,11 @@ supplied by the Qt installer, with the corresponding naming of the directories. The typical directory structure looks as below: \badcode /path/to/Qt/6.x.x - android_armv7 - android_arm64_v8a - android_x86 - android_x86_64 - ... + android_armv7 + android_arm64_v8a + android_x86 + android_x86_64 + ... \endcode The auto-detected paths can be customized using one of \c{QT_PATH_ANDROID_ABI_<ABI>} variables. @@ -112,7 +194,7 @@ The variable is set to FALSE by default. */ /*! -\page cmake-variable-QT_ANDROID_ABIS.html +\page cmake-variable-qt-android-abis.html \ingroup cmake-variables-qtcore \title QT_ANDROID_ABIS @@ -137,7 +219,7 @@ QT_ANDROID_ABIS logic. */ /*! -\page cmake-variable-QT_PATH_ANDROID_ABI.html +\page cmake-variable-qt-path-android-abi.html \ingroup cmake-variables-qtcore \title QT_PATH_ANDROID_ABI_<ABI> @@ -156,7 +238,32 @@ Each variable can be used to specify the path to Qt for Android for the correspo */ /*! -\page cmake-variable-QT_ANDROID_SIGN_APK.html +\page cmake-variable-qt-android-sign-aab.html +\ingroup cmake-variables-qtcore + +\title QT_ANDROID_SIGN_AAB +\target cmake-variable-QT_ANDROID_SIGN_AAB + +\summary {Sign the .aab package with the specified keystore, alias and store password.} +\cmakevariablesince 6.4 +\preliminarycmakevariable +\cmakevariableandroidonly + +Sign the resulting package. The path of the keystore file, the alias of the key and passwords +have to be specified by additional environment variables: +\badcode + QT_ANDROID_KEYSTORE_PATH + QT_ANDROID_KEYSTORE_ALIAS + QT_ANDROID_KEYSTORE_STORE_PASS + QT_ANDROID_KEYSTORE_KEY_PASS +\endcode +Mentioned variables are used internally by \l{androiddeployqt}. + +\sa{androiddeployqt} +*/ + +/*! +\page cmake-variable-qt-android-sign-apk.html \ingroup cmake-variables-qtcore \title QT_ANDROID_SIGN_APK @@ -181,7 +288,29 @@ Mentioned variables are used internally by \l{androiddeployqt}. */ /*! -\page cmake-variable-QT_HOST_PATH.html +\page cmake-variable-qt-no-collect-build-tree-apk-deps.html +\ingroup cmake-variables-qtcore + +\title QT_NO_COLLECT_BUILD_TREE_APK_DEPS +\target cmake-variable-QT_NO_COLLECT_BUILD_TREE_APK_DEPS + +\summary {Prevents collecting of project-built shared library targets during Android deployment.} + +\cmakevariablesince 6.3 +\preliminarycmakevariable +\cmakevariableandroidonly + +During project finalization, the build system collects the locations of +all built shared library targets in the project. +These locations are passed to \l androiddeployqt for deployment consideration when +resolving dependencies between libraries. +Set \c QT_NO_COLLECT_BUILD_TREE_APK_DEPS to \c TRUE to disable this behavior. + +\sa {qt6_finalize_project}{qt_finalize_project()} +*/ + +/*! +\page cmake-variable-qt-host-path.html \ingroup cmake-variables-qtcore \title QT_HOST_PATH @@ -190,7 +319,6 @@ Mentioned variables are used internally by \l{androiddeployqt}. \summary {Location of the host Qt installation when cross-compiling.} \cmakevariablesince 6.0 -\preliminarycmakevariable When cross-compiling, this must be set to the install location of Qt for the host platform. It is used to locate tools to be run on the host (\l{moc}, \l{rcc}, @@ -198,7 +326,7 @@ platform. It is used to locate tools to be run on the host (\l{moc}, \l{rcc}, */ /*! -\page cmake-variable-QT_NO_SET_XCODE_DEVELOPMENT_TEAM_ID.html +\page cmake-variable-qt-no-set-xcode-development-team-id.html \ingroup cmake-variables-qtcore \title QT_NO_SET_XCODE_DEVELOPMENT_TEAM_ID @@ -215,7 +343,7 @@ Set \c QT_NO_SET_XCODE_DEVELOPMENT_TEAM_ID to true if you want to prevent this. */ /*! -\page cmake-variable-QT_NO_SET_XCODE_BUNDLE_IDENTIFIER.html +\page cmake-variable-qt-no-set-xcode-bundle-identifier.html \ingroup cmake-variables-qtcore \title QT_NO_SET_XCODE_BUNDLE_IDENTIFIER @@ -233,7 +361,7 @@ Set \c QT_NO_SET_XCODE_BUNDLE_IDENTIFIER to true if you want to prevent this. */ /*! -\page cmake-variable-QT_ENABLE_VERBOSE_DEPLOYMENT.html +\page cmake-variable-qt-enable-verbose-deployment.html \ingroup cmake-variables-qtcore \title QT_ENABLE_VERBOSE_DEPLOYMENT @@ -253,7 +381,7 @@ must be set before the first \c{find_package(Qt6)} call to have that effect. */ /*! -\page cmake-variable-QT_DEPLOY_SUPPORT.html +\page cmake-variable-qt-deploy-support.html \ingroup cmake-variables-qtcore \title QT_DEPLOY_SUPPORT @@ -280,7 +408,7 @@ an application, along with its runtime dependencies: */ /*! -\page cmake-variable-QT_NO_STANDARD_PROJECT_SETUP.html +\page cmake-variable-qt-no-standard-project-setup.html \ingroup cmake-variables-qtcore \title QT_NO_STANDARD_PROJECT_SETUP @@ -302,3 +430,22 @@ methods provided by CMake. \sa {qt6_standard_project_setup}{qt_standard_project_setup()} */ + +/*! +\page cmake-variable-qt-ios-launch-screen.html +\ingroup cmake-variables-qtcore + +\title QT_IOS_LAUNCH_SCREEN +\target cmake-variable-QT_IOS_LAUNCH_SCREEN + +\summary {Path to iOS launch screen storyboard used by all targets} + +\cmakevariablesince 6.4 +\preliminarycmakevariable +\cmakevariableiosonly + +Specifies the path to an iOS launch screen storyboard file that will be used +by all targets within a project. + +\sa {Launch Screens and Launch Images} +*/ |