The old documentation stated that "all header files" were considered, which was not true for any sensible definition of "all header files". Only header files with certain names are considered. Document the filename patterns matched for parsing.
35 lines
1.8 KiB
ReStructuredText
35 lines
1.8 KiB
ReStructuredText
AUTOMOC
|
|
-------
|
|
|
|
Should the target be processed with automoc (for Qt projects).
|
|
|
|
AUTOMOC is a boolean specifying whether CMake will handle the Qt ``moc``
|
|
preprocessor automatically, i.e. without having to use the
|
|
:module:`QT4_WRAP_CPP() <FindQt4>` or QT5_WRAP_CPP() macro. Currently Qt4 and Qt5 are
|
|
supported. When this property is set to ``TRUE``, CMake will scan the
|
|
source files at build time and invoke moc accordingly. If an ``#include``
|
|
statement like ``#include "moc_foo.cpp"`` is found, the ``Q_OBJECT`` class
|
|
declaration is expected in the header, and ``moc`` is run on the header
|
|
file. If an ``#include`` statement like ``#include "foo.moc"`` is found, then
|
|
a ``Q_OBJECT`` is expected in the current source file and ``moc`` is run on
|
|
the file itself. Additionally, header files with the same base name (like
|
|
``foo.h``) or ``_p`` appended to the base name (like ``foo_p.h``) are parsed
|
|
for ``Q_OBJECT`` macros, and if found, ``moc`` is also executed on those files.
|
|
``AUTOMOC`` checks multiple header alternative extensions, such as
|
|
``hpp``, ``hxx`` etc when searching for headers.
|
|
The resulting moc files, which are not included as shown above in any
|
|
of the source files are included in a generated
|
|
``<targetname>_automoc.cpp`` file, which is compiled as part of the
|
|
target. This property is initialized by the value of the variable
|
|
:variable:`CMAKE_AUTOMOC` if it is set when a target is created.
|
|
|
|
Additional command line options for moc can be set via the
|
|
:prop_tgt:`AUTOMOC_MOC_OPTIONS` property.
|
|
|
|
By setting the :variable:`CMAKE_AUTOMOC_RELAXED_MODE` variable to ``TRUE`` the
|
|
rules for searching the files which will be processed by moc can be relaxed.
|
|
See the documentation for this variable for more details.
|
|
|
|
The global property :prop_gbl:`AUTOMOC_TARGETS_FOLDER` can be used to group the
|
|
automoc targets together in an IDE, e.g. in MSVS.
|