Help: Improve AUTOMOC documentation layout

This commit is contained in:
Brad King 2016-04-15 14:04:28 -04:00
parent 840b830bc6
commit d350308af6
1 changed files with 23 additions and 16 deletions

View File

@ -6,22 +6,29 @@ Should the target be processed with automoc (for Qt projects).
AUTOMOC is a boolean specifying whether CMake will handle the Qt ``moc`` AUTOMOC is a boolean specifying whether CMake will handle the Qt ``moc``
preprocessor automatically, i.e. without having to use the preprocessor automatically, i.e. without having to use the
:module:`QT4_WRAP_CPP() <FindQt4>` or QT5_WRAP_CPP() macro. Currently Qt4 and Qt5 are :module:`QT4_WRAP_CPP() <FindQt4>` or QT5_WRAP_CPP() macro. Currently Qt4 and Qt5 are
supported. When this property is set ``ON``, CMake will scan the supported.
source files at build time and invoke moc accordingly. If an ``#include``
statement like ``#include "moc_foo.cpp"`` is found, the ``Q_OBJECT`` class When this property is set ``ON``, CMake will scan the
declaration is expected in the header, and ``moc`` is run on the header source files at build time and invoke moc accordingly.
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 * If an ``#include`` statement like ``#include "moc_foo.cpp"`` is found,
the file itself. Additionally, header files with the same base name (like the ``Q_OBJECT`` class declaration is expected in the header, and
``foo.h``) or ``_p`` appended to the base name (like ``foo_p.h``) are parsed ``moc`` is run on the header file.
for ``Q_OBJECT`` macros, and if found, ``moc`` is also executed on those files.
``AUTOMOC`` checks multiple header alternative extensions, such as * If an ``#include`` statement like ``#include "foo.moc"`` is found,
``hpp``, ``hxx`` etc when searching for headers. then a ``Q_OBJECT`` is expected in the current source file and ``moc``
The resulting moc files, which are not included as shown above in any is run on the file itself. Additionally, header files with the same
of the source files are included in a generated base name (like ``foo.h``) or ``_p`` appended to the base name (like
``<targetname>_automoc.cpp`` file, which is compiled as part of the ``foo_p.h``) are parsed for ``Q_OBJECT`` macros, and if found, ``moc``
target. This property is initialized by the value of the is also executed on those files. ``AUTOMOC`` checks multiple header
:variable:`CMAKE_AUTOMOC` variable if it is set when a target is created. 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:`CMAKE_AUTOMOC`
variable if it is set when a target is created.
Additional command line options for moc can be set via the Additional command line options for moc can be set via the
:prop_tgt:`AUTOMOC_MOC_OPTIONS` property. :prop_tgt:`AUTOMOC_MOC_OPTIONS` property.