带 CPack 的应用程序符号
Application symbol with CPack
我正在尝试指定 CPack/NSIS 用来创建应用程序符号的图像。它应该显示在开始菜单文件夹中,作为桌面图标以及在应用程序和功能菜单中。
目前我所知道的是:
# Icon displayed inside the installer on top left
set(CPACK_PACKAGE_ICON ""${CMAKE_CURRENT_SOURCE_DIR}/images\\Icon.bmp")
# Icon visible in Taskbar at installation, same for CPACK_NSIS_MUI_UNIICON
set(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}/images/Install_Icon.ico")
我已经试过参数 CPACK_NSIS_MUI_HEADERIMAGE,
set(CPACK_NSIS_INSTALLED_ICON_NAME bin\\${PROJECT_NAME}.exe)
以及 google 第 1+2 页上的所有内容,其中显示了 cpack、图标、桌面快捷方式等的组合。
有谁知道这是如何工作的?还是需要特殊的 format/size?
感谢@Developer Paul 的评论,我弄明白了。 CPack 和 NSIS 在这里具有误导性,因为 link 图标和图像的不同选项表明这是您通过它们进行的设置。
实际上,应用程序图标是用 windows 下的资源文件 (.rc) 设置的,所以你有 3 个文件:你的 CMakeLists.txt、Icon.ico 和 AppIcon.rc。
在你的CMakeLists.txtlink到.rc文件
add_executable("${PROJECT_NAME}" helloworld.cpp AppIcon.rc)
.rc 仅包含 link 到您的 .ico,如下所示:
IDI_ICON1 ICON DISCARDABLE "images/icon.ico"
就我而言,我的项目文件夹中有一个单独的 images 文件夹。
基本上就是这样。但是这个解决方案似乎只适用于 windows,对于 Linux 你必须以不同的方式来做。
我正在尝试指定 CPack/NSIS 用来创建应用程序符号的图像。它应该显示在开始菜单文件夹中,作为桌面图标以及在应用程序和功能菜单中。 目前我所知道的是:
# Icon displayed inside the installer on top left
set(CPACK_PACKAGE_ICON ""${CMAKE_CURRENT_SOURCE_DIR}/images\\Icon.bmp")
# Icon visible in Taskbar at installation, same for CPACK_NSIS_MUI_UNIICON
set(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}/images/Install_Icon.ico")
我已经试过参数 CPACK_NSIS_MUI_HEADERIMAGE,
set(CPACK_NSIS_INSTALLED_ICON_NAME bin\\${PROJECT_NAME}.exe)
以及 google 第 1+2 页上的所有内容,其中显示了 cpack、图标、桌面快捷方式等的组合。 有谁知道这是如何工作的?还是需要特殊的 format/size?
感谢@Developer Paul 的评论,我弄明白了。 CPack 和 NSIS 在这里具有误导性,因为 link 图标和图像的不同选项表明这是您通过它们进行的设置。 实际上,应用程序图标是用 windows 下的资源文件 (.rc) 设置的,所以你有 3 个文件:你的 CMakeLists.txt、Icon.ico 和 AppIcon.rc。
在你的CMakeLists.txtlink到.rc文件
add_executable("${PROJECT_NAME}" helloworld.cpp AppIcon.rc)
.rc 仅包含 link 到您的 .ico,如下所示:
IDI_ICON1 ICON DISCARDABLE "images/icon.ico"
就我而言,我的项目文件夹中有一个单独的 images 文件夹。 基本上就是这样。但是这个解决方案似乎只适用于 windows,对于 Linux 你必须以不同的方式来做。