# AUTOMOC_DEPEND_FILTERS

Filter definitions used by `AUTOMOC` to extract file names from source code as additional dependencies for the `moc` file.

This property is only used if the `AUTOMOC` property is `ON` for this target.

Filters are defined as `KEYWORD;REGULAR_EXPRESSION` pairs. First the file content is searched for `KEYWORD`. If it is found at least once, then file names are extracted by successively searching for `REGULAR_EXPRESSION` and taking the first match group.

Consider a filter extracts the file name `DEP` from the content of a file `FOO`. If `DEP` changes, then the `moc` file for `FOO` gets rebuilt. The file `DEP` is searched for first in the vicinity of `FOO` and afterwards in the target’s `INCLUDE_DIRECTORIES`.

By default `AUTOMOC_DEPEND_FILTERS` is initialized from `CMAKE_AUTOMOC_DEPEND_FILTERS`, which is empty by default.

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

## Example

Consider a file `FOO.hpp` holds a custom macro `OBJ_JSON_FILE` and we want the `moc` file to depend on the macro`s file name argument:

    class My_Class : public QObject
    {
      Q_OBJECT
      OBJ_JSON_FILE ( "DEP.json" )
    ...
    };

Then we might use `CMAKE_AUTOMOC_DEPEND_FILTERS` to define a filter like this:

    set(CMAKE_AUTOMOC_DEPEND_FILTERS
      "OBJ_JSON_FILE" "[\n][ \t]*OBJ_JSON_FILE[ \t]*\\([ \t]*\"([^\"]+)\""
    )