Cmake: как запустить bash только при обновлении файла?

Я пытаюсь написать CMakeLists.txt для ускорения компиляции.

Исполняемый файл зависит от созданного скриптом файла .cpp: я использую библиотеку веб-приложений cppcms, в которой есть система шаблонов, где .tmpl должен быть преобразован в файлы .cpp во время компиляции следующим образом:

cppcms_tmpl_cc page.tmpl -o page.cpp

Есть связанные вопросы, касающиеся использования bash команды в cmake:
Как выполнить команду во время компиляции в Makefile, созданном CMake?
CMake: как использовать команду bash в CMakeLists.txt
Эти вопросы охватывают большинство моих потребностей.

Сейчас я хочу знать, как указать cmake запускать указанную выше команду и заново генерировать page.cpp каждый раз, когда изменяется сам page.tmpl, и только тогда?

Очевидно, что цель состоит в улучшении время компиляции и иметь обновленный двоичный файл с последним шаблоном.

(может ли модератор добавить тег cppcms?)

[Edit: я действительно пытаюсь преобразовать следующий Makefile в cmake:

LIBS=-lcppcms -lconfig++ -lboost_filesystem-mt

all: clean gitbrowser

gitbrowser: main.cpp view.cpp content.hpp gitbrowser.cpp
       $(CXX) -Wall main.cpp gitbrowser.cpp view.cpp -o run ${LIBS}

view.cpp: page.tmpl content.hpp
       cppcms_tmpl_cc page.tmpl -o view.cpp

[Edit2: Я добавил примечание о решении в официальную вики cppcms:
http://art-blog.no-ip.info/wikipp/en/page/cppcms_1x_howto#How.to.compile. the.templates.with.cmake .

5
задан Community 23 May 2017 в 12:33
поделиться