如何在cmake中包含生成的配置?

时间:2013-02-04 11:14:39

标签: cmake

我的CMakeLists.txt需要包含oem.cmake

INCLUDE (oem.cmake)

oem.cmake的内容类似于

SET (PRODUCT_NAME "...")
SET (PRODUCT_VENDOR "...")
...

但必须由lua脚本生成

lua generate_oem_conf.lua "<oem>"

我尝试了ADD_CUSTOM_COMMAND,但它不会被执行并且报告找不到oem.cmake。

在包括?

之前,有什么方法可以让oem.cmake生成

1 个答案:

答案 0 :(得分:1)

问题是,在编译程序时,您运行 add_custoum_command 的命令会运行。
include 需要您在配置期间包含的文件,即运行cmake时。

您可以在配置期间使用execute_process来运行要运行的命令 例如

execute_process(COMMAND "lua" "generate_oem_conf.lua \"<oem>\""
                WORKING_DIRECTORY ${PATH_TO_GEN_LUA_FILE} )

include(oem.cmake) 

为了工作,lua必须在你的PATH中。 也许你必须逃避&lt; &gt; 字符。