Самый простой способ сделать это:
set_source_files_properties( tags PROPERTIES GENERATED true)
add_custom_command ( OUTPUT tags
COMMAND ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} )
add_executable ( MyProjectOutput tags )
Первая строка сообщает CMake
, что будет сгенерировано tags
.add_custom_command
is CMake
будет генерировать tags
при необходимости, и, наконец, некоторые цели должны зависеть от tags
.Рабочий каталог по умолчанию находится в дереве сборки, поэтому WORKING_DIRECTORY
должно быть установлено в исходное дерево.Это эквивалентно записи в Makefile:
tags:
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
MyProjectOutput: tags
# Whatever here...