File: AUTOMOC_PATH_PREFIX.rst

package info (click to toggle)
cmake 4.2.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 152,456 kB
  • sloc: ansic: 403,896; cpp: 303,920; sh: 4,105; python: 3,583; yacc: 3,106; lex: 1,279; f90: 538; asm: 471; lisp: 375; cs: 270; java: 266; fortran: 239; objc: 215; perl: 213; xml: 198; makefile: 111; javascript: 83; pascal: 63; tcl: 55; php: 25; ruby: 22
file content (33 lines) | stat: -rw-r--r-- 1,272 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
AUTOMOC_PATH_PREFIX
-------------------

.. versionadded:: 3.16

When this property is ``ON``, CMake will generate the ``-p`` path prefix
option for ``moc`` on :prop_tgt:`AUTOMOC` enabled Qt targets.

To generate the path prefix, CMake tests if the header compiled by ``moc``
is in any of the target
:command:`include directories <target_include_directories>`.  If so, CMake will
compute the relative path accordingly.  If the header is not in the
:command:`include directories <target_include_directories>`, CMake will omit
the ``-p`` path prefix option.  ``moc`` usually generates a
relative include path in that case.

``AUTOMOC_PATH_PREFIX`` is initialized from the variable
:variable:`CMAKE_AUTOMOC_PATH_PREFIX`, which is ``OFF`` by default.

See the :manual:`cmake-qt(7)` manual for more information on using CMake
with Qt.

Reproducible builds
^^^^^^^^^^^^^^^^^^^

For reproducible builds it is recommended to keep headers that are ``moc``
compiled in one of the target
:command:`include directories <target_include_directories>` and set
``AUTOMOC_PATH_PREFIX`` to ``ON``.  This ensures that:

- ``moc`` output files are identical on different build setups,
- ``moc`` output files will compile correctly when the source and/or
  build directory is a symbolic link.