如何将一个 exe 和一堆 dll 文件与 CPack 一起压缩?

How do I zip an exe and a bunch of dll files together with CPack?

我的基于 CMake 的项目由一个 .exe 文件和三个 .dll 组成,当使用 Visual Studio 编译时。我想以 zip 形式将这些文件一起分发:不包含源代码,没有花哨的 NSIS 安装程序,只有一个方便的 zip 存档中的四个文件。我知道我可以使用 add_custom_command 直接在 CMake 中编写操作脚本,但 CPack 似乎是更好的选择。我该怎么做?

如果您使用 CMake(使用 install)指定要 安装 的文件,您可以轻松利用 CPack 创建 zip 存档:

# Specify to install your CMake targets
install(TARGETS MyExe RUNTIME CONFIGURATIONS Release)
install(TARGETS MySharedLib1 RUNTIME CONFIGURATIONS Release)
...

# Specify the CPack generator for packaging files into an archive.
set(CPACK_GENERATOR "ZIP")
# Specify to exclude the top-level directory from the archive.
set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY OFF)
# Now, add CPack to your project.
include(CPack)