2016-11-14 110 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