【问题标题】:CMake/CPack command for InstallDirRegKeyInstallDirRegKey 的 CMake/CPack 命令
【发布时间】:2013-08-19 10:49:35
【问题描述】:

在 NSIS 脚本文件中,可以设置以下内容,以使用注册表项作为安装目录:

InstallDirRegKey HKCU "Software\Test" "RegEntry"

我想知道是否可以从 cmake 文件设置此命令,以便自动生成 NSIS 脚本。安装目录的设置方式大致相同:

SET(CPACK_PACKAGE_INSTALL_DIRECTORY "testDir")

非常感谢

【问题讨论】:

    标签: cmake nsis cpack


    【解决方案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'
                    ")
    

    【讨论】:

      猜你喜欢
      • 2020-09-19
      • 2012-04-22
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 2016-07-31
      • 2011-10-06
      • 2019-01-07
      • 1970-01-01
      相关资源
      最近更新 更多