Spec-Zone.ru › CMake 3.9

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

Spec-Zone.ru

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