Как добавить опцию RequestExecutionLevel NSIS в CMakeLists.txt - PullRequest
2 голосов
/ 15 декабря 2011

Я пытаюсь заставить установщик, скомпилированный с NSIS на Windows 7, работать без прав администратора.Проект настроен с CMake и скомпилирован с VC2010.Я понял, что должен использовать опцию

RequestExecutionLevel user

.Мой вопрос: что я должен поместить в свой CMakeLists.txt, чтобы передать эту опцию в NSIS?Я нашел

set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "RequestExecutionLevel user")

где-то в Google, но это выдает ошибку, говоря, что этот параметр нельзя установить в этом разделе.

Любая помощь очень ценится

Ответы [ 2 ]

4 голосов
/ 06 октября 2014

Версия CMake, которую я имею, имеет @CPACK_NSIS_DEFINES@ в шаблоне NSIS, поэтому добавление set(CPACK_NSIS_DEFINES "RequestExecutionLevel user") в CMakeLists.txt тоже хорошо работает.

Хотя это может потребовать дополнительной работы для компонентана основе установки .

2 голосов
/ 31 марта 2012

Вы можете попробовать следующие шаги:

  1. Скопируйте NSIS.template.in в каталог вашего проекта, например, подкаталог с именем «упаковка»:

    xcopy \cmake-install-path\modules\share\cmake-xxx\Modules\NSIS.template.in \your-project-directory\packaging\

  2. Добавить RequestExecutionLevel user к NSIS.template.in

  3. Обновление CMAKE_MODULE_PATH в CMakeLists.txt:

    list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/packaging)

Затем пересоберите свой пакет, чтобы увидеть, работает ли он.

...