1 ; $Id: mingw-ncurses.nsi,v 1.544 2022/10/01 09:34:57 tom Exp $
\r
6 ; Define the application name
\r
7 !define APPNAME "ncurses"
\r
8 !define EXENAME "ncurses.exe"
\r
10 !define VERSION_MAJOR "6"
\r
11 !define VERSION_MINOR "3"
\r
12 !define VERSION_YYYY "2022"
\r
13 !define VERSION_MMDD "1001"
\r
14 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
\r
17 !define MY_MODEL "w"
\r
19 !define SUBKEY "ncurses"
\r
21 !define INSTALL "${APPNAME} (Console)"
\r
22 !define VERSION ${VERSION_MAJOR}.${VERSION_MINOR}
\r
23 !define VERSION_FULL ${VERSION}-${VERSION_PATCH}
\r
25 ; Main Install settings
\r
27 InstallDir "c:\mingw"
\r
28 InstallDirRegKey HKLM "Software\${SUBKEY}" "$INSTDIR\bin"
\r
29 OutFile "NSIS-Output\${APPNAME}-${VERSION_FULL}-setup.exe"
\r
32 SetCompressor /SOLID lzma
\r
34 VIAddVersionKey ProductName "${SUBKEY}"
\r
35 VIAddVersionKey CompanyName "https://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
44 ; Modern interface settings
\r
47 !define MUI_ABORTWARNING
\r
48 ;!define MUI_FINISHPAGE_RUN
\r
49 ;"$INSTDIR\bin\${EXENAME}"
\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
58 !insertmacro MUI_UNPAGE_CONFIRM
\r
59 !insertmacro MUI_UNPAGE_INSTFILES
\r
61 ; Set languages (first is default language)
\r
62 !insertmacro MUI_LANGUAGE "English"
\r
63 !insertmacro MUI_RESERVEFILE_LANGDLL
\r
65 InstType "Full" ; SectionIn 1
\r
66 InstType "Typical" ; SectionIn 2
\r
67 InstType "Minimal" ; SectionIn 3
\r
69 Section "${APPNAME}" Section1
\r
73 ; Set Section properties
\r
76 ; Set Section Files and Shortcuts
\r
77 SetOutPath "$INSTDIR\bin"
\r
81 SetOutPath "$INSTDIR\share\${APPNAME}"
\r
82 File /oname=README.txt "..\README"
\r
83 File /oname=README-mingw.txt "..\README.mingw"
\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
91 Section "development" Section2
\r
95 ; Set Section properties
\r
98 ; Set Section Files and Shortcuts
\r
99 SetOutPath "$INSTDIR\share\${APPNAME}"
\r
101 SetOutPath "$INSTDIR\include\${APPNAME}${MY_MODEL}"
\r
103 File ".\include\${APPNAME}${MY_MODEL}\*.h"
\r
105 SetOutPath "$INSTDIR\lib"
\r
111 Section "examples" Section3
\r
115 ; Set Section properties
\r
118 ; Set Section Files and Shortcuts
\r
119 SetOutPath "$INSTDIR\lib\${APPNAME}"
\r
123 Section -FinishSection
\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
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
143 ;Remove from registry...
\r
144 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL}"
\r
145 DeleteRegKey HKLM "SOFTWARE\${SUBKEY}"
\r
148 Delete "$INSTDIR\uninstall.exe"
\r
151 Delete "$SMPROGRAMS\${INSTALL}\${APPNAME}.lnk"
\r
152 Delete "$SMPROGRAMS\${INSTALL}\Uninstall.lnk"
\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
161 Delete "$INSTDIR\include\${APPNAME}${MY_MODEL}\*.h"
\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
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
175 Delete "$INSTDIR\lib\${APPNAME}\*.exe"
\r
177 Delete "$INSTDIR\share\${APPNAME}\*.*"
\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