CMake: Clarify documentation for target and project finalization
Amends 944c424ff601fe546a0ac83e0d8b3f781beb68f6 Amends 63f79d7ffb22de89a2c6314caa5b5a1908590063 Change-Id: Ic8f3376f49b7aaeaa4bf307aa401c54d48cd5c4d Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit b0fef2849b97f9a315018efb49ab9d8974e2c19a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
65a04c3625
commit
3cbb6c1438
@ -60,25 +60,34 @@ for you as a convenience.
|
|||||||
|
|
||||||
After a target is created, further processing or \e{finalization} steps are
|
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
|
commonly needed. The steps to perform depend on the platform and on various
|
||||||
properties of the target. The finalization processing is implemented by the
|
properties of the target.
|
||||||
\l{qt6_finalize_target}{qt_finalize_target()} command. You might need to also
|
|
||||||
call the \l{qt6_finalize_project}{qt_finalize_project()} command at the end
|
|
||||||
of top-level CMakeLists.txt to correctly resolve the dependencies between
|
|
||||||
project targets.
|
|
||||||
|
|
||||||
Finalization can occur either as part of this call or be deferred to sometime
|
The finalization processing is implemented by two commands:
|
||||||
after this command returns (but it should still be in the same directory scope).
|
\l{qt6_finalize_target}{qt_finalize_target()} and
|
||||||
When using CMake 3.19 or later, finalization is automatically deferred to the
|
\l{qt6_finalize_project}{qt_finalize_project()}.
|
||||||
|
|
||||||
|
Target finalization can occur either as part of calling \c{qt_add_executable}
|
||||||
|
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, target finalization is automatically deferred to the
|
||||||
end of the current directory scope. This gives the caller an opportunity to
|
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
|
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
|
CMake versions earlier than 3.19, automatic deferral isn't supported. In that
|
||||||
case, finalization is performed immediately before this command returns.
|
case, target finalization is performed immediately before this command returns.
|
||||||
|
|
||||||
Regardless of the CMake version, the \c{MANUAL_FINALIZATION} keyword can be given to
|
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()}
|
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
|
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.
|
not be needed unless the project has to support CMake 3.18 or earlier.
|
||||||
|
|
||||||
|
Project finalization occurs automatically when using CMake 3.19 or later.
|
||||||
|
When using an older CMake version, you should call
|
||||||
|
\l{qt6_finalize_project}{qt_finalize_project()} manually, at the end
|
||||||
|
of the root \c CMakeLists.txt file.
|
||||||
|
This is especially important when targeting Android, to collect dependencies
|
||||||
|
between project targets for deployment purposes.
|
||||||
|
|
||||||
\sa {qt6_finalize_target}{qt_finalize_target()},
|
\sa {qt6_finalize_target}{qt_finalize_target()},
|
||||||
{qt6_set_finalizer_mode}{qt_set_finalizer_mode()},
|
{qt6_set_finalizer_mode}{qt_set_finalizer_mode()},
|
||||||
{qt6_add_library}{qt_add_library()},
|
{qt6_add_library}{qt_add_library()},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user