cmake nsis打包
时间: 2025-01-04 14:27:06 浏览: 6
### 使用CMake与NSIS进行打包
为了实现应用程序的打包并创建安装程序,可以利用CMake配合Nullsoft Scriptable Install System (NSIS)来完成这一过程。通过这种方式能够有效地管理不同平台上的部署需求。
#### 配置CMakeLists.txt支持NSIS打包
在`CMakeLists.txt`文件中加入特定于CPack配置的部分,使得项目不仅可以通过CMake构建,还可以被封装成适合分发的形式:
```cmake
# 启用 CPack 组件用于生成包
include(CPack)
set(CPACK_PACKAGE_NAME "YourApplicationName") # 设置软件名称
set(CPACK_PACKAGE_VERSION_MAJOR "1")
set(CPACK_PACKAGE_VERSION_MINOR "0")
set(CPACK_PACKAGE_VERSION_PATCH "0")
if(WIN32 AND NOT UNIX)
set(CPACK_GENERATOR "NSIS") # 对Windows使用NSIS作为生成器
endif()
cpack_add_component(application REQUIRED DISPLAY_NAME "Main Application Files"
DESCRIPTION "The main executable files.")
install(TARGETS your_target DESTINATION bin COMPONENT application)
```
这段脚本指定了当目标操作系统为Windows时采用NSIS作为打包工具,并设置了基本的应用信息以及组件化安装选项[^1]。
#### 创建自定义NSIS模板
如果默认的行为不满足需求,则可通过提供自己的`.nsi`模板来自定义安装体验。这通常涉及到修改项目的根目录下的`CPackConfig.cmake.in`或类似的配置文件,指定路径到自定义的NSIS脚本:
```cmake
configure_file(
"${PROJECT_SOURCE_DIR}/packaging/your_custom_script.nsi.in"
"${CMAKE_BINARY_DIR}/your_custom_script.nsi"
@ONLY
)
set(CPACK_NSIS_INSTALLER_SCRIPT ${CMAKE_BINARY_DIR}/your_custom_script.nsi)
```
在此基础上编写具体的NSIS指令集以控制安装流程中的各个细节,比如界面样式、快捷方式创建等操作[^2]。
#### 构建与打包命令
最后,在完成了上述准备工作之后,只需运行如下简单的命令就可以启动整个构建和打包的过程了:
```bash
mkdir build && cd build
cmake ..
cmake --build .
cpack -G NSIS
```
以上步骤会依次处理源代码编译、链接直至最终形成可执行文件及其配套资源;随后调用CPack按照预设的方式制作出完整的安装包[^3]。
阅读全文