我正在使用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)
我们的想法是,通过运行make application
,也可以构建插件。
如果构建失败,我的构建脚本依赖make
返回错误代码,但如果其中一个插件无法构建,make application
仍然会成功。
如果application
的依赖关系失败,如何使{{1}}的构建失败?
答案 0 :(得分:0)
在我的包装盒上,它可以正常工作。
<强>的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