你如何从 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 无论如何都没有
这似乎是一个奇怪的疏忽:
- cmake集成很好
- ctest 测试可以通过测试菜单 运行
- 安装目标可以是 运行 通过构建菜单
但是没有使用 cpack 创建包的菜单选项。
请注意,我正在尝试创建 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 文档对我来说是一个额外的依赖项。
我正在将一些包从 Linux 移植到 windows,我发现 visual studio 与 cmake 的集成非常好。 我可以使用 cmake 配置和构建项目,但是 我不知道如何 运行 cpack 来创建安装包 。
这个问题 - How to create an installer with CMake + CPack + NSIS on Windows? - 建议构建时应创建 PACKAGE.vcxproj 文件。是的,但从 visual studio
内部看来 build/run 无论如何都没有这似乎是一个奇怪的疏忽:
- cmake集成很好
- ctest 测试可以通过测试菜单 运行
- 安装目标可以是 运行 通过构建菜单 但是没有使用 cpack 创建包的菜单选项。
请注意,我正在尝试创建 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 文档对我来说是一个额外的依赖项。