h2.nsi 6.3 KB
Newer Older
Thomas Mueller's avatar
Thomas Mueller committed
1
    !include "MUI.nsh"
2

Thomas Mueller's avatar
Thomas Mueller committed
3 4 5 6 7
    SetCompressor /SOLID lzma
    Name "H2"
    Icon "favicon.ico"
    OutFile "../../../h2web/h2-setup.exe"
    CRCCheck on
8 9

    InstallDir "$PROGRAMFILES\H2"
Thomas Mueller's avatar
Thomas Mueller committed
10
    InstallDirRegKey HKCU "Software\H2" ""
11
    RequestExecutionLevel highest
12 13 14 15

;--------------------------------
;Variables

Thomas Mueller's avatar
Thomas Mueller committed
16 17
    Var MUI_TEMP
    Var STARTMENU_FOLDER
18 19 20 21

;--------------------------------
;Interface Settings

Thomas Mueller's avatar
Thomas Mueller committed
22
    !define MUI_ABORTWARNING
23 24 25 26

;--------------------------------
;Language Selection Dialog Settings

Thomas Mueller's avatar
Thomas Mueller committed
27 28 29 30
    ;Remember the installer language
    !define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
    !define MUI_LANGDLL_REGISTRY_KEY "Software\H2"
    !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
31 32 33 34

;--------------------------------
;Pages

Thomas Mueller's avatar
Thomas Mueller committed
35
    !insertmacro MUI_PAGE_DIRECTORY
36

Thomas Mueller's avatar
Thomas Mueller committed
37 38 39 40 41
    ;Start Menu Folder Page Configuration
    !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
    !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\H2"
    !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
    !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\docs\index.html"
42

Thomas Mueller's avatar
Thomas Mueller committed
43 44 45
    !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
    !insertmacro MUI_PAGE_INSTFILES
    !insertmacro MUI_PAGE_FINISH
46

Thomas Mueller's avatar
Thomas Mueller committed
47 48
    !insertmacro MUI_UNPAGE_CONFIRM
    !insertmacro MUI_UNPAGE_INSTFILES
49 50 51 52

;--------------------------------
;Languages

Thomas Mueller's avatar
Thomas Mueller committed
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
    !insertmacro MUI_LANGUAGE "English" # first language is the default language
    !insertmacro MUI_LANGUAGE "German"
    !insertmacro MUI_LANGUAGE "Spanish"
    !insertmacro MUI_LANGUAGE "French"
    !insertmacro MUI_LANGUAGE "SimpChinese"
    !insertmacro MUI_LANGUAGE "TradChinese"
    !insertmacro MUI_LANGUAGE "Japanese"
    !insertmacro MUI_LANGUAGE "Korean"
    !insertmacro MUI_LANGUAGE "Italian"
    !insertmacro MUI_LANGUAGE "Dutch"
    !insertmacro MUI_LANGUAGE "Danish"
    !insertmacro MUI_LANGUAGE "Swedish"
    !insertmacro MUI_LANGUAGE "Norwegian"
    !insertmacro MUI_LANGUAGE "Finnish"
    !insertmacro MUI_LANGUAGE "Greek"
    !insertmacro MUI_LANGUAGE "Russian"
    !insertmacro MUI_LANGUAGE "Portuguese"
    !insertmacro MUI_LANGUAGE "PortugueseBR"
    !insertmacro MUI_LANGUAGE "Polish"
    !insertmacro MUI_LANGUAGE "Ukrainian"
    !insertmacro MUI_LANGUAGE "Czech"
    !insertmacro MUI_LANGUAGE "Slovak"
    !insertmacro MUI_LANGUAGE "Croatian"
    !insertmacro MUI_LANGUAGE "Bulgarian"
    !insertmacro MUI_LANGUAGE "Hungarian"
    !insertmacro MUI_LANGUAGE "Romanian"
    !insertmacro MUI_LANGUAGE "Latvian"
    !insertmacro MUI_LANGUAGE "Macedonian"
    !insertmacro MUI_LANGUAGE "Estonian"
    !insertmacro MUI_LANGUAGE "Turkish"
    !insertmacro MUI_LANGUAGE "Lithuanian"
    !insertmacro MUI_LANGUAGE "Catalan"
    !insertmacro MUI_LANGUAGE "Slovenian"
    !insertmacro MUI_LANGUAGE "Serbian"
    !insertmacro MUI_LANGUAGE "SerbianLatin"
    !insertmacro MUI_LANGUAGE "Arabic"
    !insertmacro MUI_LANGUAGE "Farsi"
    !insertmacro MUI_LANGUAGE "Hebrew"
    !insertmacro MUI_LANGUAGE "Indonesian"
    !insertmacro MUI_LANGUAGE "Mongolian"
    !insertmacro MUI_LANGUAGE "Luxembourgish"
    !insertmacro MUI_LANGUAGE "Albanian"
    !insertmacro MUI_LANGUAGE "Breton"
    !insertmacro MUI_LANGUAGE "Belarusian"
    !insertmacro MUI_LANGUAGE "Icelandic"
    !insertmacro MUI_LANGUAGE "Malaysian"
    !insertmacro MUI_LANGUAGE "Bosnian"
    !insertmacro MUI_LANGUAGE "Kurdish"
