你如何从 visual studio 运行 cpack?

How do you run cpack from visual studio?

我正在将一些包从 Linux 移植到 windows,我发现 visual studio 与 cmake 的集成非常好。 我可以使用 cmake 配置和构建项目,但是 我不知道如何 运行 cpack 来创建安装包

这个问题 - How to create an installer with CMake + CPack + NSIS on Windows? - 建议构建时应创建 PACKAGE.vcxproj 文件。是的,但从 visual studio

内部看来 build/run 无论如何都没有

这似乎是一个奇怪的疏忽:

请注意,我正在尝试创建 ZIP 或 TGZ 包,此时不需要额外复杂的 NSIS。 我正在使用 VS2019

我想出的最佳解决方案是你不能 - 至少不能直接。更开明的人可能知道得更多,因为这确实是一个奇怪的疏忽。

如果您从 tools/developer 命令提示符打开命令提示符 你可以从那里手动 运行 cpack。

还有一个重点是CPACK_PACKAGING_INSTALL_PREFIX不应该设置在Windows上。 参见 https://gitlab.kitware.com/cmake/cmake/issues/17534

您可以通过向您的 CMakeLists.txt 添加自定义目标(或多个目标)来对此进行改进,这将在 targets view 中可见。 例如(基于 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 文档对我来说是一个额外的依赖项。