2016-02-04 17 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是丑陋的:)

相关问题