101 102 103 104

;--------------------------------
;Reserve Files

Thomas Mueller's avatar
Thomas Mueller committed
105 106 107
    ;These files should be inserted before other files in the data block
    ;Keep these lines before any File command
    ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA)
108

Thomas Mueller's avatar
Thomas Mueller committed
109
    !insertmacro MUI_RESERVEFILE_LANGDLL
110 111 112 113 114 115

;--------------------------------
;Installer Sections

Section "All"

Thomas Mueller's avatar
Thomas Mueller committed
116 117 118 119 120
    SetOutPath "$INSTDIR\src"
    File /r /x CVS /x .cvsignore /x .svn ..\..\src\*.*
    SetOutPath "$INSTDIR\bin"
    File /x CVS /x .cvsignore ..\..\bin\h2*
    SetOutPath "$INSTDIR\docs"
121
    File /r /x CVS /x .cvsignore /x .jar ..\..\docs\*.*
Thomas Mueller's avatar
Thomas Mueller committed
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
    SetOutPath "$INSTDIR\service"
    File /r /x CVS /x .cvsignore /x .svn ..\..\service\*.*
    SetOutPath "$INSTDIR"
    File /r /x CVS /x .cvsignore ..\..\build.bat
    File /r /x CVS /x .cvsignore ..\..\build.sh
    File /r /x CVS /x .cvsignore ..\..\build.xml

    WriteRegStr HKCU "Software\H2" "" $INSTDIR
    WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\H2" "DisplayName" "H2"
    WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\H2" "UninstallString" "$INSTDIR\Uninstall.exe"
    WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\H2" "InstallLocation" "$INSTDIR"
    WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\H2" "DisplayIcon" "$INSTDIR\src\installer\favicon.ico"
    WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\H2" "NoModify" "1"
    WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\H2" "NoRepair" "1"

    WriteUninstaller "$INSTDIR\Uninstall.exe"

    !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
    SetOutPath "$INSTDIR\bin"
    CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
    CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\H2 Console.lnk" "cmd" "/c h2w.bat" "$INSTDIR\src\installer\favicon.ico" 0 SW_SHOWMINIMIZED "" "Start the Console"
    CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\H2 Console (Command Line).lnk" "cmd" "/c h2.bat" "$INSTDIR\src\installer\favicon.ico" 0 SW_SHOWMINIMIZED "" "Start the Console from command line (using h2.bat)"
    CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\H2 Documentation.lnk" "$INSTDIR\docs\index.html"
;    CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
    !insertmacro MUI_STARTMENU_WRITE_END
147 148 149 150 151 152 153 154

SectionEnd

;--------------------------------
;Uninstaller Section

Section "Uninstall"

Thomas Mueller's avatar
Thomas Mueller committed
155 156 157
    SetOutPath "$INSTDIR\.."
    RMDir /r "$INSTDIR"
    Delete "$INSTDIR\Uninstall.exe"
158

Thomas Mueller's avatar
Thomas Mueller committed
159
    !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
160

Thomas Mueller's avatar
Thomas Mueller committed
161
    Delete "$SMPROGRAMS\$MUI_TEMP\*.lnk"
162

Thomas Mueller's avatar
Thomas Mueller committed
163 164
    ;Delete empty start menu parent diretories
    StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
165

Thomas Mueller's avatar
Thomas Mueller committed
166 167 168 169
    startMenuDeleteLoop:
        ClearErrors
        RMDir $MUI_TEMP
        GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
170

Thomas Mueller's avatar
Thomas Mueller committed
171
        IfErrors startMenuDeleteLoopDone
172

Thomas Mueller's avatar
Thomas Mueller committed
173 174
        StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop
    startMenuDeleteLoopDone:
175

Thomas Mueller's avatar
Thomas Mueller committed
176 177
    DeleteRegKey HKCU "Software\H2"
    DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\H2"
178 179

SectionEnd