Создание Windows Desktop Icon в CMake + CPack + NSIS

Я использую генератор пакета NSIS в CMake 2.8.1 для распределения спокойного приложения. Все хорошо работает... кроме использования CPACK_CREATE_DESKTOP_LINKS создать настольную ссылку на приложение.

Я просмотрел источник CMake (включая свое собственное определение типа инсталляции "начальной загрузки" для окон), и насколько я могу сказать, что делаю то же самое.

Вот соответствующий раздел моего CMakeLists.txt файл.


set(CPACK_GENERATOR NSIS)
set(CPACK_NSIS_PACKAGE_NAME "${EWS_APP_NAME}")
set(CPACK_NSIS_DISPLAY_NAME "${EWS_APP_NAME}")
set(CPACK_NSIS_CONTACT "${EWS_EMAIL}")
set(CPACK_PACKAGE_EXECUTABLES "${EXE_TARGET_NAME}" "${EWS_APP_NAME}")
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CMAKE_PROJECT_NAME}-${EWS_VERSION}")

# this works
set(CPACK_NSIS_MENU_LINKS "${EWS_WEBSITE}" "Homepage for ${EWS_APP_NAME}")

# this doesn't
set(CPACK_CREATE_DESKTOP_LINKS "${EXE_TARGET_NAME}")

# Icon in the add/remove control panel. Must be an .exe file 
set(CPACK_NSIS_INSTALLED_ICON_NAME bin\\\\${EXE_TARGET_NAME}.exe)

set(CPACK_NSIS_URL_INFO_ABOUT "${EWS_WEBSITE}")
set(CPACK_NSIS_HELP_LINK "${EWS_WEBSITE}")

Любые идеи или отладка подсказок ценятся!

9
задан metasim 14 April 2010 в 20:24
поделиться

3 ответа

попробуйте добавить это в свой CMakeLists.txt ]:

set (CPACK_NSIS_MODIFY_PATH "ON")

Я думаю, что после лицензии следует добавить страницу, которая дает возможность добавить каталог установки к пути, и добавить возможность создания ссылок на рабочий стол.

9
ответ дан 4 December 2019 в 14:27
поделиться

Один из обходных путей, который я нашел, заключается в использовании CPACK_NSIS_EXTRA_INSTALL_COMMANDS и CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS для вставки команд создания/удаления ссылок напрямую.

set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
    CreateShortCut \\\"$DESKTOP\\\\${EWS_APP_NAME}.lnk\\\" \\\"$INSTDIR\\\\bin\\\\${EXE_TARGET_NAME}.exe\\\"
")

set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
    Delete \\\"$DESKTOP\\\\${EWS_APP_NAME}.lnk\\\"
")

Я бы предпочел использовать более общую (и кроссплатформенную?) настройку CPACK_CREATE_DESKTOP_LINKS, так что любые последующие идеи будут приняты с благодарностью. Но это работает в крайнем случае.

3
ответ дан 4 December 2019 в 14:27
поделиться

Скорее всего, вам не нужно указывать $ {EXE_TARGET_NAME} в кавычках, поскольку это строка.

0
ответ дан 4 December 2019 в 14:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: