如何在cmake目标中添加依赖项

时间:2011-11-10 00:24:46

标签: cmake

我在cmake中定义了一个自定义目标。我现在想确保只在执行cmake目标test时构建此目标。我怎样才能做到这一点。

假设我有一个目标make coverage,它应该取决于之前要调用的目标make test,或者在执行之前调用make test

如何在cmake中定义此行为?

这里我的代码没有按预期工作。我想要实现覆盖取决于必须先调用make。

    ADD_CUSTOM_TARGET(
        coverage COMMAND /bin/bash ${LIBPIPE_BINARY_DIR}/cmake/scripts/coverage.sh
        DEPENDS test
    )  

2 个答案:

答案 0 :(得分:7)

您无法添加“DEPENDS test”子句。 CMake中的预定义/内置目标(全部,安装,打包,测试,清除)不能作为CMakeLists.txt文件中的实际目标。因此,您无法表达对内置目标的依赖。

此功能在CMake错误跟踪器中有一个突出的功能请求,但尚未实现。见http://public.kitware.com/Bug/view.php?id=8438

但是,您可以更改自定义目标的命令,以便首先调用“make test”,然后运行coverage命令。

答案 1 :(得分:2)

CMake FAQ表示定义自定义目标的add_custom_command/add_custom_target命令具有DEPENDS参数。

修改

由于遵循feature request,这不适用于内置目标test

但您始终可以创建自定义目标checkCMake FAQ

中建议的内容