2012-03-26 82 views
4

我的cmake構建腳本包含「外部本地makefile」。目標 - 全部依賴於「外部製造」。這個依賴是由cmake完成的。如何重新定義目標「清潔」?

CMakeLists.txt 
     |____(add_custom_target)_____ GNU make file 

但是Target-clean對「external make clean」沒有依賴性。我無法使依賴清潔 - 外部乾淨。我可以創建新的自定義目標(例如newClean),並且依賴於「clean」和「external make clean」。但是「清潔」和「新清潔」存在。這可能是混亂。

你有什麼想法來解決這個問題。

謝謝。

回答

6

有三種可能的解決方案,我能想到的:

  1. 確保從自定義命令的所有輸出文件的輸出線上市,它們將被作爲清潔一部分(這種行爲被提及刪除與CLEAN_NO_CUSTOM屬性)

  2. 添加額外的文件到ADDITIONAL_MAKE_CLEAN_FILES目錄屬性

  3. 創建其中要求正常清潔目標新的自定義命令你的其他make文件,例如

    add_custom_target(really-clean 
        COMMAND "$(CMAKE)" --build "${CMAKE_BINARY_DIR}" clean 
        COMMAND cd "${CMAKE_BINARY_DIR}/otherproject" && make clean 
    ) 
    
+0

遺留構建系統太大由1和2。我試圖選擇選項3,即使它是不明確解決。謝謝.. – 2012-03-27 07:35:10

+1

列出的命令似乎沒有正常運行正常清理;使用'''命令$ {CMAKE_MAKE_PROGRAM}乾淨'''爲我工作。 – 2015-02-06 14:40:52