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が見つからないと報告されます。

含める前に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 に答える