Как установить значок при установке NSIS (CMake)

Документация по CPACK_PACKAGE_ICON очень ограничена на cmake вики-странице.

Следующее не работает для меня (как per):

set(CPACK_PACKAGE_ICON  "${CMAKE_CURRENT_SOURCE_DIR}/images/MyIcon.bmp")
include(CPack)

Это ведет к:

File: "C:/proj/my_library/images/MyIcon.bmp" -> no files found.
Usage: File [/nonfatal] [/a] ([/r] [/x filespec [...]] filespec [...] |
   /oname=outfile one_file_only)
Error in macro MUI_HEADERIMAGE_INIT on macroline 24
Error in macro MUI_GUIINIT on macroline 3
Error in macro MUI_FUNCTION_GUIINIT on macroline 4
Error in macro MUI_INSERT on macroline 11
Error in macro MUI_LANGUAGE on macroline 7
Error in script "C:/proj/bin-win/_CPack_Packages/win32/NSIS/project.nsi" on line 574 -- aborting creation process

Так как же на самом деле установить рабочий значок в процессе установки установщика NSIS? И какой формат на самом деле нужен для значка?


person malat    schedule 27.02.2015    source источник


Ответы (1)


После некоторых проб и ошибок я наконец обнаружил два необходимых трюка:

Синтаксис на самом деле:

set(CPACK_PACKAGE_ICON  "${CMAKE_CURRENT_SOURCE_DIR}/images\\\\MyIcon.bmp")

И файл BMP ограничен старым форматом, который не является стандартным для imagemagick. Например:

$ file MyIcon.bmp
MyIcon.bmp: PC bitmap, Windows 98/2000 and newer format, 128 x 128 x 24

что нужно это:

$ convert MyIcon.bmp BMP3:MyIcon2.bmp
$ file MyIcon2.bmp
MyIcon2.bmp: PC bitmap, Windows 3.x format, 128 x 128 x 24

Первое представление (Windows 98/2000 and newer format) у меня не сработало.

person malat    schedule 27.02.2015
comment
Разве это не размером 150 x 57 (под MUI_HEADERIMAGE_BITMAP_RTL, если развернуть Интерфейс настройки, заголовок страницы)? - person mlt; 12.12.2015
comment
Это преследовало меня, теперь, спустя 6 лет, вам все еще нужно генерировать образы в формате BPM Windows 3.x, который, похоже, поддерживают немногие инструменты. - person thoni56; 26.05.2021