簡體   English   中英

來自另一個目標的add_custom_command

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM