2013-08-19 116 views
1

在NSIS腳本文件,它可以設置以下,使用註冊表項的安裝目錄:的CMake/CPack命令InstallDirRegKey

InstallDirRegKey HKCU "Software\Test" "RegEntry" 

我在想,如果有可能設置這個命令來自一個cmake文件,以便自動生成NSIS腳本。在一個目錄中安裝相同的方式有很多事情可以這樣設置:

SET(CPACK_PACKAGE_INSTALL_DIRECTORY "testDir") 

非常感謝

回答

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中的一個目錄)並修改它。

+0

我想命令在NSIS文件開始運行(如果可能的話部分之外) ;以便它被用作默認的安裝位置。 – user2696068

+1

據此:http://www.cmake.org/Wiki/CMake:CPackNSISAdvancedTips您可以將NSIS.template.in複製到您的源代碼樹(位於CMAKE_MODULE_PATH中的目錄中)並對其進行修改。這可能會訣竅。 – Peter

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' 
       ")