在CMake中make期间调用可执行文件

时间:2011-11-03 19:00:32

标签: cmake

我有一个代码需要复杂的参数输入。所以我的设计是编写一个编译器,编译一个更简单的C ++代码输入,然后将C ++代码编译成大项目。现在的问题是编译器本身是用C / BISON编写的,我需要在生成C ++代码之前编译它。由于代码的两部分都是使用CMake编写的,是否可以让CMake进行两步编译,即编译编译器,调用编译器生成C ++代码,然后编译生成的C ++代码?

1 个答案:

答案 0 :(得分:2)

是的,有可能。你可以这样做:

add_executable(compiler compiler.c)
add_custom_command(OUTPUT complicated.cpp COMMAND compiler DEPENDS compiler.c)
add_executable(main_program complicated.cpp)

这会从compiler构建您的compiler.c,然后添加一个使用compiler生成complicated.cpp的自定义命令。最后,main_program是根据生成的代码构建的。

add_custom_command有一些more optional parameters,例如向compiler提供命令行参数。如果希望在对编译器进行更改时重新生成DEPENDS compiler.c,则需要将编译器源文件添加为自定义命令的依赖项(即complicated.cpp)。