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