如何使自定义目标的生成失败停止在CMake中生成依赖目标?
我正在使用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
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