2013-02-04 58 views
0

我的CMakeLists.txt需要包括oem.cmake作爲如何在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

問題是,當您編譯程序時,您向add_custoum_command發出的命令會運行。
包括需要在配置過程中要包含的文件,即運行cmake時。

對於想要在配置期間運行的命令,您可以使用execute_process
例如

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

include(oem.cmake) 

這個工作LUA必須是在你的PATH。 也許你必須逃過<>字符。

+0

謝謝。有用。 – Like