]> ncurses.scripts.mit.edu Git - ncurses.git/blob - package/mingw-ncurses.nsi
c77b4b7f5c60e84e1874ddc38f551f998452e047
[ncurses.git] / package / mingw-ncurses.nsi
1 ; $Id: mingw-ncurses.nsi,v 1.237 2017/10/22 10:49:45 tom Exp $\r
2 \r
3 ; TODO add examples\r
4 ; TODO bump ABI to 6\r
5 \r
6 ; Define the application name\r
7 !define APPNAME "ncurses"\r
8 !define EXENAME "ncurses.exe"\r
9 \r
10 !define VERSION_MAJOR "6"\r
11 !define VERSION_MINOR "0"\r
12 !define VERSION_YYYY  "2017"\r
13 !define VERSION_MMDD  "1028"\r
14 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
15 \r
16 !define MY_ABI   "5"\r
17 !define MY_MODEL "w"\r
18 \r
19 !define SUBKEY "ncurses"\r
20 \r
21 !define INSTALL "${APPNAME} (Console)"\r
22 !define VERSION ${VERSION_MAJOR}.${VERSION_MINOR}\r
23 !define VERSION_FULL  ${VERSION}-${VERSION_PATCH}\r
24 \r
25 ; Main Install settings\r
26 Name "${INSTALL}"\r
27 InstallDir "c:\mingw"\r
28 InstallDirRegKey HKLM "Software\${SUBKEY}" "$INSTDIR\bin"\r
29 OutFile "NSIS-Output\${APPNAME}-${VERSION_FULL}-setup.exe"\r
30 \r
31 CRCCheck on\r
32 SetCompressor /SOLID lzma\r
33 \r
34 VIAddVersionKey ProductName "${SUBKEY}"\r
35 VIAddVersionKey CompanyName "http://invisible-island.net"\r
36 VIAddVersionKey FileDescription "NCurses Installer (MinGW)"\r
37 VIAddVersionKey FileVersion ${VERSION_FULL}\r
38 VIAddVersionKey ProductVersion ${VERSION_FULL}\r
39 VIAddVersionKey Comments "This installer was built with NSIS and cross-compiling to MinGW."\r
40 VIAddVersionKey InternalName "${APPNAME}-${VERSION_FULL}-setup.exe"\r
41 ; This is a dotted set of numbers limited to 16-bits each\r
42 VIProductVersion "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_YYYY}.${VERSION_MMDD}"\r
43 \r
44 ; Modern interface settings\r
45 !include "MUI.nsh"\r
46 \r
47 !define MUI_ABORTWARNING\r
48 ;!define MUI_FINISHPAGE_RUN\r
49 ;"$INSTDIR\bin\${EXENAME}"\r
50 \r
51 !insertmacro MUI_PAGE_WELCOME\r
52 !insertmacro MUI_PAGE_LICENSE "..\COPYING"\r
53 !insertmacro MUI_PAGE_COMPONENTS\r
54 !insertmacro MUI_PAGE_DIRECTORY\r
55 !insertmacro MUI_PAGE_INSTFILES\r
56 !insertmacro MUI_PAGE_FINISH\r
57 \r
58 !insertmacro MUI_UNPAGE_CONFIRM\r
59 !insertmacro MUI_UNPAGE_INSTFILES\r
60 \r
61 ; Set languages (first is default language)\r
62 !insertmacro MUI_LANGUAGE "English"\r
63 !insertmacro MUI_RESERVEFILE_LANGDLL\r
64 \r
65 InstType "Full"         ; SectionIn 1\r
66 InstType "Typical"      ; SectionIn 2\r
67 InstType "Minimal"      ; SectionIn 3\r
68 \r
69 Section "${APPNAME}" Section1\r
70 \r
71         SectionIn 1 2 3\r
72 \r
73         ; Set Section properties\r
74         SetOverwrite on\r
75 \r
76         ; Set Section Files and Shortcuts\r
77         SetOutPath "$INSTDIR\bin"\r
78 \r
79         File ".\bin\*.dll"\r
80 \r
81         SetOutPath "$INSTDIR\share\${APPNAME}"\r
82         File /oname=README.txt "..\README"\r
83         File /oname=README-mingw.txt "..\README.mingw"\r
84 \r
85         CreateDirectory "$SMPROGRAMS\${INSTALL}"\r
86         CreateShortCut "$SMPROGRAMS\${INSTALL}\${APPNAME}.lnk" "$INSTDIR\bin\${EXENAME}"\r
87         CreateShortCut "$SMPROGRAMS\${INSTALL}\Uninstall.lnk" "$INSTDIR\uninstall.exe"\r
88 \r
89 SectionEnd\r
90 \r
91 Section "development" Section2\r
92 \r
93         SectionIn 1 2\r
94 \r
95         ; Set Section properties\r
96         SetOverwrite on\r
97 \r
98         ; Set Section Files and Shortcuts\r
99         SetOutPath "$INSTDIR\share\${APPNAME}"\r
100 \r
101         SetOutPath "$INSTDIR\include\${APPNAME}${MY_MODEL}"\r
102 \r
103         File ".\include\${APPNAME}${MY_MODEL}\*.h"\r
104 \r
105         SetOutPath "$INSTDIR\lib"\r
106 \r
107         File ".\lib\*.a"\r
108 \r
109 SectionEnd\r
110 \r
111 Section "examples" Section3\r
112 \r
113         SectionIn 1\r
114 \r
115         ; Set Section properties\r
116         SetOverwrite on\r
117 \r
118         ; Set Section Files and Shortcuts\r
119         SetOutPath "$INSTDIR\lib\${APPNAME}"\r
120 \r
121 SectionEnd\r
122 \r
123 Section -FinishSection\r
124 \r
125         WriteRegStr HKLM "Software\${SUBKEY}" "" "$INSTDIR"\r
126         WriteRegStr HKLM "Software\${SUBKEY}" "Environment" ""\r
127         WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL}" "DisplayName" "${APPNAME} ${VERSION_FULL} (Console)"\r
128         WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL}" "UninstallString" "$INSTDIR\uninstall.exe"\r
129         WriteUninstaller "$INSTDIR\uninstall.exe"\r
130 \r
131 SectionEnd\r
132 \r
133 ; Modern install component descriptions\r
134 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN\r
135         !insertmacro MUI_DESCRIPTION_TEXT ${Section1} "${SUBKEY} runtime"\r
136         !insertmacro MUI_DESCRIPTION_TEXT ${Section2} "Development headers and libraries"\r
137         !insertmacro MUI_DESCRIPTION_TEXT ${Section3} "Examples"\r
138 !insertmacro MUI_FUNCTION_DESCRIPTION_END\r
139 \r
140 ;Uninstall section\r
141 Section Uninstall\r
142 \r
143         ;Remove from registry...\r
144         DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL}"\r
145         DeleteRegKey HKLM "SOFTWARE\${SUBKEY}"\r
146 \r
147         ; Delete self\r
148         Delete "$INSTDIR\uninstall.exe"\r
149 \r
150         ; Delete Shortcuts\r
151         Delete "$SMPROGRAMS\${INSTALL}\${APPNAME}.lnk"\r
152         Delete "$SMPROGRAMS\${INSTALL}\Uninstall.lnk"\r
153 \r
154         ; Clean up application\r
155         Delete "$INSTDIR\bin\libform${MY_MODEL}${MY_ABI}.dll"\r
156         Delete "$INSTDIR\bin\libmenu${MY_MODEL}${MY_ABI}.dll"\r
157         Delete "$INSTDIR\bin\libncurses++${MY_MODEL}${MY_ABI}.dll"\r
158         Delete "$INSTDIR\bin\libncurses${MY_MODEL}${MY_ABI}.dll"\r
159         Delete "$INSTDIR\bin\libpanel${MY_MODEL}${MY_ABI}.dll"\r
160 \r
161         Delete "$INSTDIR\include\${APPNAME}${MY_MODEL}\*.h"\r
162 \r
163         Delete "$INSTDIR\lib\libform${MY_MODEL}.a"\r
164         Delete "$INSTDIR\lib\libmenu${MY_MODEL}.a"\r
165         Delete "$INSTDIR\lib\libncurses++${MY_MODEL}.a"\r
166         Delete "$INSTDIR\lib\libncurses${MY_MODEL}.a"\r
167         Delete "$INSTDIR\lib\libpanel${MY_MODEL}.a"\r
168 \r
169         Delete "$INSTDIR\lib\libform${MY_MODEL}.dll.a"\r
170         Delete "$INSTDIR\lib\libmenu${MY_MODEL}.dll.a"\r
171         Delete "$INSTDIR\lib\libncurses++${MY_MODEL}.dll.a"\r
172         Delete "$INSTDIR\lib\libncurses${MY_MODEL}.dll.a"\r
173         Delete "$INSTDIR\lib\libpanel${MY_MODEL}.dll.a"\r
174 \r
175         Delete "$INSTDIR\lib\${APPNAME}\*.exe"\r
176 \r
177         Delete "$INSTDIR\share\${APPNAME}\*.*"\r
178 \r
179         ; Remove remaining directories\r
180         RMDir "$SMPROGRAMS\${INSTALL}"\r
181         RMDir "$INSTDIR\share\${APPNAME}"\r
182         RMDir "$INSTDIR\share"\r
183         RMDir "$INSTDIR\lib\${APPNAME}"\r
184         RMDir "$INSTDIR\lib"\r
185         RMDir "$INSTDIR\include\${APPNAME}${MY_MODEL}"\r
186         RMDir "$INSTDIR\include"\r
187         RMDir "$INSTDIR\bin"\r
188         RMDir "$INSTDIR\"\r
189 \r
190 SectionEnd