2016-11-14 3 views
-1

Я использую cmake для создания моей библиотеки, для которой нужны внешние библиотеки. Каждая внешняя библиотека имеет собственный make-файл. Когда я вызываю этот набор команд из моего 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

Для построения целевой по умолчанию, вам нужно добавить ВСЕ опции к add_custom_target вызова:

add_custom_target(blake ALL 
    COMMAND ... 
) 
+0

Когда я добавил 'ALL' вариант, CMake вызовет ошибку: «MKDIR : недопустимый параметр - 'r' ' – liorko

+0

Итак, есть проблемы с вашими командами. Обратите внимание, что каждая новая команда должна быть добавлена ​​с помощью ключевого слова * COMMAND *: в отличие от 'make',' CMake' не автоматически обрабатывает новую строку как новую команду. '&&' также может быть заменен на * COMMAND *: все команды выполняются по порядку, и если какой-либо из них не работает, то будет прекращено. Вы можете найти дополнительную информацию в [add_custom_target documentation] (https://cmake.org/cmake/help/v3.7/command/add_custom_target.html). – Tsyvarev

Смежные вопросы