如何使自定义目标的生成失败停止在CMake中生成依赖目标?

如何使自定义目标的生成失败停止在CMake中生成依赖目标?,cmake,Cmake,我正在使用CMake构建一个应用程序和一组插件 ADD_LIBRARY (plugin_X ...) ADD_LIBRARY (plugin_Y ...) ADD_LIBRARY (plugin_Z ...) ADD_CUSTOM_TARGET (all_plugins) ADD_DEPENDENCIES (all_plugins plugin_X plugin_Y plugin_Z) ADD_EXECUTABLE (application ...) ADD_DEPENDENCIES (ap

我正在使用CMake构建一个应用程序和一组插件

ADD_LIBRARY (plugin_X ...)
ADD_LIBRARY (plugin_Y ...)
ADD_LIBRARY (plugin_Z ...)

ADD_CUSTOM_TARGET (all_plugins)
ADD_DEPENDENCIES (all_plugins plugin_X plugin_Y plugin_Z)

ADD_EXECUTABLE (application ...)
ADD_DEPENDENCIES (application all_plugins)
这个想法是通过运行
makeapplication
插件也将被构建

我的构建脚本依赖于
make
在构建失败时返回错误代码,但如果其中一个插件构建失败,
make应用程序
仍将成功


如果依赖项失败,如何使
应用程序的构建失败?

在我的框中,它工作正常

main.c

#include <stdio.h>

int main()
{
        printf("Hello world!");
}
int test(){errorhere}
CMakeLists.txt

cmake_minimum_required(VERSION 2.8)

ADD_LIBRARY (plugin_X a.c)
ADD_LIBRARY (plugin_Y a.c)
ADD_LIBRARY (plugin_Z a.c)

ADD_CUSTOM_TARGET (all_plugins)
ADD_DEPENDENCIES (all_plugins plugin_X plugin_Y plugin_Z)

ADD_EXECUTABLE (application main.c)
ADD_DEPENDENCIES (application all_plugins)
发号施令

cmake -G "Unix Makefiles" ..
make application; echo $?
a.c:1: error: expected ‘;’ before ‘}’ token
make[3]: *** [CMakeFiles/plugin_X.dir/a.c.o] Error 1
make[2]: *** [CMakeFiles/plugin_X.dir/all] Error 2
make[1]: *** [CMakeFiles/application.dir/rule] Error 2
make: *** [application] Error 2
2