2016-02-04 19 views
2

依賴我這樣做:add_dependencies對於具有非零退出代碼

add_custom_target(Target1 
     COMMAND Command1 
    ) 
    add_custom_target(Target2 
     COMMAND Command2 
    ) 
    add_dependencies(Target2 Target1) 

但如果Command1有一個非零退出代碼,Command2永遠不會運行。有沒有辦法確保Target2Target1之後運行,但無論Command1的退出代碼是什麼?

+0

你可以隨時在命令的末尾執行一些簡單的語句,所以它會reuturn 0退出代碼(如回聲,例如) – ixSci

+0

@DavideSpataro我只想要一個順序排序(Target1必須在Target2之前運行) - 我不希望Target2依賴於Target1的成功。 –

+0

@ixSci但是,只要其中一個COMMAND返回非零值,add_custom_target立即結束,對吧?所以第二個'echo'指令永遠不會被達到。 –

回答

0

我結束了與此:

file(WRITE ${CMAKE_BINARY_DIR}/NoExitCodeTests.cmake "execute_process(COMMAND ctest)") 

    add_custom_target(Target1 
     COMMAND ${CMAKE_COMMAND} -P NoExitCodeTests.cmake 
    ) 

這將使目標1始終返回0,無論在ctest會發生什麼。醜,但有時CMake是醜陋的:)

相關問題