InstallDirRegKey的CMake/CPack命令
在NSIS脚本文件中,可以设置以下内容,以使用注册表项作为安装目录:InstallDirRegKey的CMake/CPack命令,cmake,nsis,cpack,Cmake,Nsis,Cpack,在NSIS脚本文件中,可以设置以下内容,以使用注册表项作为安装目录: InstallDirRegKey HKCU "Software\Test" "RegEntry" 我想知道是否可以从cmake文件设置此命令,以便自动生成NSIS脚本。安装目录的设置方式大致相同,如下所示: SET(CPACK_PACKAGE_INSTALL_DIRECTORY "testDir") 非常感谢我并没有完全按照您的意图进行操作,但如果您只想在NSIS文件中使用自定义命令,则可以执行以下操作: list(APP
InstallDirRegKey HKCU "Software\Test" "RegEntry"
我想知道是否可以从cmake文件设置此命令,以便自动生成NSIS脚本。安装目录的设置方式大致相同,如下所示:
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "testDir")
非常感谢我并没有完全按照您的意图进行操作,但如果您只想在NSIS文件中使用自定义命令,则可以执行以下操作:
list(APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
InstallDirRegKey HKCU \"Software\\Test\" \"RegEntry\"
")
要小心反斜杠,需要避开双引号和文字反斜杠。我想你可能需要4个反斜杠而不是2个反斜杠,但是试试看。检查生成的NSIS文件,并根据需要添加更多反斜杠
编辑:
还有另一种更完整的方法来定制NSIS安装脚本。根据这一点:您可以将NSIS.template.in(从CMake安装)复制到源代码树(位于CMake_模块_路径上的目录中)并修改它
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'
")
我希望命令在NSIS文件的开头运行(如果可能,在节之外);因此,它被用作默认安装位置。根据这一点:您可以将NSIS.template.in复制到源代码树(位于CMAKE_模块路径上的目录中)并对其进行修改。这可能会奏效。