1AUTOUIC
2-------
3
4Should the target be processed with auto-uic (for Qt projects).
5
6:prop_tgt:`AUTOUIC` is a boolean specifying whether CMake will handle
7the Qt ``uic`` code generator automatically, i.e. without having to use
8commands like :module:`QT4_WRAP_UI() <FindQt4>`, ``QT5_WRAP_UI()``, etc.
9Currently, Qt versions 4 to 6 are supported.
10
11This property is initialized by the value of the :variable:`CMAKE_AUTOUIC`
12variable if it is set when a target is created.
13
14When this property is ``ON``, CMake will scan the header and source files at
15build time and invoke ``uic`` accordingly.
16
17
18Header and source file processing
19^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20
21At build time, CMake scans each header and source file from the
22target's sources for include statements of the form
23
24.. code-block:: c++
25
26  #include "ui_<ui_base>.h"
27
28Once such an include statement is found in a file, CMake searches for the
29``uic`` input file ``<ui_base>.ui``
30
31- in the vicinity of the file and
32- in the :prop_tgt:`AUTOUIC_SEARCH_PATHS` of the target.
33
34If the ``<ui_base>.ui`` file was found, ``uic`` is called on it to generate
35``ui_<ui_base>.h`` in the directory
36
37- ``<AUTOGEN_BUILD_DIR>/include`` for single configuration generators or in
38- ``<AUTOGEN_BUILD_DIR>/include_<CONFIG>`` for
39  :prop_gbl:`multi configuration <GENERATOR_IS_MULTI_CONFIG>` generators.
40
41Where ``<AUTOGEN_BUILD_DIR>`` is the value of the target property
42:prop_tgt:`AUTOGEN_BUILD_DIR`.
43
44The include directory is automatically added to the target's
45:prop_tgt:`INCLUDE_DIRECTORIES`.
46
47
48Modifiers
49^^^^^^^^^
50
51:prop_tgt:`AUTOUIC_EXECUTABLE`:
52The ``uic`` executable will be detected automatically, but can be forced to
53a certain binary using this target property.
54
55:prop_tgt:`AUTOUIC_OPTIONS`:
56Additional command line options for ``uic`` can be set via this target
57property.  The corresponding :prop_sf:`AUTOUIC_OPTIONS` source file property
58can be used to specify options to be applied only to a specific
59``<base_name>.ui`` file.
60
61:prop_sf:`SKIP_AUTOUIC`:
62Source files can be excluded from :prop_tgt:`AUTOUIC` processing by setting
63this source file property.
64
65:prop_sf:`SKIP_AUTOGEN`:
66Source files can be excluded from :prop_tgt:`AUTOMOC`,
67:prop_tgt:`AUTOUIC` and :prop_tgt:`AUTORCC` processing by
68setting this source file property.
69
70:prop_gbl:`AUTOGEN_TARGETS_FOLDER`:
71This global property can be used to group :prop_tgt:`AUTOMOC`,
72:prop_tgt:`AUTOUIC` and :prop_tgt:`AUTORCC` targets together in an IDE,
73e.g.  in MSVS.
74
75:variable:`CMAKE_GLOBAL_AUTOGEN_TARGET`:
76A global ``autogen`` target, that depends on all :prop_tgt:`AUTOMOC` or
77:prop_tgt:`AUTOUIC` generated ``<ORIGIN>_autogen`` targets in the project,
78will be generated when this variable is ``ON``.
79
80:prop_tgt:`AUTOGEN_PARALLEL`:
81This target property controls the number of ``moc`` or ``uic`` processes to
82start in parallel during builds.
83
84See the :manual:`cmake-qt(7)` manual for more information on using CMake
85with Qt.
86