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