visual-studio - 你如何从 Visual Studio 运行 cpack?
问题描述
我正在将一些包从 Linux 移植到 Windows,我发现 Visual Studio 与 cmake 的集成非常好。我可以使用 cmake 配置和构建项目,但我不知道如何运行 cpack 来创建安装包。
这个问题 -如何在 Windows 上使用 CMake + CPack + NSIS 创建安装程序?- 建议构建应该创建一个PACKAGE.vcxproj文件。是的,但似乎无论如何都无法从 Visual Studio 内部构建/运行它
这似乎是一个奇怪的疏忽:
- cmake集成很好
- ctest 测试可以通过测试菜单运行
- 安装目标可以通过构建菜单运行,但没有菜单选项可以使用 cpack 创建包。
注意我正在尝试创建 ZIP 或 TGZ 包,此时不需要 NSIS 的额外复杂性。我正在使用 VS2019
解决方案
我想出的最好的解决方案是你不能——至少不能直接。更开明的人可能知道得更好,因为这确实看起来是一个奇怪的疏忽。
如果您从工具/开发人员命令提示符打开命令提示符,您可以从那里手动运行 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 文档是一个额外的依赖项。
推荐阅读
- r - 分组并过滤每组中的*后半*行
- python - 如何正确使用 Tkinter 进行 OPEN 和 SAVE 功能?
- sql - 根据插入结果设置 Postgresql 变量以供将来使用
- node.js - 所有猫鼬模式中的预中间件
- python - 在 Python(Kivy) 中每 5 秒安排一次作业
- git - 从 git 中删除文件,但将其保存在本地 git pull 上?
- regex - 仅在正则表达式中获取组
- jenkins - Jenkins - 节流构建以在每个可用节点上运行一个作业
- docker - 如何通过 Helm 在 Kubernetes CI/CD 中使用 Azure Devops 发布管道变量?
- highcharts - Highmaps 不会显示我的 GeoJSON 湖层