summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Scott <craig.scott@qt.io>2021-09-08 17:36:14 +1000
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-09-09 18:32:00 +0000
commit12d81c990722310bd422c2f423f7909472fb1dbd (patch)
tree7c7711bea27343a81ee03b74020e36e173c7ff12
parente3add3f0d3bfbad3d47ea0155b699612c36d0b14 (diff)
Split up cmake-macros.qdoc into one file per command
Task-number: QTBUG-95712 Change-Id: Ieeb4293fb8d17c57fb25e0ac5cd333b07fc53278 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 944c424ff601fe546a0ac83e0d8b3f781beb68f6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/corelib/doc/src/cmake/cmake-macros.qdoc633
-rw-r--r--src/corelib/doc/src/cmake/qt_add_big_resources.qdoc67
-rw-r--r--src/corelib/doc/src/cmake/qt_add_binary_resources.qdoc63
-rw-r--r--src/corelib/doc/src/cmake/qt_add_executable.qdoc119
-rw-r--r--src/corelib/doc/src/cmake/qt_add_resources.qdoc113
-rw-r--r--src/corelib/doc/src/cmake/qt_android_add_apk_target.qdoc72
-rw-r--r--src/corelib/doc/src/cmake/qt_android_apply_arch_suffix.qdoc56
-rw-r--r--src/corelib/doc/src/cmake/qt_android_generate_deployment_settings.qdoc103
-rw-r--r--src/corelib/doc/src/cmake/qt_finalize_target.qdoc67
-rw-r--r--src/corelib/doc/src/cmake/qt_generate_moc.qdoc65
-rw-r--r--src/corelib/doc/src/cmake/qt_import_plugins.qdoc93
-rw-r--r--src/corelib/doc/src/cmake/qt_wrap_cpp.qdoc75
12 files changed, 893 insertions, 633 deletions
diff --git a/src/corelib/doc/src/cmake/cmake-macros.qdoc b/src/corelib/doc/src/cmake/cmake-macros.qdoc
deleted file mode 100644
index 02d33dc445..0000000000
--- a/src/corelib/doc/src/cmake/cmake-macros.qdoc
+++ /dev/null
@@ -1,633 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
-\page qt_wrap_cpp.html
-\ingroup cmake-macros-qtcore
-
-\title qt_wrap_cpp
-\target qt6_wrap_cpp
-
-\brief Creates \c{.moc} files from sources.
-
-\section1 Synopsis
-
-\badcode
-qt_wrap_cpp(<VAR> src_file1 [src_file2 ...]
- [TARGET target]
- [OPTIONS ...]
- [DEPENDS ...])
-
-\endcode
-
-\versionlessCMakeCommandsNote qt6_wrap_cpp()
-
-\section1 Description
-
-Creates rules for calling the \l{moc}{Meta-Object Compiler (moc)} on the given
-source files. For each input file, an output file is generated in the build
-directory. The paths of the generated files are added to \c{<VAR>}.
-
-\note This is a low-level macro. See the \l{CMake AUTOMOC Documentation} for a
-more convenient way to let source files be processed with \c{moc}.
-
-\section1 Arguments
-
-You can set an explicit \c{TARGET}. This will make sure that the target
-properties \c{INCLUDE_DIRECTORIES} and \c{COMPILE_DEFINITIONS} are also used
-when scanning the source files with \c{moc}.
-
-You can set additional \c{OPTIONS} that should be added to the \c{moc} calls.
-You can find possible options in the \l{moc}{moc documentation}.
-
-\c{DEPENDS} allows you to add additional dependencies for recreation of the
-generated files. This is useful when the sources have implicit dependencies,
-like code for a Qt plugin that includes a \c{.json} file using the
-Q_PLUGIN_METADATA() macro.
-
-\section1 Examples
-
-\snippet cmake-macros/examples.cmake qt_wrap_cpp
-*/
-
-/*!
-\page qt_add_resources.html
-\ingroup cmake-macros-qtcore
-
-\title qt_add_resources
-\target qt6_add_resources
-
-\brief Compiles binary resources into source code.
-
-\section1 Synopsis
-
-\badcode
-qt_add_resources(<VAR> file1.qrc [file2.qrc ...]
- [OPTIONS ...])
-\endcode
-
-\versionlessCMakeCommandsNote qt6_add_resources()
-
-Since 6.0:
-
-\badcode
-qt_add_resources(<TARGET> <RESOURCE_NAME>
- [PREFIX <PATH>]
- [LANG <LANGUAGE>]
- [BASE <PATH>]
- [FILES ...] [OPTIONS ...])
-\endcode
-
-\versionlessCMakeCommandsNote qt6_add_resources()
-
-\section1 Description
-
-To add resources, you can pass either a variable name or a target as the first
-argument of the command.
-
-When passing a variable name as first argument, \c qt_add_resources creates
-source code from Qt resource files using the \l{Resource Compiler (rcc)}. Paths
-to the generated source files are added to \c{<VAR>}.
-
-When passing a target as first argument, the function creates a resource with
-the name \c{RESOURCE_NAME}, containing the specified \c{FILES}. The resource is
-automatically linked into \c{TARGET}.
-
-For embedding bigger resources, see \l qt_add_big_resources.
-
-See \l{The Qt Resource System} for a general description of Qt resources.
-
-\section1 Arguments of the target-based variant
-
-\c PREFIX specifies a path prefix under which all files of this resource are
-accessible from C++ code. This corresponds to the XML attribute \c prefix of the
-\c .qrc file format. If \c PREFIX is not given, the target property
-\l{cmake-target-property-QT_RESOURCE_PREFIX}{QT_RESOURCE_PREFIX} is used.
-
-\c LANG specifies the locale of this resource. This corresponds to the XML
-attribute \c lang of the \c .qrc file format.
-
-\c BASE is a path prefix that denotes the root point of the file's alias. For
-example, if \c BASE is \c{"assets"} and \c FILES is
-\c{"assets/images/logo.png"}, then the alias of that file is
-\c{"images/logo.png"}.
-
-Alias settings for files need to be set via the \c QT_RESOURCE_ALIAS source file
-property.
-
-\section1 Arguments of both variants
-
-You can set additional \c{OPTIONS} that should be added to the \c{rcc} calls.
-You can find possible options in the \l{rcc}{rcc documentation}.
-
-\section1 Examples
-
-Variable variant, using a .qrc file:
-\snippet cmake-macros/examples.cmake qt_add_resources
-
-Target variant, using immediate resources:
-\snippet cmake-macros/examples.cmake qt_add_resources_target
-
-\section1 Caveats
-
-When adding multiple resources, \c{RESOURCE_NAME} must be unique across all
-resources linked into the final target.
-
-This especially affects static builds. There, the same resource name in
-different static libraries conflict in the consuming target.
-*/
-
-/*!
-\page qt_add_bigresources.html
-\ingroup cmake-macros-qtcore
-
-\title qt_add_big_resources
-\target qt6_add_big_resources
-
-\brief Compiles big binary resources into object code.
-
-\section1 Synopsis
-
-\badcode
-qt_add_big_resources(<VAR> file1.qrc [file2.qrc ...]
- [OPTIONS ...])
-\endcode
-
-\versionlessCMakeCommandsNote qt6_add_big_resources()
-
-\section1 Description
-
-Creates compiled object files from Qt resource files using the
-\l{Resource Compiler (rcc)}. Paths to the generated files are added to
-\c{<VAR>}.
-
-This is similar to \l qt_add_resources, but directly
-generates object files (\c .o, \c .obj) files instead of C++ source code.
-This allows to embed bigger resources, where compiling to C++ sources and then
-to binaries would be too time consuming or memory intensive.
-
-\note This macro is only available if using \c{CMake} 3.9 or later.
-
-\section1 Arguments
-
-You can set additional \c{OPTIONS} that should be added to the \c{rcc} calls.
-You can find possible options in the \l{rcc}{rcc documentation}.
-
-\section1 Examples
-
-\snippet cmake-macros/examples.cmake qt_add_big_resources
-*/
-
-/*!
-\page qt_add_binary_resources.html
-\ingroup cmake-macros-qtcore
-
-\title qt_add_binary_resources
-\target qt6_add_binary_resources
-
-\brief Creates an \c{RCC} file from a list of Qt resource files.
-
-\section1 Synopsis
-
-\badcode
-qt_add_binary_resources(target file1.qrc [file2.qrc ...]
- [DESTINATION ...]
- [OPTIONS ...])
-\endcode
-
-\versionlessCMakeCommandsNote qt6_add_binary_resources()
-
-\section1 Description
-
-Adds a custom \c target that compiles Qt resource files into a binary \c{.rcc}
-file.
-
-\section1 Arguments
-
-\c{DESTINATION} sets the path of the generated \c{.rcc} file. The default is
-\c{${CMAKE_CURRENT_BINARY_DIR}/${target}.rcc}.
-
-You can set additional \c{OPTIONS} that should be added to the \c{rcc} calls.
-You can find possible options in the \l{rcc}{rcc documentation}.
-
-\section1 Examples
-
-\snippet cmake-macros/examples.cmake qt_add_binary_resources
-*/
-
-/*!
-\page qt_generate_moc.html
-\ingroup cmake-macros-qtcore
-
-\title qt_generate_moc
-\target qt6_generate_moc
-
-\brief Calls moc on an input file.
-
-\section1 Synopsis
-
-\badcode
-qt_generate_moc(src_file dest_file
- [TARGET target])
-\endcode
-
-\versionlessCMakeCommandsNote qt6_generate_moc()
-
-\section1 Description
-
-Creates a rule to call the \l{moc}{Meta-Object Compiler (moc)} on \c src_file
-and store the output in \c dest_file.
-
-\note This is a low-level macro. See the \l{CMake AUTOMOC Documentation} for a
-more convenient way to let source files be processed with \c{moc}.
-\l qt_wrap_cpp is also similar, but automatically generates a temporary file
-path for you.
-
-\section1 Arguments
-
-You can set an explicit \c{TARGET}. This will make sure that the target
-properties \c{INCLUDE_DIRECTORIES} and \c{COMPILE_DEFINITIONS} are also used
-when scanning the source files with \c{moc}.
-
-\section1 Examples
-
-\snippet cmake-macros/examples.cmake qt_generate_moc
-*/
-
-/*!
-\page qt_import_plugins.html
-\ingroup cmake-macros-qtcore
-
-\title qt_import_plugins
-\target qt6_import_plugins
-
-\brief Specifies a custom set of plugins to import for a static Qt build.
-
-\section1 Synopsis
-
-\badcode
-qt_import_plugins(target
- [INCLUDE plugin ...]
- [EXCLUDE plugin ...]
- [INCLUDE_BY_TYPE plugin_type plugin ...]
- [EXCLUDE_BY_TYPE plugin_type])
-\endcode
-
-\versionlessCMakeCommandsNote qt6_import_plugins()
-
-\section1 Description
-
-Specifies a custom set of plugins to import. The optional arguments:
-\c INCLUDE, \c EXCLUDE, \c INCLUDE_BY_TYPE, and \c EXCLUDE_BY_TYPE,
-can be used more than once.
-
-\list
-\li \c INCLUDE -- can be used to specify a list of plugins to import.
-\li \c EXCLUDE -- can be used to specify a list of plugins to exclude.
-\li \c INCLUDE_BY_TYPE -- can be used to override the list of plugins to
- import for a certain plugin type.
-\li \c EXCLUDE_BY_TYPE -- can be used to specify a plugin type to exclude;
- then no plugins of that type are imported.
-\endlist
-
-Qt provides plugin types such as \c imageformats, \c platforms,
-and \c sqldrivers.
-
-If the command isn't used the target automatically links against
-a sane set of default plugins, for each Qt module that the target is linked
-against. For more information, see
-\l{CMake target_link_libraries Documentation}{target_link_libraries}.
-
-Each plugin comes with a C++ stub file that automatically
-initializes the plugin. Consequently, any target that links against a plugin
-has this C++ file added to its \c SOURCES.
-
-\note This command imports plugins from static Qt builds only.
-On shared builds, it does nothing.
-
-\section1 Examples
-
-\snippet cmake-macros/examples.cmake qt_import_plugins
-
-In the snippet above, the following occurs with the executable \c myapp:
-
-\list
-\li The \c Qt6::QCocoaIntegrationPlugin is imported into myapp.
-\li The \c Qt6::QMinimalIntegrationPlugin plugin is
- excluded from being automatically imported into myapp.
-\li The default list of plugins for \c imageformats is
- overridden to only include Qt6::QGifPlugin and Qt6::QJpegPlugin.
-\li All \c sqldrivers plugins are excluded from automatic importing.
-\endlist
-*/
-
-/*!
-\page qt_add_executable.html
-\ingroup cmake-macros-qtcore
-
-\title qt_add_executable
-\target qt6_add_executable
-
-\brief Creates and finalizes an application target of a platform-specific type.
-
-\preliminarycmakecommand
-
-\section1 Synopsis
-
-\badcode
-qt_add_executable(target
- [WIN32] [MACOSX_BUNDLE]
- [MANUAL_FINALIZATION]
- sources...)
-\endcode
-
-\versionlessCMakeCommandsNote qt6_add_executable()
-
-\section1 Description
-
-This command performs the following tasks:
-
-\list
-\li Create a CMake target of the appropriate type for the target platform.
-\li Link the target to the \c{Qt::Core} library.
-\li Handle finalization of the CMake target.
-\endlist
-
-\section2 Target Creation
-
-On all platforms except Android, an executable target will be created.
-All arguments will be passed through to the standard CMake \c{add_executable()}
-command, except \c{MANUAL_FINALIZATION} (if present). On Android, a \c{MODULE}
-library will be created and any \c{WIN32} or \c{MACOSX_BUNDLE} options will be
-ignored. Some target properties will also be set for Android:
-
-\list
-\li The \c{SUFFIX} target property will be set to give the library file name an
- architecture-specific suffix.
-\li Various \c{<lang>_VISIBILITY_PRESET} target properties will be set to
- \c{default} to ensure that the \c{main()} function is visible in the
- resultant binary.
-\endlist
-
-\section2 Linking Qt::Core
-
-Since all Qt applications need to link to the \c{Qt::Core} library, this is done
-for you as a convenience.
-
-\section2 Finalization
-
-After a target is created, further processing or \e{finalization} steps are
-commonly needed. The steps to perform depend on the platform and on various
-properties of the target. The finalization processing is implemented by the
-\l{qt6_finalize_target}{qt_finalize_target()} command.
-
-Finalization can occur either as part of this call or be deferred to sometime
-after this command returns (but it should still be in the same directory scope).
-When using CMake 3.19 or later, finalization is automatically deferred to the
-end of the current directory scope. This gives the caller an opportunity to
-modify properties of the created target before it is finalized. When using
-CMake versions earlier than 3.19, automatic deferral isn't supported. In that
-case, finalization is performed immediately before this command returns.
-
-Regardless of the CMake version, the \c{MANUAL_FINALIZATION} keyword can be given to
-indicate that you will explicitly call \l{qt6_finalize_target}{qt_finalize_target()}
-yourself instead at some later time. In general, \c MANUAL_FINALIZATION should
-not be needed unless the project has to support CMake 3.18 or earlier.
-
-\sa {qt6_finalize_target}{qt_finalize_target()}
-
-\section1 Examples
-
-In the following simple case, finalization is handled automatically. If using a
-CMake version earlier than 3.19, finalization will be performed immediately as
-part of the call. When using CMake 3.19 or later, finalization will occur at the
-end of the current directory scope.
-
-\snippet cmake-macros/examples.cmake qt_add_executable_simple
-
-The following example shows a scenario where finalization must be deferred.
-The \c OUTPUT_NAME target property affects deployment settings on Android, but
-those settings are written out as part of finalizing the target. In order to
-support using CMake versions earlier than 3.19, we take over responsibility
-for finalizing the target by adding the \c{MANUAL_FINALIZATION} keyword.
-
-\snippet cmake-macros/examples.cmake qt_add_executable_deferred
-*/
-
-/*!
-\page qt_finalize_target.html
-\ingroup cmake-macros-qtcore
-
-\title qt_finalize_target
-\target qt6_finalize_target
-
-\brief Handles various common platform-specific tasks associated with Qt targets.
-
-\preliminarycmakecommand
-
-\section1 Synopsis
-
-\badcode
-qt_finalize_target(target)
-\endcode
-
-\versionlessCMakeCommandsNote qt6_finalize_target()
-
-\section1 Description
-
-After a target is created, further processing or \e{finalization} steps are
-commonly needed. The steps to perform depend on the platform and on various
-properties of the target. These steps are expected to be performed within the
-same directory scope as the one in which the \c{target} was created, so this
-command should also be called from that same directory scope.
-
-This command implements the following, as appropriate for the platform and
-target provided:
-
-\list
-\li When targeting Android, generate a deployment settings file for the target.
-\li Create a build target for generating an APK if building for Android.
-\endlist
-
-This command is ordinarily invoked as part of a call to
-\l{qt6_add_executable}{qt_add_executable()}. The timing of when that call takes
-place and when it might need to be called explicitly by a project is discussed
-in the documentation of that command.
-*/
-
-/*!
-\page qt_android_apply_arch_suffix.html
-\ingroup cmake-macros-qtcore
-
-\title qt_android_apply_arch_suffix
-\target qt6_android_apply_arch_suffix
-
-\brief Configures the target binary's name to include an architecture-specific suffix.
-
-\preliminarycmakecommand
-\cmakecommandandroidonly
-
-\section1 Synopsis
-
-\badcode
-qt_android_apply_arch_suffix(target)
-\endcode
-
-\versionlessCMakeCommandsNote qt6_android_apply_arch_suffix()
-
-\section1 Description
-
-The CMake \c{SUFFIX} target property controls the suffix used on the file name
-of the target's built binary. This command is a convenience for setting that
-property to an architecture-specific value. This is useful when installing
-multiple builds for different Android architectures into the same install
-location, as it prevents the libraries for different architectures from
-overwriting each other.
-*/
-
-/*!
-\page qt_android_generate_deployment_settings.html
-\ingroup cmake-macros-qtcore
-
-\title qt_android_generate_deployment_settings
-\target qt6_android_generate_deployment_settings
-
-\brief Generates the deployment settings file needed by androiddeployqt.
-
-\preliminarycmakecommand
-\cmakecommandandroidonly
-
-\section1 Synopsis
-
-\badcode
-qt_android_generate_deployment_settings(target)
-\endcode
-
-\versionlessCMakeCommandsNote qt6_android_generate_deployment_settings()
-
-\section1 Description
-
-The \c{androiddeployqt} tool expects a deployment settings file as input. This
-command reads CMake variables and properties of the \c{target} to generate such
-a file in the target's binary directory. Upon return, the full path to this file
-is available in the target's \c{QT_ANDROID_DEPLOYMENT_SETTINGS_FILE} property.
-
-\section2 CMake Variables
-
-A number of variables are used while generating the deployment settings file.
-Some are provided by Qt, others by CMake or the Android NDK.
-
-\list
-\li \l{cmake-variable-ANDROID_NDK_HOST_SYSTEM_NAME}{ANDROID_NDK_HOST_SYSTEM_NAME}
-\li \l{cmake-variable-ANDROID_SDK_ROOT}{ANDROID_SDK_ROOT}
-\li \c{CMAKE_ANDROID_ARCH_ABI}
-\li \c{CMAKE_ANDROID_NDK}
-\li \c{CMAKE_SYSROOT}
-\li \l{cmake-variable-QT_ANDROID_APPLICATION_ARGUMENTS}{QT_ANDROID_APPLICATION_ARGUMENTS}
-\li \l{cmake-variable-QT_HOST_PATH}{QT_HOST_PATH}
-\endlist
-
-\section2 Target Properties
-
-The properties below will be read from the specified \c{target}. Note that this
-command is called as part of target finalization (see
-\l{qt6_finalize_target}{qt_finalize_target()}). If you are using
-\l{qt6_add_executable}{qt_add_executable()} to create the target and you need to
-modify some of these target properties, you need to ensure that target
-finalization is deferred. See \l{qt6_add_executable}{qt_add_executable()} for
-how to accomplish this.
-
-\list
-\li \l{cmake-target-property-QT_ANDROID_DEPLOYMENT_DEPENDENCIES}{QT_ANDROID_DEPLOYMENT_DEPENDENCIES}
-\li \l{cmake-target-property-QT_ANDROID_EXTRA_LIBS}{QT_ANDROID_EXTRA_LIBS}
-\li \l{cmake-target-property-QT_ANDROID_EXTRA_PLUGINS}{QT_ANDROID_EXTRA_PLUGINS}
-\li \l{cmake-target-property-QT_ANDROID_MIN_SDK_VERSION}{QT_ANDROID_MIN_SDK_VERSION}
-\li \l{cmake-target-property-QT_ANDROID_PACKAGE_SOURCE_DIR}{QT_ANDROID_PACKAGE_SOURCE_DIR}
-\li \l{cmake-target-property-QT_ANDROID_TARGET_SDK_VERSION}{QT_ANDROID_TARGET_SDK_VERSION}
-\li \l{cmake-target-property-QT_ANDROID_VERSION_NAME}{QT_ANDROID_VERSION_NAME}
-\li \l{cmake-target-property-QT_ANDROID_VERSION_CODE}{QT_ANDROID_VERSION_CODE}
-\li \l{cmake-target-property-QT_QML_IMPORT_PATH}{QT_QML_IMPORT_PATH}
-\li \l{cmake-target-property-QT_QML_ROOT_PATH}{QT_QML_ROOT_PATH}
-\li \l{cmake-target-property-qt_no_entrypoint}{qt_no_entrypoint}
-\endlist
-
-Upon return, the \c{QT_ANDROID_DEPLOYMENT_SETTINGS_FILE} target property will
-contain the location of the generated deployment settings file.
-
-\sa {qt6_android_add_apk_target}{qt_android_add_apk_target()},
- {qt6_finalize_target}{qt_finalize_target()}
-
-\section1 Example
-
-\snippet cmake-macros/examples.cmake qt_android_deploy_basic
-*/
-
-/*!
-\page qt_android_add_apk_target.html
-\ingroup cmake-macros-qtcore
-
-\title qt_android_add_apk_target
-\target qt6_android_add_apk_target
-
-\brief Defines a build target that runs androiddeployqt to produce an APK.
-
-\preliminarycmakecommand
-\cmakecommandandroidonly
-
-\section1 Synopsis
-
-\badcode
-qt_android_add_apk_target(target)
-\endcode
-
-\versionlessCMakeCommandsNote qt6_android_add_apk_target()
-
-\section1 Description
-
-The \c{<target>_make_apk} custom target created by this command takes an Android
-deployment settings file and generates an APK by running \c{androiddeployqt}.
-The location of the settings file is taken from the \c{target}'s
-\c{QT_ANDROID_DEPLOYMENT_SETTINGS_FILE} property. This file is typically created by
-\l{qt6_android_generate_deployment_settings}{qt_android_generate_deployment_settings()}.
-The \c{.apk} file will be generated in an \c{android-build} subdirectory below
-the CMake build directory of the \c{target}.
-
-The \c{<target>_make_apk} target will be automatically added as a dependency of
-the \c{apk} build target, which will be created if it doesn't already exist.
-This can be disabled by setting the \c{QT_NO_GLOBAL_APK_TARGET} variable to true.
-
-\sa {qt6_android_generate_deployment_settings}{qt_android_generate_deployment_settings()},
- {qt6_finalize_target}{qt_finalize_target()}
-
-\section1 Example
-
-\snippet cmake-macros/examples.cmake qt_android_deploy_basic
-
-The above commands define the build targets \c{myapp_make_apk} and \c{apk},
-which can be used to generate just the \c{myapp} APK or all APKs in the project
-respectively.
-*/
diff --git a/src/corelib/doc/src/cmake/qt_add_big_resources.qdoc b/src/corelib/doc/src/cmake/qt_add_big_resources.qdoc
new file mode 100644
index 0000000000..02e85763e7
--- /dev/null
+++ b/src/corelib/doc/src/cmake/qt_add_big_resources.qdoc
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\page qt_add_bigresources.html
+\ingroup cmake-macros-qtcore
+
+\title qt_add_big_resources
+\target qt6_add_big_resources
+
+\brief Compiles big binary resources into object code.
+
+\section1 Synopsis
+
+\badcode
+qt_add_big_resources(<VAR> file1.qrc [file2.qrc ...]
+ [OPTIONS ...])
+\endcode
+
+\versionlessCMakeCommandsNote qt6_add_big_resources()
+
+\section1 Description
+
+Creates compiled object files from Qt resource files using the
+\l{Resource Compiler (rcc)}. Paths to the generated files are added to
+\c{<VAR>}.
+
+This is similar to \l qt_add_resources, but directly
+generates object files (\c .o, \c .obj) files instead of C++ source code.
+This allows to embed bigger resources, where compiling to C++ sources and then
+to binaries would be too time consuming or memory intensive.
+
+\note This macro is only available if using \c{CMake} 3.9 or later.
+
+\section1 Arguments
+
+You can set additional \c{OPTIONS} that should be added to the \c{rcc} calls.
+You can find possible options in the \l{rcc}{rcc documentation}.
+
+\section1 Examples
+
+\snippet cmake-macros/examples.cmake qt_add_big_resources
+*/
diff --git a/src/corelib/doc/src/cmake/qt_add_binary_resources.qdoc b/src/corelib/doc/src/cmake/qt_add_binary_resources.qdoc
new file mode 100644
index 0000000000..b432037f8c
--- /dev/null
+++ b/src/corelib/doc/src/cmake/qt_add_binary_resources.qdoc
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\page qt_add_binary_resources.html
+\ingroup cmake-macros-qtcore
+
+\title qt_add_binary_resources
+\target qt6_add_binary_resources
+
+\brief Creates an \c{RCC} file from a list of Qt resource files.
+
+\section1 Synopsis
+
+\badcode
+qt_add_binary_resources(target file1.qrc [file2.qrc ...]
+ [DESTINATION ...]
+ [OPTIONS ...])
+\endcode
+
+\versionlessCMakeCommandsNote qt6_add_binary_resources()
+
+\section1 Description
+
+Adds a custom \c target that compiles Qt resource files into a binary \c{.rcc}
+file.
+
+\section1 Arguments
+
+\c{DESTINATION} sets the path of the generated \c{.rcc} file. The default is
+\c{${CMAKE_CURRENT_BINARY_DIR}/${target}.rcc}.
+
+You can set additional \c{OPTIONS} that should be added to the \c{rcc} calls.
+You can find possible options in the \l{rcc}{rcc documentation}.
+
+\section1 Examples
+
+\snippet cmake-macros/examples.cmake qt_add_binary_resources
+*/
diff --git a/src/corelib/doc/src/cmake/qt_add_executable.qdoc b/src/corelib/doc/src/cmake/qt_add_executable.qdoc
new file mode 100644
index 0000000000..ce2c41a978
--- /dev/null
+++ b/src/corelib/doc/src/cmake/qt_add_executable.qdoc
@@ -0,0 +1,119 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\page qt_add_executable.html
+\ingroup cmake-macros-qtcore
+
+\title qt_add_executable
+\target qt6_add_executable
+
+\brief Creates and finalizes an application target of a platform-specific type.
+
+\preliminarycmakecommand
+
+\section1 Synopsis
+
+\badcode
+qt_add_executable(target
+ [WIN32] [MACOSX_BUNDLE]
+ [MANUAL_FINALIZATION]
+ sources...)
+\endcode
+
+\versionlessCMakeCommandsNote qt6_add_executable()
+
+\section1 Description
+
+This command performs the following tasks:
+
+\list
+\li Create a CMake target of the appropriate type for the target platform.
+\li Link the target to the \c{Qt::Core} library.
+\li Handle finalization of the CMake target.
+\endlist
+
+\section2 Target Creation
+
+On all platforms except Android, an executable target will be created.
+All arguments will be passed through to the standard CMake \c{add_executable()}
+command, except \c{MANUAL_FINALIZATION} (if present). On Android, a \c{MODULE}
+library will be created and any \c{WIN32} or \c{MACOSX_BUNDLE} options will be
+ignored. Some target properties will also be set for Android:
+
+\list
+\li The \c{SUFFIX} target property will be set to give the library file name an
+ architecture-specific suffix.
+\li Various \c{<lang>_VISIBILITY_PRESET} target properties will be set to
+ \c{default} to ensure that the \c{main()} function is visible in the
+ resultant binary.
+\endlist
+
+\section2 Linking Qt::Core
+
+Since all Qt applications need to link to the \c{Qt::Core} library, this is done
+for you as a convenience.
+
+\section2 Finalization
+
+After a target is created, further processing or \e{finalization} steps are
+commonly needed. The steps to perform depend on the platform and on various
+properties of the target. The finalization processing is implemented by the
+\l{qt6_finalize_target}{qt_finalize_target()} command.
+
+Finalization can occur either as part of this call or be deferred to sometime
+after this command returns (but it should still be in the same directory scope).
+When using CMake 3.19 or later, finalization is automatically deferred to the
+end of the current directory scope. This gives the caller an opportunity to
+modify properties of the created target before it is finalized. When using
+CMake versions earlier than 3.19, automatic deferral isn't supported. In that
+case, finalization is performed immediately before this command returns.
+
+Regardless of the CMake version, the \c{MANUAL_FINALIZATION} keyword can be given to
+indicate that you will explicitly call \l{qt6_finalize_target}{qt_finalize_target()}
+yourself instead at some later time. In general, \c MANUAL_FINALIZATION should
+not be needed unless the project has to support CMake 3.18 or earlier.
+
+\sa {qt6_finalize_target}{qt_finalize_target()}
+
+\section1 Examples
+
+In the following simple case, finalization is handled automatically. If using a
+CMake version earlier than 3.19, finalization will be performed immediately as
+part of the call. When using CMake 3.19 or later, finalization will occur at the
+end of the current directory scope.
+
+\snippet cmake-macros/examples.cmake qt_add_executable_simple
+
+The following example shows a scenario where finalization must be deferred.
+The \c OUTPUT_NAME target property affects deployment settings on Android, but
+those settings are written out as part of finalizing the target. In order to
+support using CMake versions earlier than 3.19, we take over responsibility
+for finalizing the target by adding the \c{MANUAL_FINALIZATION} keyword.
+
+\snippet cmake-macros/examples.cmake qt_add_executable_deferred
+*/
diff --git a/src/corelib/doc/src/cmake/qt_add_resources.qdoc b/src/corelib/doc/src/cmake/qt_add_resources.qdoc
new file mode 100644
index 0000000000..af903721b6
--- /dev/null
+++ b/src/corelib/doc/src/cmake/qt_add_resources.qdoc
@@ -0,0 +1,113 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\page qt_add_resources.html
+\ingroup cmake-macros-qtcore
+
+\title qt_add_resources
+\target qt6_add_resources
+
+\brief Compiles binary resources into source code.
+
+\section1 Synopsis
+
+\badcode
+qt_add_resources(<VAR> file1.qrc [file2.qrc ...]
+ [OPTIONS ...])
+\endcode
+
+\versionlessCMakeCommandsNote qt6_add_resources()
+
+Since 6.0:
+
+\badcode
+qt_add_resources(<TARGET> <RESOURCE_NAME>
+ [PREFIX <PATH>]
+ [LANG <LANGUAGE>]
+ [BASE <PATH>]
+ [FILES ...] [OPTIONS ...])
+\endcode
+
+\versionlessCMakeCommandsNote qt6_add_resources()
+
+\section1 Description
+
+To add resources, you can pass either a variable name or a target as the first
+argument of the command.
+
+When passing a variable name as first argument, \c qt_add_resources creates
+source code from Qt resource files using the \l{Resource Compiler (rcc)}. Paths
+to the generated source files are added to \c{<VAR>}.
+
+When passing a target as first argument, the function creates a resource with
+the name \c{RESOURCE_NAME}, containing the specified \c{FILES}. The resource is
+automatically linked into \c{TARGET}.
+
+For embedding bigger resources, see \l qt_add_big_resources.
+
+See \l{The Qt Resource System} for a general description of Qt resources.
+
+\section1 Arguments of the target-based variant
+
+\c PREFIX specifies a path prefix under which all files of this resource are
+accessible from C++ code. This corresponds to the XML attribute \c prefix of the
+\c .qrc file format. If \c PREFIX is not given, the target property
+\l{cmake-target-property-QT_RESOURCE_PREFIX}{QT_RESOURCE_PREFIX} is used.
+
+\c LANG specifies the locale of this resource. This corresponds to the XML
+attribute \c lang of the \c .qrc file format.
+
+\c BASE is a path prefix that denotes the root point of the file's alias. For
+example, if \c BASE is \c{"assets"} and \c FILES is
+\c{"assets/images/logo.png"}, then the alias of that file is
+\c{"images/logo.png"}.
+
+Alias settings for files need to be set via the \c QT_RESOURCE_ALIAS source file
+property.
+
+\section1 Arguments of both variants
+
+You can set additional \c{OPTIONS} that should be added to the \c{rcc} calls.
+You can find possible options in the \l{rcc}{rcc documentation}.
+
+\section1 Examples
+
+Variable variant, using a .qrc file:
+\snippet cmake-macros/examples.cmake qt_add_resources
+
+Target variant, using immediate resources:
+\snippet cmake-macros/examples.cmake qt_add_resources_target
+
+\section1 Caveats
+
+When adding multiple resources, \c{RESOURCE_NAME} must be unique across all
+resources linked into the final target.
+
+This especially affects static builds. There, the same resource name in
+different static libraries conflict in the consuming target.
+*/
diff --git a/src/corelib/doc/src/cmake/qt_android_add_apk_target.qdoc b/src/corelib/doc/src/cmake/qt_android_add_apk_target.qdoc
new file mode 100644
index 0000000000..afb31d6749
--- /dev/null
+++ b/src/corelib/doc/src/cmake/qt_android_add_apk_target.qdoc
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\page qt_android_add_apk_target.html
+\ingroup cmake-macros-qtcore
+
+\title qt_android_add_apk_target
+\target qt6_android_add_apk_target
+
+\brief Defines a build target that runs androiddeployqt to produce an APK.
+
+\preliminarycmakecommand
+\cmakecommandandroidonly
+
+\section1 Synopsis
+
+\badcode
+qt_android_add_apk_target(target)
+\endcode
+
+\versionlessCMakeCommandsNote qt6_android_add_apk_target()
+
+\section1 Description
+
+The \c{<target>_make_apk} custom target created by this command takes an Android
+deployment settings file and generates an APK by running \c{androiddeployqt}.
+The location of the settings file is taken from the \c{target}'s
+\c{QT_ANDROID_DEPLOYMENT_SETTINGS_FILE} property. This file is typically created by
+\l{qt6_android_generate_deployment_settings}{qt_android_generate_deployment_settings()}.
+The \c{.apk} file will be generated in an \c{android-build} subdirectory below
+the CMake build directory of the \c{target}.
+
+The \c{<target>_make_apk} target will be automatically added as a dependency of
+the \c{apk} build target, which will be created if it doesn't already exist.
+This can be disabled by setting the \c{QT_NO_GLOBAL_APK_TARGET} variable to true.
+
+\sa {qt6_android_generate_deployment_settings}{qt_android_generate_deployment_settings()},
+ {qt6_finalize_target}{qt_finalize_target()}
+
+\section1 Example
+
+\snippet cmake-macros/examples.cmake qt_android_deploy_basic
+
+The above commands define the build targets \c{myapp_make_apk} and \c{apk},
+which can be used to generate just the \c{myapp} APK or all APKs in the project
+respectively.
+*/
diff --git a/src/corelib/doc/src/cmake/qt_android_apply_arch_suffix.qdoc b/src/corelib/doc/src/cmake/qt_android_apply_arch_suffix.qdoc
new file mode 100644
index 0000000000..6d11d2ae14
--- /dev/null
+++ b/src/corelib/doc/src/cmake/qt_android_apply_arch_suffix.qdoc
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\page qt_android_apply_arch_suffix.html
+\ingroup cmake-macros-qtcore
+
+\title qt_android_apply_arch_suffix
+\target qt6_android_apply_arch_suffix
+
+\brief Configures the target binary's name to include an architecture-specific suffix.
+
+\preliminarycmakecommand
+\cmakecommandandroidonly
+
+\section1 Synopsis
+
+\badcode
+qt_android_apply_arch_suffix(target)
+\endcode
+
+\versionlessCMakeCommandsNote qt6_android_apply_arch_suffix()
+
+\section1 Description
+
+The CMake \c{SUFFIX} target property controls the suffix used on the file name
+of the target's built binary. This command is a convenience for setting that
+property to an architecture-specific value. This is useful when installing
+multiple builds for different Android architectures into the same install
+location, as it prevents the libraries for different architectures from
+overwriting each other.
+*/
diff --git a/src/corelib/doc/src/cmake/qt_android_generate_deployment_settings.qdoc b/src/corelib/doc/src/cmake/qt_android_generate_deployment_settings.qdoc
new file mode 100644
index 0000000000..e7880b7256
--- /dev/null
+++ b/src/corelib/doc/src/cmake/qt_android_generate_deployment_settings.qdoc
@@ -0,0 +1,103 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\page qt_android_generate_deployment_settings.html
+\ingroup cmake-macros-qtcore
+
+\title qt_android_generate_deployment_settings
+\target qt6_android_generate_deployment_settings
+
+\brief Generates the deployment settings file needed by androiddeployqt.
+
+\preliminarycmakecommand
+\cmakecommandandroidonly
+
+\section1 Synopsis
+
+\badcode
+qt_android_generate_deployment_settings(target)
+\endcode
+
+\versionlessCMakeCommandsNote qt6_android_generate_deployment_settings()
+
+\section1 Description
+
+The \c{androiddeployqt} tool expects a deployment settings file as input. This
+command reads CMake variables and properties of the \c{target} to generate such
+a file in the target's binary directory. Upon return, the full path to this file
+is available in the target's \c{QT_ANDROID_DEPLOYMENT_SETTINGS_FILE} property.
+
+\section2 CMake Variables
+
+A number of variables are used while generating the deployment settings file.
+Some are provided by Qt, others by CMake or the Android NDK.
+
+\list
+\li \l{cmake-variable-ANDROID_NDK_HOST_SYSTEM_NAME}{ANDROID_NDK_HOST_SYSTEM_NAME}
+\li \l{cmake-variable-ANDROID_SDK_ROOT}{ANDROID_SDK_ROOT}
+\li \c{CMAKE_ANDROID_ARCH_ABI}
+\li \c{CMAKE_ANDROID_NDK}
+\li \c{CMAKE_SYSROOT}
+\li \l{cmake-variable-QT_ANDROID_APPLICATION_ARGUMENTS}{QT_ANDROID_APPLICATION_ARGUMENTS}
+\li \l{cmake-variable-QT_HOST_PATH}{QT_HOST_PATH}
+\endlist
+
+\section2 Target Properties
+
+The properties below will be read from the specified \c{target}. Note that this
+command is called as part of target finalization (see
+\l{qt6_finalize_target}{qt_finalize_target()}). If you are using
+\l{qt6_add_executable}{qt_add_executable()} to create the target and you need to
+modify some of these target properties, you need to ensure that target
+finalization is deferred. See \l{qt6_add_executable}{qt_add_executable()} for
+how to accomplish this.
+
+\list
+\li \l{cmake-target-property-QT_ANDROID_DEPLOYMENT_DEPENDENCIES}{QT_ANDROID_DEPLOYMENT_DEPENDENCIES}
+\li \l{cmake-target-property-QT_ANDROID_EXTRA_LIBS}{QT_ANDROID_EXTRA_LIBS}
+\li \l{cmake-target-property-QT_ANDROID_EXTRA_PLUGINS}{QT_ANDROID_EXTRA_PLUGINS}
+\li \l{cmake-target-property-QT_ANDROID_MIN_SDK_VERSION}{QT_ANDROID_MIN_SDK_VERSION}
+\li \l{cmake-target-property-QT_ANDROID_PACKAGE_SOURCE_DIR}{QT_ANDROID_PACKAGE_SOURCE_DIR}
+\li \l{cmake-target-property-QT_ANDROID_TARGET_SDK_VERSION}{QT_ANDROID_TARGET_SDK_VERSION}
+\li \l{cmake-target-property-QT_ANDROID_VERSION_NAME}{QT_ANDROID_VERSION_NAME}
+\li \l{cmake-target-property-QT_ANDROID_VERSION_CODE}{QT_ANDROID_VERSION_CODE}
+\li \l{cmake-target-property-QT_QML_IMPORT_PATH}{QT_QML_IMPORT_PATH}
+\li \l{cmake-target-property-QT_QML_ROOT_PATH}{QT_QML_ROOT_PATH}
+\li \l{cmake-target-property-qt_no_entrypoint}{qt_no_entrypoint}
+\endlist
+
+Upon return, the \c{QT_ANDROID_DEPLOYMENT_SETTINGS_FILE} target property will
+contain the location of the generated deployment settings file.
+
+\sa {qt6_android_add_apk_target}{qt_android_add_apk_target()},
+ {qt6_finalize_target}{qt_finalize_target()}
+
+\section1 Example
+
+\snippet cmake-macros/examples.cmake qt_android_deploy_basic
+*/
diff --git a/src/corelib/doc/src/cmake/qt_finalize_target.qdoc b/src/corelib/doc/src/cmake/qt_finalize_target.qdoc
new file mode 100644
index 0000000000..0c921e8c57
--- /dev/null
+++ b/src/corelib/doc/src/cmake/qt_finalize_target.qdoc
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\page qt_finalize_target.html
+\ingroup cmake-macros-qtcore
+
+\title qt_finalize_target
+\target qt6_finalize_target
+
+\brief Handles various common platform-specific tasks associated with Qt targets.
+
+\preliminarycmakecommand
+
+\section1 Synopsis
+
+\badcode
+qt_finalize_target(target)
+\endcode
+
+\versionlessCMakeCommandsNote qt6_finalize_target()
+
+\section1 Description
+
+After a target is created, further processing or \e{finalization} steps are
+commonly needed. The steps to perform depend on the platform and on various
+properties of the target. These steps are expected to be performed within the
+same directory scope as the one in which the \c{target} was created, so this
+command should also be called from that same directory scope.
+
+This command implements the following, as appropriate for the platform and
+target provided:
+
+\list
+\li When targeting Android, generate a deployment settings file for the target.
+\li Create a build target for generating an APK if building for Android.
+\endlist
+
+This command is ordinarily invoked as part of a call to
+\l{qt6_add_executable}{qt_add_executable()}. The timing of when that call takes
+place and when it might need to be called explicitly by a project is discussed
+in the documentation of that command.
+*/
diff --git a/src/corelib/doc/src/cmake/qt_generate_moc.qdoc b/src/corelib/doc/src/cmake/qt_generate_moc.qdoc
new file mode 100644
index 0000000000..5031204b0b
--- /dev/null
+++ b/src/corelib/doc/src/cmake/qt_generate_moc.qdoc
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\page qt_generate_moc.html
+\ingroup cmake-macros-qtcore
+
+\title qt_generate_moc
+\target qt6_generate_moc
+
+\brief Calls moc on an input file.
+
+\section1 Synopsis
+
+\badcode
+qt_generate_moc(src_file dest_file
+ [TARGET target])
+\endcode
+
+\versionlessCMakeCommandsNote qt6_generate_moc()
+
+\section1 Description
+
+Creates a rule to call the \l{moc}{Meta-Object Compiler (moc)} on \c src_file
+and store the output in \c dest_file.
+
+\note This is a low-level macro. See the \l{CMake AUTOMOC Documentation} for a
+more convenient way to let source files be processed with \c{moc}.
+\l qt_wrap_cpp is also similar, but automatically generates a temporary file
+path for you.
+
+\section1 Arguments
+
+You can set an explicit \c{TARGET}. This will make sure that the target
+properties \c{INCLUDE_DIRECTORIES} and \c{COMPILE_DEFINITIONS} are also used
+when scanning the source files with \c{moc}.
+
+\section1 Examples
+
+\snippet cmake-macros/examples.cmake qt_generate_moc
+*/
diff --git a/src/corelib/doc/src/cmake/qt_import_plugins.qdoc b/src/corelib/doc/src/cmake/qt_import_plugins.qdoc
new file mode 100644
index 0000000000..0b3c2011b1
--- /dev/null
+++ b/src/corelib/doc/src/cmake/qt_import_plugins.qdoc
@@ -0,0 +1,93 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\page qt_import_plugins.html
+\ingroup cmake-macros-qtcore
+
+\title qt_import_plugins
+\target qt6_import_plugins
+
+\brief Specifies a custom set of plugins to import for a static Qt build.
+
+\section1 Synopsis
+
+\badcode
+qt_import_plugins(target
+ [INCLUDE plugin ...]
+ [EXCLUDE plugin ...]
+ [INCLUDE_BY_TYPE plugin_type plugin ...]
+ [EXCLUDE_BY_TYPE plugin_type])
+\endcode
+
+\versionlessCMakeCommandsNote qt6_import_plugins()
+
+\section1 Description
+
+Specifies a custom set of plugins to import. The optional arguments:
+\c INCLUDE, \c EXCLUDE, \c INCLUDE_BY_TYPE, and \c EXCLUDE_BY_TYPE,
+can be used more than once.
+
+\list
+\li \c INCLUDE -- can be used to specify a list of plugins to import.
+\li \c EXCLUDE -- can be used to specify a list of plugins to exclude.
+\li \c INCLUDE_BY_TYPE -- can be used to override the list of plugins to
+ import for a certain plugin type.
+\li \c EXCLUDE_BY_TYPE -- can be used to specify a plugin type to exclude;
+ then no plugins of that type are imported.
+\endlist
+
+Qt provides plugin types such as \c imageformats, \c platforms,
+and \c sqldrivers.
+
+If the command isn't used the target automatically links against
+a sane set of default plugins, for each Qt module that the target is linked
+against. For more information, see
+\l{CMake target_link_libraries Documentation}{target_link_libraries}.
+
+Each plugin comes with a C++ stub file that automatically
+initializes the plugin. Consequently, any target that links against a plugin
+has this C++ file added to its \c SOURCES.
+
+\note This command imports plugins from static Qt builds only.
+On shared builds, it does nothing.
+
+\section1 Examples
+
+\snippet cmake-macros/examples.cmake qt_import_plugins
+
+In the snippet above, the following occurs with the executable \c myapp:
+
+\list
+\li The \c Qt6::QCocoaIntegrationPlugin is imported into myapp.
+\li The \c Qt6::QMinimalIntegrationPlugin plugin is
+ excluded from being automatically imported into myapp.
+\li The default list of plugins for \c imageformats is
+ overridden to only include Qt6::QGifPlugin and Qt6::QJpegPlugin.
+\li All \c sqldrivers plugins are excluded from automatic importing.
+\endlist
+*/
diff --git a/src/corelib/doc/src/cmake/qt_wrap_cpp.qdoc b/src/corelib/doc/src/cmake/qt_wrap_cpp.qdoc
new file mode 100644
index 0000000000..e6fe699129
--- /dev/null
+++ b/src/corelib/doc/src/cmake/qt_wrap_cpp.qdoc
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\page qt_wrap_cpp.html
+\ingroup cmake-macros-qtcore
+
+\title qt_wrap_cpp
+\target qt6_wrap_cpp
+
+\brief Creates \c{.moc} files from sources.
+
+\section1 Synopsis
+
+\badcode
+qt_wrap_cpp(<VAR> src_file1 [src_file2 ...]
+ [TARGET target]
+ [OPTIONS ...]
+ [DEPENDS ...])
+
+\endcode
+
+\versionlessCMakeCommandsNote qt6_wrap_cpp()
+
+\section1 Description
+
+Creates rules for calling the \l{moc}{Meta-Object Compiler (moc)} on the given
+source files. For each input file, an output file is generated in the build
+directory. The paths of the generated files are added to \c{<VAR>}.
+
+\note This is a low-level macro. See the \l{CMake AUTOMOC Documentation} for a
+more convenient way to let source files be processed with \c{moc}.
+
+\section1 Arguments
+
+You can set an explicit \c{TARGET}. This will make sure that the target
+properties \c{INCLUDE_DIRECTORIES} and \c{COMPILE_DEFINITIONS} are also used
+when scanning the source files with \c{moc}.
+
+You can set additional \c{OPTIONS} that should be added to the \c{moc} calls.
+You can find possible options in the \l{moc}{moc documentation}.
+
+\c{DEPENDS} allows you to add additional dependencies for recreation of the
+generated files. This is useful when the sources have implicit dependencies,
+like code for a Qt plugin that includes a \c{.json} file using the
+Q_PLUGIN_METADATA() macro.
+
+\section1 Examples
+
+\snippet cmake-macros/examples.cmake qt_wrap_cpp
+*/