AUTOMOC_DEPEND_FILTERS
Определения фильтров, используемые AUTOMOC для извлечения имён файлов из исходного кода в качестве дополнительных зависимостей для moc файла.
Это свойство используется только в том случае, если свойство AUTOMOC установлено в ON для данного целевого объекта.
Фильтры определяются как KEYWORD;REGULAR_EXPRESSION пары. Сначала содержимое файла ищется на наличие KEYWORD. Если оно найдено хотя бы один раз, то имена файлов извлекаются путём последовательного поиска REGULAR_EXPRESSION и взятия первой группы совпадения.
Предположим, фильтр извлекает имя файла DEP из содержимого файла FOO. Если DEP изменяется, тогда moc файл для FOO перестраивается. Файл DEP ищется сначала в окрестностях FOO и затем в директориях целевого объекта INCLUDE_DIRECTORIES.
По умолчанию AUTOMOC_DEPEND_FILTERS инициализируется из CMAKE_AUTOMOC_DEPEND_FILTERS, который по умолчанию пустой.
См. руководство cmake-qt(7) для получения более подробной информации об использовании CMake с Qt.
Пример
Предположим, файл FOO.hpp содержит пользовательское макрос OBJ_JSON_FILE, и мы хотим, чтобы файл moc зависел от имени файла аргумента макроса:
class My_Class : public QObject
{
Q_OBJECT
OBJ_JSON_FILE ( "DEP.json" )
...
};
Тогда мы можем использовать CMAKE_AUTOMOC_DEPEND_FILTERS для определения фильтра следующим образом:
set(CMAKE_AUTOMOC_DEPEND_FILTERS "OBJ_JSON_FILE" "[\n][ \t]*OBJ_JSON_FILE[ \t]*\\([ \t]*\"([^\"]+)\"" )
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.9/prop_tgt/AUTOMOC_DEPEND_FILTERS.html