[英]add_custom_command from another target
我目前正在嘗試使用兩個可執行文件來設置CMake項目,其中一個是用於為另一個生成代碼的簡單實用程序。 CMakeLists.txt的相關位:
add_executable(lua2c lua2c.c)
add_custom_command(OUTPUT lcode.c COMMAND lua2c lcode.lua lcode.c MAIN_DEPENDENCY lua2c)
...
add_executable(darpem ... lcode.c)
使用此設置,目標lua2c
結束時沒有任何依賴關系,這導致cc
抱怨沒有輸入文件。 如果刪除add_custom_command
行,那么lua2c
會正確構建,但顯然不會生成文件lcode.c
。 在CMake中這可能嗎? 我是否需要添加某種子目錄依賴項?
在Ubuntu 13.04,x86-64上使用CMake 2.8.1版。
注意:對於我的特殊情況,因為lua2c
很簡單,所以我可以使用其他語言。 但是,我仍然對如何實現(對於更復雜的設置)感到好奇。
從文檔中:
請注意, MAIN_DEPENDENCY是完全可選的,並且被用作Visual Studio有關在何處掛載自定義命令的建議。
也許這應該可以解決您的問題:
add_executable(lua2c lua2c.c)
add_custom_command(OUTPUT lcode.c COMMAND lua2c lcode.lua lcode.c DEPENDS lua2c)
# ^^^^^^^
...
add_executable(darpem ... lcode.c)
或者,如果它不起作用,那么這個應該可以:
add_executable(lua2c lua2c.c)
add_custom_command(TARGET lua2c
POST_BUILD
COMMAND lua2c lcode.lua lcode.c )
...
add_executable(darpem ... lcode.c)
add_dependencies( darpem lua2c )
它只是在構建lua2c
之后添加一個構建后事件。 並將lua2c
添加為lua2c
的依賴darpem
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.