【发布时间】:2011-01-10 03:46:24
【问题描述】:
我正在尝试编写一个 CMakeLists.txt 来加快编译速度。
可执行文件依赖于脚本生成的 .cpp 文件:我使用 cppcms Web 应用程序库,它有一个模板系统,其中 .tmpl 在编译期间必须转换为 .cpp 文件,如下所示:
cppcms_tmpl_cc page.tmpl -o page.cpp
有相关问题涉及cmake中bash命令的使用:
How to run a command at compile time within Makefile generated by CMake?
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.cmake。
【问题讨论】: