Spec-Zone.ru › CMake 3.10

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 см. в руководстве cmake-qt(7).

Пример

Предположим, файл 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.10/prop_tgt/AUTOMOC_DEPEND_FILTERS.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API