我正在使用CMake构建我的C ++项目,它有多个可执行文件和一个库(同一项目的所有部分)。一切正常,但我的一个可执行文件是一个代码生成器,它创建了一些库类。我已经让所有代都工作了但是在构建库之前无法弄清楚如何调用这个可执行文件(codegen)。我在Linux环境中。希望有人能回答这个问题。
答案 0 :(得分:17)
在CMakeLists.txt
:
首先,定义您的可执行文件:
add_executable(marks-code-generator gen.cpp)
然后,定义一个自定义命令来生成源:
add_custom_command(OUTPUT generated.cpp generated.hpp
COMMAND marks-code-generator ARGS args here maybe
MAIN_DEPENDENCY input-file.in
DEPENDS marks-code-generator
COMMENT here we go!
VERBATIM)
选项VERBATIM
可确保正确完成特定于平台的转义。 {| 1}}将在make执行时打印出来,提供类似COMMENT
的内容。
最后,在真实程序的源列表中命名生成的源:
[ 66%] here we go!