mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-07 14:20:06 -06:00
Autogen: Update Documentation
* Add Qt 6 to documentation * Add explanation about `<ORIGIN>_autogen_timestamp_deps` Fixes: #25201
This commit is contained in:
committed by
Brad King
parent
16cc011fa5
commit
ccaf529c4e
@@ -8,7 +8,7 @@ qt_wrap_cpp
|
|||||||
:module:`FindQt4` module provides the ``qt4_wrap_cpp()`` macro, which
|
:module:`FindQt4` module provides the ``qt4_wrap_cpp()`` macro, which
|
||||||
should be used instead for Qt 4 projects. For projects using Qt 5 or
|
should be used instead for Qt 4 projects. For projects using Qt 5 or
|
||||||
later, use the equivalent macro provided by Qt itself (e.g. Qt 5 provides
|
later, use the equivalent macro provided by Qt itself (e.g. Qt 5 provides
|
||||||
``qt5_wrap_cpp()``).
|
`qt5_wrap_cpp() <https://doc.qt.io/qt-5/qtcore-cmake-qt5-wrap-cpp.html>`_).
|
||||||
|
|
||||||
Manually create Qt Wrappers.
|
Manually create Qt Wrappers.
|
||||||
|
|
||||||
|
|||||||
@@ -10,34 +10,39 @@ cmake-qt(7)
|
|||||||
Introduction
|
Introduction
|
||||||
============
|
============
|
||||||
|
|
||||||
CMake can find and use Qt 4 and Qt 5 libraries. The Qt 4 libraries are found
|
CMake can find and use Qt 4, Qt 5 and Qt 6 libraries. The Qt 4 libraries are
|
||||||
by the :module:`FindQt4` find-module shipped with CMake, whereas the
|
found by the :module:`FindQt4` find-module shipped with CMake, whereas the
|
||||||
Qt 5 libraries are found using "Config-file Packages" shipped with Qt 5. See
|
Qt 5 and Qt 6 libraries are found using "Config-file Packages" shipped with
|
||||||
:manual:`cmake-packages(7)` for more information about CMake packages, and
|
Qt 5 and Qt 6. See :manual:`cmake-packages(7)` for more information about CMake
|
||||||
see `the Qt cmake manual <https://doc.qt.io/qt-5/cmake-manual.html>`_
|
packages, and see `the Qt cmake manual`_ for your Qt version.
|
||||||
for your Qt version.
|
|
||||||
|
|
||||||
Qt 4 and Qt 5 may be used together in the same
|
.. _`the Qt cmake manual`: https://doc.qt.io/qt-6/cmake-manual.html
|
||||||
|
|
||||||
|
Qt 4, Qt 5 and Qt 6 may be used together in the same
|
||||||
:manual:`CMake buildsystem <cmake-buildsystem(7)>`:
|
:manual:`CMake buildsystem <cmake-buildsystem(7)>`:
|
||||||
|
|
||||||
.. code-block:: cmake
|
.. code-block:: cmake
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.8.0 FATAL_ERROR)
|
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
||||||
|
|
||||||
project(Qt4And5)
|
project(Qt4_5_6)
|
||||||
|
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
|
|
||||||
find_package(Qt5 COMPONENTS Widgets DBus REQUIRED)
|
find_package(Qt6 COMPONENTS Widgets DBus REQUIRED)
|
||||||
add_executable(publisher publisher.cpp)
|
add_executable(publisher publisher.cpp)
|
||||||
target_link_libraries(publisher Qt5::Widgets Qt5::DBus)
|
target_link_libraries(publisher Qt6::Widgets Qt6::DBus)
|
||||||
|
|
||||||
|
find_package(Qt5 COMPONENTS Gui DBus REQUIRED)
|
||||||
|
add_executable(subscriber1 subscriber1.cpp)
|
||||||
|
target_link_libraries(subscriber1 Qt5::Gui Qt5::DBus)
|
||||||
|
|
||||||
find_package(Qt4 REQUIRED)
|
find_package(Qt4 REQUIRED)
|
||||||
add_executable(subscriber subscriber.cpp)
|
add_executable(subscriber2 subscriber2.cpp)
|
||||||
target_link_libraries(subscriber Qt4::QtGui Qt4::QtDBus)
|
target_link_libraries(subscriber2 Qt4::QtGui Qt4::QtDBus)
|
||||||
|
|
||||||
A CMake target may not link to both Qt 4 and Qt 5. A diagnostic is issued if
|
A CMake target may not link to more than one Qt version. A diagnostic is issued
|
||||||
this is attempted or results from transitive target dependency evaluation.
|
if this is attempted or results from transitive target dependency evaluation.
|
||||||
|
|
||||||
Qt Build Tools
|
Qt Build Tools
|
||||||
==============
|
==============
|
||||||
@@ -46,7 +51,7 @@ Qt relies on some bundled tools for code generation, such as ``moc`` for
|
|||||||
meta-object code generation, ``uic`` for widget layout and population,
|
meta-object code generation, ``uic`` for widget layout and population,
|
||||||
and ``rcc`` for virtual file system content generation. These tools may be
|
and ``rcc`` for virtual file system content generation. These tools may be
|
||||||
automatically invoked by :manual:`cmake(1)` if the appropriate conditions
|
automatically invoked by :manual:`cmake(1)` if the appropriate conditions
|
||||||
are met. The automatic tool invocation may be used with both Qt 4 and Qt 5.
|
are met. The automatic tool invocation may be used with Qt version 4 to 6.
|
||||||
|
|
||||||
.. _`Qt AUTOMOC`:
|
.. _`Qt AUTOMOC`:
|
||||||
|
|
||||||
@@ -158,7 +163,7 @@ should be used when running ``uic``:
|
|||||||
.. code-block:: cmake
|
.. code-block:: cmake
|
||||||
|
|
||||||
add_library(KI18n klocalizedstring.cpp)
|
add_library(KI18n klocalizedstring.cpp)
|
||||||
target_link_libraries(KI18n Qt5::Core)
|
target_link_libraries(KI18n Qt6::Core)
|
||||||
|
|
||||||
# KI18n uses the tr2i18n() function instead of tr(). That function is
|
# KI18n uses the tr2i18n() function instead of tr(). That function is
|
||||||
# declared in the klocalizedstring.h header.
|
# declared in the klocalizedstring.h header.
|
||||||
@@ -213,25 +218,44 @@ overrides options from the :prop_tgt:`AUTORCC_OPTIONS` target property.
|
|||||||
Source files can be excluded from :prop_tgt:`AUTORCC` processing by
|
Source files can be excluded from :prop_tgt:`AUTORCC` processing by
|
||||||
enabling :prop_sf:`SKIP_AUTORCC` or the broader :prop_sf:`SKIP_AUTOGEN`.
|
enabling :prop_sf:`SKIP_AUTORCC` or the broader :prop_sf:`SKIP_AUTOGEN`.
|
||||||
|
|
||||||
|
.. _`<ORIGIN>_autogen`:
|
||||||
|
|
||||||
The ``<ORIGIN>_autogen`` target
|
The ``<ORIGIN>_autogen`` target
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
The ``moc`` and ``uic`` tools are executed as part of a synthesized
|
The ``moc`` and ``uic`` tools are executed as part of a synthesized
|
||||||
``<ORIGIN>_autogen`` :command:`custom target <add_custom_target>` generated by
|
:ref:`<ORIGIN>_autogen` :command:`custom target <add_custom_target>` generated by
|
||||||
CMake. By default that ``<ORIGIN>_autogen`` target inherits the dependencies
|
CMake. By default that :ref:`<ORIGIN>_autogen` target inherits the dependencies
|
||||||
of the ``<ORIGIN>`` target (see :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS`).
|
of the ``<ORIGIN>`` target (see :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS`).
|
||||||
Target dependencies may be added to the ``<ORIGIN>_autogen`` target by adding
|
Target dependencies may be added to the :ref:`<ORIGIN>_autogen` target by adding
|
||||||
them to the :prop_tgt:`AUTOGEN_TARGET_DEPENDS` target property.
|
them to the :prop_tgt:`AUTOGEN_TARGET_DEPENDS` target property.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
If Qt 5.15 or later is used and the generator is either :generator:`Ninja` or
|
||||||
|
:ref:`Makefile Generators`, see :ref:`<ORIGIN>_autogen_timestamp_deps`.
|
||||||
|
|
||||||
|
.. _`<ORIGIN>_autogen_timestamp_deps`:
|
||||||
|
|
||||||
|
The ``<ORIGIN>_autogen_timestamp_deps`` target
|
||||||
|
==============================================
|
||||||
|
|
||||||
|
If Qt 5.15 or later is used and the generator is either :generator:`Ninja` or
|
||||||
|
:ref:`Makefile Generators`, the ``<ORIGIN>_autogen_timestamp_deps`` target is
|
||||||
|
also created in addition to the :ref:`<ORIGIN>_autogen` target. This target
|
||||||
|
does not have any sources or commands to execute, but it has dependencies that
|
||||||
|
were previously inherited by the pre-Qt 5.15 :ref:`<ORIGIN>_autogen` target.
|
||||||
|
These dependencies will serve as a list of order-only dependencies for the
|
||||||
|
custom command, without forcing the custom command to re-execute.
|
||||||
|
|
||||||
Visual Studio Generators
|
Visual Studio Generators
|
||||||
========================
|
========================
|
||||||
|
|
||||||
When using the :manual:`Visual Studio generators <cmake-generators(7)>`, CMake
|
When using the :manual:`Visual Studio generators <cmake-generators(7)>`, CMake
|
||||||
generates a ``PRE_BUILD`` :command:`custom command <add_custom_command>`
|
generates a ``PRE_BUILD`` :command:`custom command <add_custom_command>`
|
||||||
instead of the ``<ORIGIN>_autogen`` :command:`custom target <add_custom_target>`
|
instead of the :ref:`<ORIGIN>_autogen`
|
||||||
(for :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`).
|
:command:`custom target <add_custom_target>` (for :prop_tgt:`AUTOMOC` and
|
||||||
This isn't always possible though and
|
:prop_tgt:`AUTOUIC`). This isn't always possible though and an
|
||||||
an ``<ORIGIN>_autogen`` :command:`custom target <add_custom_target>` is used,
|
:ref:`<ORIGIN>_autogen` :command:`custom target <add_custom_target>` is used,
|
||||||
when either
|
when either
|
||||||
|
|
||||||
- the ``<ORIGIN>`` target depends on :prop_sf:`GENERATED` files which aren't
|
- the ``<ORIGIN>`` target depends on :prop_sf:`GENERATED` files which aren't
|
||||||
|
|||||||
@@ -4,20 +4,29 @@ AUTOGEN_ORIGIN_DEPENDS
|
|||||||
.. versionadded:: 3.14
|
.. versionadded:: 3.14
|
||||||
|
|
||||||
Switch for forwarding origin target dependencies to the corresponding
|
Switch for forwarding origin target dependencies to the corresponding
|
||||||
``_autogen`` target.
|
:ref:`<ORIGIN>_autogen` target.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
If Qt 5.15 or later is used and the generator is either :generator:`Ninja`
|
||||||
|
or :ref:`Makefile Generators`, origin target dependencies are forwarded to
|
||||||
|
the :ref:`<ORIGIN>_autogen_timestamp_deps` target instead of
|
||||||
|
:ref:`<ORIGIN>_autogen`
|
||||||
|
|
||||||
|
|
||||||
Targets which have their :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` property
|
Targets which have their :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` property
|
||||||
``ON`` have a corresponding ``_autogen`` target which generates
|
``ON`` have a corresponding :ref:`<ORIGIN>_autogen` target which generates
|
||||||
``moc`` and ``uic`` files. As this ``_autogen`` target is created at
|
``moc`` and ``uic`` files. As this :ref:`<ORIGIN>_autogen` target is created at
|
||||||
generate-time, it is not possible to define dependencies of it using
|
generate-time, it is not possible to define dependencies of it using
|
||||||
e.g. :command:`add_dependencies`. Instead the
|
e.g. :command:`add_dependencies`. Instead the ``AUTOGEN_ORIGIN_DEPENDS``
|
||||||
``AUTOGEN_ORIGIN_DEPENDS`` target property decides whether the origin
|
target property decides whether the origin target dependencies should be
|
||||||
target dependencies should be forwarded to the ``_autogen`` target or not.
|
forwarded to the :ref:`<ORIGIN>_autogen` target or not.
|
||||||
|
|
||||||
By default ``AUTOGEN_ORIGIN_DEPENDS`` is initialized from
|
By default ``AUTOGEN_ORIGIN_DEPENDS`` is initialized from
|
||||||
:variable:`CMAKE_AUTOGEN_ORIGIN_DEPENDS` which is ``ON`` by default.
|
:variable:`CMAKE_AUTOGEN_ORIGIN_DEPENDS` which is ``ON`` by default.
|
||||||
|
|
||||||
In total the dependencies of the ``_autogen`` target are composed from
|
In total the dependencies of the :ref:`<ORIGIN>_autogen` target are composed
|
||||||
|
from
|
||||||
|
|
||||||
- forwarded origin target dependencies
|
- forwarded origin target dependencies
|
||||||
(enabled by default via ``AUTOGEN_ORIGIN_DEPENDS``)
|
(enabled by default via ``AUTOGEN_ORIGIN_DEPENDS``)
|
||||||
@@ -26,15 +35,14 @@ In total the dependencies of the ``_autogen`` target are composed from
|
|||||||
See the :manual:`cmake-qt(7)` manual for more information on using CMake
|
See the :manual:`cmake-qt(7)` manual for more information on using CMake
|
||||||
with Qt.
|
with Qt.
|
||||||
|
|
||||||
Note
|
.. note::
|
||||||
^^^^
|
|
||||||
|
|
||||||
Disabling ``AUTOGEN_ORIGIN_DEPENDS`` is useful to avoid building of
|
Disabling ``AUTOGEN_ORIGIN_DEPENDS`` is useful to avoid building of
|
||||||
origin target dependencies when building the ``_autogen`` target only.
|
origin target dependencies when building the :ref:`<ORIGIN>_autogen` target
|
||||||
This is especially interesting when a
|
only. This is especially interesting when a
|
||||||
:variable:`global autogen target <CMAKE_GLOBAL_AUTOGEN_TARGET>` is enabled.
|
:variable:`global autogen target <CMAKE_GLOBAL_AUTOGEN_TARGET>` is enabled.
|
||||||
|
|
||||||
When the ``_autogen`` target doesn't require all the origin target's
|
When the :ref:`<ORIGIN>_autogen` target doesn't require all the origin target's
|
||||||
dependencies, and ``AUTOGEN_ORIGIN_DEPENDS`` is disabled, it might be
|
dependencies, and ``AUTOGEN_ORIGIN_DEPENDS`` is disabled, it might be
|
||||||
necessary to extend :prop_tgt:`AUTOGEN_TARGET_DEPENDS` to add missing
|
necessary to extend :prop_tgt:`AUTOGEN_TARGET_DEPENDS` to add missing
|
||||||
dependencies.
|
dependencies.
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ AUTOGEN_PARALLEL
|
|||||||
Number of parallel ``moc`` or ``uic`` processes to start when using
|
Number of parallel ``moc`` or ``uic`` processes to start when using
|
||||||
:prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`.
|
:prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`.
|
||||||
|
|
||||||
The custom ``<origin>_autogen`` target starts a number of threads of which
|
The custom :ref:`<ORIGIN>_autogen` target starts a number of threads of which
|
||||||
each one parses a source file and on demand starts a ``moc`` or ``uic``
|
each one parses a source file and on demand starts a ``moc`` or ``uic``
|
||||||
process. ``AUTOGEN_PARALLEL`` controls how many parallel threads
|
process. ``AUTOGEN_PARALLEL`` controls how many parallel threads
|
||||||
(and therefore ``moc`` or ``uic`` processes) are started.
|
(and therefore ``moc`` or ``uic`` processes) are started.
|
||||||
|
|
||||||
- An empty (or unset) value or the string ``AUTO`` sets the number of
|
- An empty (or unset) value or the string ``AUTO`` sets the number of
|
||||||
|
|||||||
@@ -1,18 +1,28 @@
|
|||||||
AUTOGEN_TARGET_DEPENDS
|
AUTOGEN_TARGET_DEPENDS
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
Additional target dependencies of the corresponding ``_autogen`` target.
|
Additional target dependencies of the corresponding :ref:`<ORIGIN>_autogen`
|
||||||
|
target.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
If Qt 5.15 or later is used and the generator is either :generator:`Ninja`
|
||||||
|
or :ref:`Makefile Generators`, additional target dependencies are added to
|
||||||
|
the :ref:`<ORIGIN>_autogen_timestamp_deps` target instead of the
|
||||||
|
:ref:`<ORIGIN>_autogen` target.
|
||||||
|
|
||||||
|
|
||||||
Targets which have their :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` property
|
Targets which have their :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` property
|
||||||
``ON`` have a corresponding ``_autogen`` target which generates
|
``ON`` have a corresponding :ref:`<ORIGIN>_autogen` target which generates
|
||||||
``moc`` and ``uic`` files. As this ``_autogen`` target is created at
|
``moc`` and ``uic`` files. As this :ref:`<ORIGIN>_autogen` target is created
|
||||||
generate-time, it is not possible to define dependencies of it using
|
at generate-time, it is not possible to define dependencies of it using e.g.
|
||||||
e.g. :command:`add_dependencies`. Instead the
|
:command:`add_dependencies`. Instead the ``AUTOGEN_TARGET_DEPENDS`` target
|
||||||
``AUTOGEN_TARGET_DEPENDS`` target property can be set to a
|
property can be set to a :ref:`;-list <CMake Language Lists>` of additional
|
||||||
:ref:`;-list <CMake Language Lists>` of additional dependencies for the
|
dependencies for the :ref:`<ORIGIN>_autogen` target. Dependencies can be target
|
||||||
``_autogen`` target. Dependencies can be target names or file names.
|
names or file names.
|
||||||
|
|
||||||
In total the dependencies of the ``_autogen`` target are composed from
|
In total the dependencies of the :ref:`<ORIGIN>_autogen` target are composed
|
||||||
|
from
|
||||||
|
|
||||||
- forwarded origin target dependencies
|
- forwarded origin target dependencies
|
||||||
(enabled by default via :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS`)
|
(enabled by default via :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS`)
|
||||||
|
|||||||
@@ -3,11 +3,13 @@ AUTOMOC
|
|||||||
|
|
||||||
Should the target be processed with auto-moc (for Qt projects).
|
Should the target be processed with auto-moc (for Qt projects).
|
||||||
|
|
||||||
``AUTOMOC`` is a boolean specifying whether CMake will handle the Qt
|
``AUTOMOC`` is a boolean specifying whether CMake will handle the Qt ``moc``
|
||||||
``moc`` preprocessor automatically, i.e. without having to use commands like
|
preprocessor automatically, i.e. without having to use commands like
|
||||||
:module:`QT4_WRAP_CPP() <FindQt4>`, ``QT5_WRAP_CPP()``, etc.
|
:module:`QT4_WRAP_CPP() <FindQt4>`, `qt5_wrap_cpp()`_, etc.
|
||||||
Currently, Qt versions 4 to 6 are supported.
|
Currently, Qt versions 4 to 6 are supported.
|
||||||
|
|
||||||
|
.. _qt5_wrap_cpp(): https://doc.qt.io/qt-5/qtcore-cmake-qt5-wrap-cpp.html
|
||||||
|
|
||||||
This property is initialized by the value of the :variable:`CMAKE_AUTOMOC`
|
This property is initialized by the value of the :variable:`CMAKE_AUTOMOC`
|
||||||
variable if it is set when a target is created.
|
variable if it is set when a target is created.
|
||||||
|
|
||||||
@@ -240,7 +242,7 @@ e.g. in MSVS.
|
|||||||
|
|
||||||
:variable:`CMAKE_GLOBAL_AUTOGEN_TARGET`:
|
:variable:`CMAKE_GLOBAL_AUTOGEN_TARGET`:
|
||||||
A global ``autogen`` target, that depends on all ``AUTOMOC`` or
|
A global ``autogen`` target, that depends on all ``AUTOMOC`` or
|
||||||
:prop_tgt:`AUTOUIC` generated ``<ORIGIN>_autogen`` targets in the project,
|
:prop_tgt:`AUTOUIC` generated :ref:`<ORIGIN>_autogen` targets in the project,
|
||||||
will be generated when this variable is ``ON``.
|
will be generated when this variable is ``ON``.
|
||||||
|
|
||||||
:prop_tgt:`AUTOGEN_PARALLEL`:
|
:prop_tgt:`AUTOGEN_PARALLEL`:
|
||||||
|
|||||||
@@ -22,14 +22,14 @@ file gets rebuilt even when the source file itself doesn't change.
|
|||||||
|
|
||||||
If any of the extracted files is :prop_sf:`GENERATED` or if it is not in the
|
If any of the extracted files is :prop_sf:`GENERATED` or if it is not in the
|
||||||
target's sources, then it might be necessary to add it to the
|
target's sources, then it might be necessary to add it to the
|
||||||
``_autogen`` target dependencies.
|
:ref:`<ORIGIN>_autogen` target dependencies.
|
||||||
See :prop_tgt:`AUTOGEN_TARGET_DEPENDS` for reference.
|
See :prop_tgt:`AUTOGEN_TARGET_DEPENDS` for reference.
|
||||||
|
|
||||||
By default ``AUTOMOC_DEPEND_FILTERS`` is initialized from
|
By default ``AUTOMOC_DEPEND_FILTERS`` is initialized from
|
||||||
:variable:`CMAKE_AUTOMOC_DEPEND_FILTERS`, which is empty by default.
|
:variable:`CMAKE_AUTOMOC_DEPEND_FILTERS`, which is empty by default.
|
||||||
|
|
||||||
From Qt 5.15.0 on this variable is ignored as moc is able to output the correct
|
From Qt 5.15.0 on this variable is ignored as ``moc`` is able to output the
|
||||||
dependencies.
|
correct dependencies.
|
||||||
|
|
||||||
See the :manual:`cmake-qt(7)` manual for more information on using CMake
|
See the :manual:`cmake-qt(7)` manual for more information on using CMake
|
||||||
with Qt.
|
with Qt.
|
||||||
|
|||||||
@@ -5,9 +5,11 @@ Should the target be processed with auto-rcc (for Qt projects).
|
|||||||
|
|
||||||
``AUTORCC`` is a boolean specifying whether CMake will handle
|
``AUTORCC`` is a boolean specifying whether CMake will handle
|
||||||
the Qt ``rcc`` code generator automatically, i.e. without having to use
|
the Qt ``rcc`` code generator automatically, i.e. without having to use
|
||||||
commands like :module:`QT4_ADD_RESOURCES() <FindQt4>`, ``QT5_ADD_RESOURCES()``,
|
commands like :module:`QT4_ADD_RESOURCES() <FindQt4>`, `qt5_add_resources()`_,
|
||||||
etc. Currently, Qt versions 4 to 6 are supported.
|
etc. Currently, Qt versions 4 to 6 are supported.
|
||||||
|
|
||||||
|
.. _`qt5_add_resources()`: https://doc.qt.io/qt-5/qtcore-cmake-qt5-add-resources.html
|
||||||
|
|
||||||
When this property is ``ON``, CMake will handle ``.qrc`` files added
|
When this property is ``ON``, CMake will handle ``.qrc`` files added
|
||||||
as target sources at build time and invoke ``rcc`` accordingly.
|
as target sources at build time and invoke ``rcc`` accordingly.
|
||||||
This property is initialized by the value of the :variable:`CMAKE_AUTORCC`
|
This property is initialized by the value of the :variable:`CMAKE_AUTORCC`
|
||||||
|
|||||||
@@ -5,9 +5,11 @@ Should the target be processed with auto-uic (for Qt projects).
|
|||||||
|
|
||||||
``AUTOUIC`` is a boolean specifying whether CMake will handle
|
``AUTOUIC`` is a boolean specifying whether CMake will handle
|
||||||
the Qt ``uic`` code generator automatically, i.e. without having to use
|
the Qt ``uic`` code generator automatically, i.e. without having to use
|
||||||
commands like :module:`QT4_WRAP_UI() <FindQt4>`, ``QT5_WRAP_UI()``, etc.
|
commands like :module:`QT4_WRAP_UI() <FindQt4>`, `qt5_wrap_ui()`_, etc.
|
||||||
Currently, Qt versions 4 to 6 are supported.
|
Currently, Qt versions 4 to 6 are supported.
|
||||||
|
|
||||||
|
.. _`qt5_wrap_ui()`: https://doc.qt.io/qt-5/qtwidgets-cmake-qt5-wrap-ui.html
|
||||||
|
|
||||||
This property is initialized by the value of the :variable:`CMAKE_AUTOUIC`
|
This property is initialized by the value of the :variable:`CMAKE_AUTOUIC`
|
||||||
variable if it is set when a target is created.
|
variable if it is set when a target is created.
|
||||||
|
|
||||||
@@ -74,7 +76,7 @@ e.g. in MSVS.
|
|||||||
|
|
||||||
:variable:`CMAKE_GLOBAL_AUTOGEN_TARGET`:
|
:variable:`CMAKE_GLOBAL_AUTOGEN_TARGET`:
|
||||||
A global ``autogen`` target, that depends on all :prop_tgt:`AUTOMOC` or
|
A global ``autogen`` target, that depends on all :prop_tgt:`AUTOMOC` or
|
||||||
``AUTOUIC`` generated ``<ORIGIN>_autogen`` targets in the project,
|
``AUTOUIC`` generated :ref:`<ORIGIN>_autogen` targets in the project,
|
||||||
will be generated when this variable is ``ON``.
|
will be generated when this variable is ``ON``.
|
||||||
|
|
||||||
:prop_tgt:`AUTOGEN_PARALLEL`:
|
:prop_tgt:`AUTOGEN_PARALLEL`:
|
||||||
|
|||||||
@@ -302,7 +302,7 @@ Autogen
|
|||||||
* A new :variable:`CMAKE_AUTOGEN_ORIGIN_DEPENDS` variable and
|
* A new :variable:`CMAKE_AUTOGEN_ORIGIN_DEPENDS` variable and
|
||||||
:prop_tgt:`AUTOGEN_ORIGIN_DEPENDS` target property may be set to enable or
|
:prop_tgt:`AUTOGEN_ORIGIN_DEPENDS` target property may be set to enable or
|
||||||
disable forwarding of the origin target dependencies to the corresponding
|
disable forwarding of the origin target dependencies to the corresponding
|
||||||
``_autogen`` target.
|
:ref:`<ORIGIN>_autogen` target.
|
||||||
|
|
||||||
CTest
|
CTest
|
||||||
-----
|
-----
|
||||||
|
|||||||
@@ -4,7 +4,14 @@ CMAKE_AUTOGEN_ORIGIN_DEPENDS
|
|||||||
.. versionadded:: 3.14
|
.. versionadded:: 3.14
|
||||||
|
|
||||||
Switch for forwarding origin target dependencies to the corresponding
|
Switch for forwarding origin target dependencies to the corresponding
|
||||||
``_autogen`` targets.
|
:ref:`<ORIGIN>_autogen` targets.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
If Qt 5.15 or later is used and the generator is either :generator:`Ninja`
|
||||||
|
or :ref:`Makefile Generators`, additional target dependencies are added to
|
||||||
|
the :ref:`<ORIGIN>_autogen_timestamp_deps` target instead of the
|
||||||
|
:ref:`<ORIGIN>_autogen` target.
|
||||||
|
|
||||||
This variable is used to initialize the :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS`
|
This variable is used to initialize the :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS`
|
||||||
property on all the targets. See that target property for additional
|
property on all the targets. See that target property for additional
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Switch to enable generation of a global ``autogen`` target.
|
|||||||
|
|
||||||
When ``CMAKE_GLOBAL_AUTOGEN_TARGET`` is enabled, a custom target
|
When ``CMAKE_GLOBAL_AUTOGEN_TARGET`` is enabled, a custom target
|
||||||
``autogen`` is generated. This target depends on all :prop_tgt:`AUTOMOC` and
|
``autogen`` is generated. This target depends on all :prop_tgt:`AUTOMOC` and
|
||||||
:prop_tgt:`AUTOUIC` generated ``<ORIGIN>_autogen`` targets in the project.
|
:prop_tgt:`AUTOUIC` generated :ref:`<ORIGIN>_autogen` targets in the project.
|
||||||
By building the global ``autogen`` target, all :prop_tgt:`AUTOMOC` and
|
By building the global ``autogen`` target, all :prop_tgt:`AUTOMOC` and
|
||||||
:prop_tgt:`AUTOUIC` files in the project will be generated.
|
:prop_tgt:`AUTOUIC` files in the project will be generated.
|
||||||
|
|
||||||
@@ -19,10 +19,9 @@ By default ``CMAKE_GLOBAL_AUTOGEN_TARGET`` is unset.
|
|||||||
See the :manual:`cmake-qt(7)` manual for more information on using CMake
|
See the :manual:`cmake-qt(7)` manual for more information on using CMake
|
||||||
with Qt.
|
with Qt.
|
||||||
|
|
||||||
Note
|
.. note::
|
||||||
^^^^
|
|
||||||
|
|
||||||
``<ORIGIN>_autogen`` targets by default inherit their origin target's
|
:ref:`<ORIGIN>_autogen` targets by default inherit their origin target's
|
||||||
dependencies. This might result in unintended dependency target
|
dependencies. This might result in unintended dependency target builds when
|
||||||
builds when only ``<ORIGIN>_autogen`` targets are built. A solution is to
|
only :ref:`<ORIGIN>_autogen` targets are built. A solution is to disable
|
||||||
disable :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS` on the respective origin targets.
|
:prop_tgt:`AUTOGEN_ORIGIN_DEPENDS` on the respective origin targets.
|
||||||
|
|||||||
Reference in New Issue
Block a user