我正在尝试编写 CMakeLists.txt 以加快编译速度。
可执行文件取决于脚本生成的 .cpp 文件:我使用 cppcms Web 应用程序库,它有一个模板系统,其中 .tmpl 在编译期间必须转换为 .cpp 文件,如下所示:
cppcms_tmpl_cc page.tmpl -o page.cpp
有一些相关的问题涉及在 cmake 中使用 bash 命令:
如何在 CMake 生成的 Makefile 中在编译时运行命令?
CMake : how to use bash command in CMakeLists.txt
这些问题涵盖了我的大部分需求。
我现在想知道的是,每次 page.tmpl 本身发生变化时,如何告诉 cmake 运行上述命令并重新生成 page.cpp,并且只有这样?
目标显然是改善编译时间并使用最新模板获得最新的二进制文件。
(版主可以添加 cppcms 标签吗?)
[编辑:我实际上是在尝试将以下 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 wiki 中添加了关于解决方案的注释:http://art-blog.no-ip.info/wikipp/en/page/cppcms_1x_howto#How.to.compile.the.templates.with
。制作。