在NSIS脚本文件中,可以设置以下内容,以使用注册表项作为安装目录:
InstallDirRegKey HKCU "Software\Test" "RegEntry"
我想知道是否可以从cmake文件设置此命令,以便自动生成NSIS脚本。安装目录的方式大致相同:
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "testDir")
非常感谢
答案 0 :(得分: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目录中)并修改它。
答案 1 :(得分:0)
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'
")