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
    !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"
98
    !insertmacro MUI_LANGUAGE "Malay"
Thomas Mueller's avatar
Thomas Mueller committed
99 100
    !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
    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

    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
146 147 148 149 150 151 152 153

SectionEnd

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

Section "Uninstall"

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

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

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

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

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

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

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

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

SectionEnd