Как вы запускаете cpack из visual studio? - PullRequest
0 голосов
/ 08 января 2020

Я портирую некоторые пакеты с Linux на windows и обнаружил, что Visual Studio довольно хорошо интегрируется с cmake. Я могу настроить и собрать проект с помощью cmake, но Я не могу понять, как запустить cpack для создания установочного пакета .

Этот вопрос - Как создать установщик с CMake + CPack + NSIS для Windows? - предлагает создать файл PACKAGE.vcxproj . Но, похоже, что в любом случае его не нужно собирать / запускать изнутри visual studio

Кажется странным упущением:

  • Интеграция cmake очень хороша
  • ctest тесты можно запустить через меню тестов
  • цель установки можно запустить через меню сборки, но нет опции меню для создания пакетов с помощью cpack.

Примечание Я пытаюсь создать пакет ZIP или TGZ и не нуждаюсь в дополнительном усложнении NSIS. Я использую VS2019

1 Ответ

0 голосов
/ 08 января 2020

Лучшее решение, которое я нашел, это то, что вы не можете - по крайней мере, напрямую. Кто-то более просвещенный может знать лучше, потому что это действительно кажется странным упущением.

Если вы откроете командную строку из командной строки tools / developer, вы сможете запустить cpack вручную.

Еще один важный момент является то, что CPACK_PACKAGING_INSTALL_PREFIX не должен быть установлен на Windows. См. https://gitlab.kitware.com/cmake/cmake/issues/17534

Вы можете улучшить это, добавив пользовательскую цель (или цели) к вашему CMakeLists.txt , который будет виден в вид цели . Например (на основе https://cmake.org/pipermail/cmake/2017-January/064830.html) добавить:

SET( CPACK_OUTPUT_CONFIG_FILE "${CMAKE_BINARY_DIR}/BundleConfig.cmake" )
ADD_CUSTOM_TARGET( bundle
         COMMAND "${CMAKE_CPACK_COMMAND}"
                 "-C" "$<CONFIGURATION>"
            "--config" "${CMAKE_BINARY_DIR}/BundleConfig.cmake"
            COMMENT "Running CPack. Please wait..."
            DEPENDS ${PROJECT_NAME} doxygen)

Документация Doxygen, включаемая в пакет установки, является дополнительной зависимостью в моем случае.

...