InstallDirRegKey 的 CMake/CPack 命令
Posted
技术标签:
【中文标题】InstallDirRegKey 的 CMake/CPack 命令【英文标题】:CMake/CPack command for InstallDirRegKey 【发布时间】:2013-08-19 10:49:35 【问题描述】:在 NSIS 脚本文件中,可以设置以下内容,以使用注册表项作为安装目录:
InstallDirRegKey HKCU "Software\Test" "RegEntry"
我想知道是否可以从 cmake 文件设置此命令,以便自动生成 NSIS 脚本。安装目录的设置方式大致相同:
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "testDir")
非常感谢
【问题讨论】:
【参考方案1】:我并没有完全按照您的意图进行操作,但如果您只想在 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 上的目录中)并修改它。
【讨论】:
我希望该命令在 NSIS 文件的开头运行(如果可能,在部分之外);以便将其用作默认安装位置。 据此:cmake.org/Wiki/CMake:CPackNSISAdvancedTips 您可以将 NSIS.template.in 复制到源代码树中(在您的 CMAKE_MODULE_PATH 上的目录中)并修改它。这可能会奏效。【参考方案2】: 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'
")
【讨论】:
以上是关于InstallDirRegKey 的 CMake/CPack 命令的主要内容,如果未能解决你的问题,请参考以下文章
cmake和makefile区别和cmake指定编译器(cmake -G)