cmake - запустить пользовательскую команду (ctags) в зависимости от исходного файла - PullRequest
0 голосов
/ 27 апреля 2019

Я пытаюсь настроить файл CMakeLists.txt для моего проекта C, чтобы он запускал ctags, но только при изменении исходных файлов.

Я прочитал ответы здесь , но я не могу получить то, что хочу. У меня было что-то вроде этого:

set (SRCS myprog.c myprog.h)

add_custom_target (
    tags
    COMMAND ctags -R .
    DEPENDS ${SRCS}
    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} )

add_executable ( myprog ${SRCS} )
add_dependencies ( myprog tags )

, который работает, но он всегда запускает ctags, то есть, кажется, игнорирует часть DEPENDS. Если я удалю строку add_dependencies, то у меня будет цель, которую я могу вызвать явно (сделать теги), но по умолчанию она не запускается.

Я пробовал различные комбинации add_custom_target и add_custom_command, но не могу заставить его работать. Он либо всегда запускает команду, либо никогда не выполняет (или только если явно вызывается с тегом target).

Спасибо.

...