Обновления генератора заголовков CMake - PullRequest
1 голос
/ 02 октября 2011

В CMake у меня сейчас есть простой скрипт Python для генерации заголовка, но если я обновлю сам скрипт, CMake не будет перезапускать скрипт. Есть ли способ заставить CMake сделать это?

1 Ответ

2 голосов
/ 02 октября 2011

Кажется, вы напрямую вызываете свой скрипт генерации кода при запуске cmake.Хотя это возможно решение, но это определенно не правильный способ использовать генераторы кода с cmake.

Я рекомендую вам использовать add_custom_command для вашего случая:

add_custom_command(
   OUTPUT generated.h
   COMMAND ${PYTHON_EXECUTABLE} generator.py
   DEPENDS generator.py
   )

И рядом выМожно просто поместить свой заголовок в список исходных файлов, передаваемых командам add_library / add_executable.cmake автоматически отследит все зависимости и вызовет ваш скрипт.

Term DEPENDS generator.py информирует cmake о том, что он должен восстановить заголовок при изменении скрипта.

При таком подходе будет сгенерирован файл generated.hтолько во время сборки (когда вы запускаете make или выполняете команду построения в IDE).Напротив, если вы запускаете ваш скрипт во время cmake (с помощью команды execute_process), то вам нужно перезапустить cmake, чтобы восстановить ваш файл.Это возможно, но вам нужно использовать некоторые приемы для введения нестандартной зависимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...