Копирование или перемещение библиотек после сборки с помощью cmake
в моем проекте есть папка, содержащая сторонние библиотеки (Google test, zlib,...). Я хочу поместить библиотеки в общую папку, когда все эти библиотеки будут построены. Я пытаюсь сделать это с cmake, но у меня проблемы. Я пробую этот код:
add_subdirectory(gtest-1.6.0)
add_custom_command(
TARGET gtest_main
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${SRC_LIB_DIR}/*.a ${DST_LIB_DIR})
Я думаю, что проблема может быть в том, что целевой gtest main не определен на этом уровне, но на более низком уровне
1 ответов
Если вы выберите CMAKE_LIBRARY_OUTPUT_DIRECTORY
переменная в ваших CMakeLists.txt перед вызовом add_subdirectory
(и подпроект не переопределяет его), библиотеки должны попадать в нужное место.
кроме того, как это цель в подпроекте сохраняет свою зависимость от выходного файла. Что не будет работать с вашей копией-цель всегда будет устаревшей и, следовательно, перестроенной.
EDIT: я упустил из виду, что ваша команда копирования копирует.a-файлы и благодаря комментарию @Fraser I узнал также, что CMAKE_ARCHIVE_OUTPUT_DIRECTORY
должен делать трюк.