# AUTOUIC

Should the target be processed with autouic (for Qt projects).

`AUTOUIC` is a boolean specifying whether CMake will handle the Qt `uic` code generator automatically, i.e. without having to use the `QT4_WRAP_UI()` or `QT5_WRAP_UI()` macro. Currently Qt4 and Qt5 are supported.

When this property is `ON`, CMake will scan the source files at build time and invoke `uic` accordingly. If an `#include` statement like `#include "ui_foo.h"` is found in `source.cpp`, a `foo.ui` file is searched for first in the vicinity of `source.cpp` and afterwards in the optional `AUTOUIC_SEARCH_PATHS` of the target. `uic` is run on the `foo.ui` file to generate `ui_foo.h` in the directory `<AUTOGEN_BUILD_DIR>/include`, which is automatically added to the target’s `INCLUDE_DIRECTORIES`.

- For `multi configuration generators`, the include directory is `<AUTOGEN_BUILD_DIR>/include_<CONFIG>`.
- See `AUTOGEN_BUILD_DIR`.

This property is initialized by the value of the `CMAKE_AUTOUIC` variable if it is set when a target is created.

Additional command line options for `uic` can be set via the `AUTOUIC_OPTIONS` source file property on the `foo.ui` file. The global property `AUTOGEN_TARGETS_FOLDER` can be used to group the autouic targets together in an IDE, e.g. in MSVS.

The `uic` executable will be detected automatically, but can be forced to a certain binary using the `AUTOUIC_EXECUTABLE` property.

Source files can be excluded from `AUTOUIC` processing by enabling `SKIP_AUTOUIC` or the broader `SKIP_AUTOGEN`.

The number of parallel `uic` processes to start can be modified by setting `AUTOGEN_PARALLEL`.

A global `autogen` target that depends on all `AUTOUIC` generated `<ORIGIN>_autogen` targets in the project can be generated by enabling `CMAKE_GLOBAL_AUTOGEN_TARGET`.

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