summaryrefslogtreecommitdiffstats
path: root/src/corelib/doc/src/cmake/qt_finalize_target.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/doc/src/cmake/qt_finalize_target.qdoc')
-rw-r--r--src/corelib/doc/src/cmake/qt_finalize_target.qdoc89
1 files changed, 89 insertions, 0 deletions
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..b74dee64d2
--- /dev/null
+++ b/src/corelib/doc/src/cmake/qt_finalize_target.qdoc
@@ -0,0 +1,89 @@
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
+
+/*!
+\page qt-finalize-target.html
+\ingroup cmake-commands-qtcore
+
+\title qt_finalize_target
+\keyword qt6_finalize_target
+
+\summary {Handles various common platform-specific tasks associated with Qt targets.}
+
+\include cmake-find-package-core.qdocinc
+
+\cmakecommandsince 6.2
+
+\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
+sometimes needed. The steps to perform depend on the platform, the type of
+target, 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 is ordinarily invoked as part of a call to
+\l{qt6_add_executable}{qt_add_executable()},
+\l{qt6_add_library}{qt_add_library()}, or \l{qt6_add_plugin}{qt_add_plugin()}.
+The timing of when that call takes place and when a project might need to call
+it explicitly, is discussed in the documentation of those commands.
+
+\sa {qt6_set_finalizer_mode}{qt_set_finalizer_mode()}
+
+\section1 Executable Targets
+
+For executable targets, \c{qt_finalize_target()} implements the logic described
+in the subsections below, as appropriate for the platform and target provided.
+Later Qt releases may expand finalization processing further.
+
+\section2 All Platforms
+
+Some internal processing is performed to facilitate automatic linking of Qt
+plugins. This is especially important if using a statically built Qt or a
+CMake version earlier than 3.21.
+
+\section2 Android
+
+\list
+\li Generate a deployment settings file for the \c target.
+\li Create a build target for generating an APK.
+\endlist
+
+\section2 WASM
+
+Create \c{${target}.html} (a target-specific \c{wasm_shell.html} file),
+\c{qtloader.js}, and \c{qtlogo.svg} files in the \c{CMAKE_CURRENT_BINARY_DIR}.
+
+\section2 iOS
+
+Finalization attempts to provide sensible values for the following target
+properties if they are not already set, and their corresponding \c{CMAKE_...}
+variable is also not set:
+
+\list
+\li \c XCODE_ATTRIBUTE_DEVELOPMENT_TEAM
+\li \c XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER
+\li \c MACOSX_BUNDLE_GUI_IDENTIFIER
+\endlist
+
+If required, the \l QT_NO_SET_XCODE_DEVELOPMENT_TEAM_ID variable can be used to
+disable setting \c XCODE_ATTRIBUTE_DEVELOPMENT_TEAM, and the
+\l QT_NO_SET_XCODE_BUNDLE_IDENTIFIER variable can be used to disable setting
+\c XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER and \c MACOSX_BUNDLE_GUI_IDENTIFIER.
+
+\section1 Library Targets
+
+As of this Qt version, finalization for library targets does not perform any
+processing. Future Qt versions may add finalization processing for libraries,
+so you should ensure finalization is still invoked in the expected way.
+
+*/