如何通过CMake / CPack在NSIS中设置向导图像?

时间:2011-05-17 08:00:54

标签: cmake nsis cpack

我看到没有CPACK_xxx变量用于更改NSIS中的向导图像(如CPACK_PACKAGE_ICON)。 所以我复制了NSIS.template.in并对其进行了修改。我可以做类似的事情:

!定义MUI_WELCOMEFINISHPAGE_BITMAP“C:\ work \ project \ img \ wizardInstall.bmp” !定义MUI_UNWELCOMEFINISHPAGE_BITMAP“C:\ work \ project \ img \ wizardUninstall.bmp”

它会起作用。但是,源代码存放在许多开发人员合作的存储库中,并且保留绝对路径并不是一个好主意。 我试图找到一些方法来获取我的源路径,并以某种方式从该路径创建图像路径,但无济于事。

所以,如果有人知道如何在NSIS中设置向导图像,或者将源目录(并从中创建路径)传递给我的模板文件,请告诉我。

2 个答案:

答案 0 :(得分:0)

您无需编译整个NSIS即可使用/更改这些图像。

它们出现在安装了 $ {NSISDIR} \ Contrib \ Graphics \ Wizard \ win.bmp

的NSIS的每台机器上

在.nsi脚本中使用!define MUI_WELCOMEFINISHPAGE_BITMAP bmp_file进行更改。

答案 1 :(得分:0)

由于您已经在自定义NSIS.template.in文件,并且它是一个可能使用CONFIGURE_FILE()命令配置的模板,为什么不将以下内容放入NSIS.template.in:

!define MUI_WELCOMEFINISHPAGE_BITMAP "@MY_CPACK_MUI_WELCOMEFINISHPAGE_BITMAP@"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "@MY_CPACK_MUI_UNWELCOMEFINISHPAGE_BITMAP@"

然后,在您设置其他CPACK变量的CMakeLists.txt文件中,添加如下内容:

SET(MY_CPACK_MUI_WELCOMEFINISHPAGE_BITMAP
    "${CMAKE_SOURCE_DIR)/path/to/wizardInstall.bmp")
SET(MY_CPACK_MUI_UNWELCOMEFINISHPAGE_BITMAP
    "${CMAKE_SOURCE_DIR)/path/to/wizardUninstall.bmp")