首页 > 解决方案 > 你如何从 Visual Studio 运行 cpack?

问题描述

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

这个问题 -如何在 Windows 上使用 CMake + CPack + NSIS 创建安装程序?- 建议构建应该创建一个PACKAGE.vcxproj文件。是的,但似乎无论如何都无法从 Visual Studio 内部构建/运行它

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

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

标签: visual-studiocmakecpack

解决方案


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

如果您从工具/开发人员命令提示符打开命令提示符,您可以从那里手动运行 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 文档是一个额外的依赖项。


推荐阅读