如何在cmake目标中添加依赖项
我在cmake中定义了一个自定义目标。现在我想确保只有在执行cmaketarget如何在cmake目标中添加依赖项,cmake,Cmake,我在cmake中定义了一个自定义目标。现在我想确保只有在执行cmaketargettest时,这个目标才是构建的。我怎样才能做到这一点 假设我有一个目标makecoverage,它应该取决于之前调用的目标maketest,或者在执行之前调用maketest 如何在cmake中定义此行为 这里是我的代码,它没有按预期工作。我想让覆盖率取决于make测试必须在之前调用 ADD_CUSTOM_TARGET( coverage COMMAND /bin/bash ${LIBPIP
test
时,这个目标才是构建的。我怎样才能做到这一点
假设我有一个目标makecoverage
,它应该取决于之前调用的目标maketest
,或者在执行之前调用maketest
如何在cmake中定义此行为
这里是我的代码,它没有按预期工作。我想让覆盖率取决于make测试必须在之前调用
ADD_CUSTOM_TARGET(
coverage COMMAND /bin/bash ${LIBPIPE_BINARY_DIR}/cmake/scripts/coverage.sh
DEPENDS test
)
说明定义自定义目标的add_custom_命令/add_custom_目标
命令具有DEPENDS参数
编辑
由于以下原因,这将不适用于内置目标测试
但您始终可以创建自定义目标检查或中建议的任何内容。您不能添加“DEPENDS test”子句。CMake中的预定义/内置目标(全部、安装、打包、测试、清理)在CMakeLists.txt文件中不能作为实际目标使用。因此,不能表示对内置目标的依赖关系
CMake bug tracker中有一个关于此功能的未完成功能请求,但尚未实现。看
但是,您可以更改自定义目标的命令,使其先调用“make test”,然后运行覆盖率命令。我看到了这一点,但不幸的是,它对我不起作用。我已经添加了一些我在上面尝试过的代码。这里有一个类似的主题,它可能对您很有用,比如@DLRdave所写的,您不能用这种方式设置测试的目标依赖项。什么是测试?自定义命令或自定义目标?奇怪。自定义目标总是过期的,所以如果您运行makecoverage,它应该首先运行test。