Команда CMake/CPack для InstallDirRegKey

В файле сценария NSIS можно установить следующее, чтобы использовать запись реестра в качестве каталога установки:

InstallDirRegKey HKCU "Software\Test" "RegEntry"

Мне было интересно, можно ли установить эту команду из файла cmake, чтобы сценарий NSIS генерировался автоматически. Точно так же каталог установки может быть установлен следующим образом:

SET(CPACK_PACKAGE_INSTALL_DIRECTORY "testDir")

Большое спасибо


person user2696068    schedule 19.08.2013    source источник


Ответы (2)


Я не совсем понимаю, что вы пытаетесь сделать, но если вам просто нужна пользовательская команда в файле NSIS, вы можете сделать это:

list(APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS " 
                InstallDirRegKey HKCU \"Software\\Test\" \"RegEntry\"
               ")

Будьте осторожны с обратной косой чертой, необходимой, чтобы избежать двойной кавычки и буквальной обратной косой черты. Я думаю, вам может понадобиться 4 обратной косой черты вместо 2 для буквальной обратной косой черты, но попробуйте и посмотрите. Проверьте получившийся файл NSIS и при необходимости добавьте дополнительные символы обратной косой черты.

ИЗМЕНИТЬ:

Есть еще один, гораздо более полный способ настройки сценария установки NSIS. В соответствии с этим: http://cmake.org/Wiki/CMake:CPackNSISAdvancedTips вы можете скопировать NSIS .template.in (из вашей установки CMake) в исходное дерево (в каталог, который находится в вашем CMAKE_MODULE_PATH) и измените его.

person Peter    schedule 19.08.2013
comment
Я хотел бы, чтобы команда запускалась в начале файла NSIS (если возможно, вне раздела); чтобы он использовался как место установки по умолчанию. - person user2696068; 20.08.2013
comment
В соответствии с этим: cmake.org/Wiki/CMake:CPackNSISAdvancedTips вы можете скопировать NSIS. template.in в исходное дерево (в каталог, который находится в CMAKE_MODULE_PATH) и измените его. Это может помочь. - person Peter; 20.08.2013

 list(APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS " 
                 InstallDirRegKey HKCU \"Software\\Test\" \"RegEntry\"
                ")

переводит на моей машине в

InstallDirRegKey HKCU ;Software\Test" "RegEntry;`

Попробуйте скорее

 list(APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS " 
                InstallDirRegKey HKCU 'Software\\\\Test' 'RegEntry'
                ")
person Fillippo    schedule 13.01.2016