0

我的 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 is not found。

在包含之前有什么方法可以让 oem.cmake 生成?

4

1 回答 1

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 中。也许您必须转义<>字符。

于 2013-02-04T13:47:27.593 回答