Как изменить папку назначения пакета в CPack?
У меня есть многомодульный проект CMake с корневым CMakeLists.txt с несколькими макросами add_subdirectory.
Насколько я понимаю, для CPack / CMake по умолчанию создается пакет в корневой папке проекта, где находится корневой файл CMakeLists.txt. Я хотел бы создать отдельный установочный модуль со своей папкой и создавать там пакеты? Как это сделать?
3 ответа
Посмотрите на CPACK_TOPLEVEL_TAG
и CPACK_PACKAGE_FILE_NAME
переменные в документации.
Чтобы получить созданные пакеты в подкаталоге "packages" вашего каталога сборки, используйте:
SET(CPACK_OUTPUT_FILE_PREFIX packages)
Используйте переменную CPack CPACK_PACKAGE_DIRECTORY
.
Пример:
set(CPACK_PACKAGE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Packaging")
Вы не используете не документированы переменную
CPACK_OUTPUT_FILE_PREFIX
как предложено в одном из ответов. Это делает
-B
аргумент
cpack
команда непригодна для использования (проверено с CMake v3.21.0).
Также обратите внимание, что переменные
CPACK_PACKAGE_FILE_NAME
а также
CPACK_TOPLEVEL_TAG
упомянутые в принятом ответе не связаны с каталогом пакета (выходным), используемым CPack.