2016-11-14 67 views
-1

我使用cmake构建需要外部库的库。每个外部库都有它自己的makefile。当我从我的CMakeLists.txt文件中调用这组命令时,什么都没有发生。使用cmake构建外部库

任何想法我做错了什么?

add_custom_target(blake 
     COMMAND mkdir -p ${LIBSCAPI_BUILDIR}/blake 
     && cp -r ${LIBSCAPI_BUILDIR}/lib/BLAKE2/sse/. ${LIBSCAPI_BUILDIR}/BLAKE2 
     make -C ${LIBSCAPI_BUILDIR}/BLAKE2 
     make -C ${LIBSCAPI_BUILDIR}/BLAKE2 BUILDDIR=$(builddir) install 
     cp ${LIBSCAPI_BUILDIR}/BLAKE2/libblake2.a install/lib/ 
     touch compile-blake) 

回答

0

在默认情况下构建一个目标,你需要添加ALL选项给add_custom_target电话:

add_custom_target(blake ALL 
    COMMAND ... 
) 
+0

当我将 '全部' 选项,cmake的抛出一个错误:“MKDIR :无效选项 - 'r'' – liorko

+0

因此,您的命令有问题。请注意,每个新命令都应该加上* COMMAND *关键字:与'make'不同,'CMake'不会自动将新行视为新命令。 '&&'也可以替换为* COMMAND *:所有命令都按顺序执行,如果其中任何一个失败,那么构建将被终止。您可以在[add_custom_target文档](https://cmake.org/cmake/help/v3.7/command/add_custom_target.html)中找到更多信息。 – Tsyvarev