build: improved NSIS installer
[adg.git] / build / adg.nsi.in
blob883c5ede9c95821695acc841988d4d979d0bf922
1 ; ADG installer based on NSIS
2 ; Check http://nsis.sourceforge.net/ for details
4 !define SRCDIR "@abs_top_srcdir@"
5 !define BUILDDIR "@abs_top_builddir@"
6 !define USRDIR "@USRDIR@"
7 !define DLLDIR "${USRDIR}/bin"
9 ; ---------------------------------------------------------------
10 ; 1. Header file
12 !addincludedir "${SRCDIR}/build"
13 !include MUI2.nsh
14 !include EnvVarUpdate.nsh
16 Name "@PACKAGE_NAME@ @PACKAGE_VERSION@"
17 OutFile "@abs_top_builddir@/@PACKAGE@-@PACKAGE_VERSION@-@WINSUFFIX@.exe"
18 SetCompressor /SOLID lzma
19 InstallDir "$PROGRAMFILES\@ADG_API_PACKAGE@"
20 RequestExecutionLevel user
22 ; ---------------------------------------------------------------
23 ; 2. Interface configuration
25 !define MUI_ABORTWARNING
26 !define MUI_COMPONENTSPAGE_SMALLDESC
28 !define MUI_ICON "${SRCDIR}/build/adg.ico"
29 !define MUI_UNICON "${SRCDIR}/build/adg.ico"
31 !define MUI_HEADERIMAGE
32 !define MUI_HEADERIMAGE_RIGHT
33 !define MUI_HEADERIMAGE_BITMAP "${SRCDIR}/build/adg-header.bmp"
34 !define MUI_HEADERIMAGE_UNBITMAP "${SRCDIR}/build/adg-header.bmp"
36 !define MUI_WELCOMEFINISHPAGE_BITMAP "${SRCDIR}/build/adg-welcome.bmp"
37 !define MUI_UNWELCOMEFINISHPAGE_BITMAP "${SRCDIR}/build/adg-welcome.bmp"
39 ; ---------------------------------------------------------------
40 ; 3. Pages
42 !insertmacro MUI_PAGE_WELCOME
43 !insertmacro MUI_PAGE_LICENSE "@abs_top_srcdir@/COPYING"
44 !insertmacro MUI_PAGE_COMPONENTS
45 !insertmacro MUI_PAGE_DIRECTORY
46 !insertmacro MUI_PAGE_INSTFILES
47 !insertmacro MUI_PAGE_FINISH
49 !insertmacro MUI_UNPAGE_WELCOME
50 !insertmacro MUI_UNPAGE_INSTFILES
51 !insertmacro MUI_UNPAGE_FINISH
53 ; ---------------------------------------------------------------
54 ; 4. Language files
56 !insertmacro MUI_LANGUAGE "English"
57 !insertmacro MUI_LANGUAGE "Italian"
59 ; ---------------------------------------------------------------
60 ; 5. Reserve files
63 ; ---------------------------------------------------------------
64 ; I. Installer sections
66 Section "ADG canvas" SecBase
67 SectionIn RO
69 SetOutPath "$INSTDIR"
70 File "${BUILDDIR}/demo/.libs/adg-demo.exe"
71 File "${BUILDDIR}/demo/adg-demo.ui"
72 File "${SRCDIR}/demo/adg-16.png"
73 File "${SRCDIR}/demo/adg-32.png"
74 File "${SRCDIR}/demo/adg-48.png"
75 File "${SRCDIR}/demo/adg-64.png"
76 File "${SRCDIR}/demo/adg-128.png"
78 SetOutPath "$INSTDIR\bin"
79 File "${DLLDIR}/zlib1.dll"
80 File "${DLLDIR}/libexpat-*.dll"
81 File "${DLLDIR}/libintl-*.dll"
82 File "${DLLDIR}/iconv.dll"
83 File "${DLLDIR}/libffi-*.dll"
84 File "${DLLDIR}/libpng??-*.dll"
85 File "${DLLDIR}/libglib-2.0-*.dll"
86 File "${DLLDIR}/libgthread-2.0-*.dll"
87 File "${DLLDIR}/libgmodule-2.0-*.dll"
88 File "${DLLDIR}/libgobject-2.0-*.dll"
89 File "${DLLDIR}/libgio-2.0-*.dll"
90 File "${DLLDIR}/libpixman-1-*.dll"
91 File "${DLLDIR}/libcairo-*.dll"
92 File "${DLLDIR}/libpango-1.0-*.dll"
93 File "${DLLDIR}/libpangocairo-1.0-*.dll"
94 File "${DLLDIR}/libpangowin32-1.0-*.dll"
95 File "${DLLDIR}/libatk-1.0-*.dll"
96 File "${DLLDIR}/libgdk_pixbuf-2.0-*.dll"
97 File "${DLLDIR}/libgdk-3-*.dll"
98 File "${DLLDIR}/libgtk-3-*.dll"
99 File "${BUILDDIR}/src/cpml/.libs/libcpml-1-*.dll"
100 File "${BUILDDIR}/src/adg/.libs/libadg-1-*.dll"
102 SetOutPath "$INSTDIR\share\glib-2.0\schemas"
103 File "${USRDIR}/share/glib-2.0/schemas/gschemas.compiled"
105 CreateDirectory "$SMPROGRAMS\ADG Canvas"
106 CreateShortcut "$SMPROGRAMS\ADG Canvas\ADG demonstration program.lnk" "$INSTDIR\adg-demo.exe"
107 CreateShortcut "$SMPROGRAMS\ADG Canvas\Uninstall ADG Canvas.lnk" "$INSTDIR\uninstall.exe"
109 WriteUninstaller "$INSTDIR\uninstall.exe"
110 ${EnvVarUpdate} $0 "PATH" "A" "HKCU" "$INSTDIR\bin"
111 SectionEnd
113 Section "Support for languages" SecLanguages
114 SetOutPath "$INSTDIR\share\locale"
115 SectionEnd
117 ; Descriptions
119 LangString DESC_SecBase ${LANG_ENGLISH} "Base installation for running the demo program."
120 LangString DESC_SecBase ${LANG_ITALIAN} "Installazione di base per eseguire il programma dimostrativo."
121 LangString DESC_SecLanguages ${LANG_ENGLISH} "Enable support for languages other than english."
122 LangString DESC_SecLanguages ${LANG_ITALIAN} "Abilitazione del supporto a lingue diverse dall'inglese."
124 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
125 !insertmacro MUI_DESCRIPTION_TEXT ${SecBase} $(DESC_SecBase)
126 !insertmacro MUI_DESCRIPTION_TEXT ${SecLanguages} $(DESC_SecLanguages)
127 !insertmacro MUI_FUNCTION_DESCRIPTION_END
129 ; Uninstaller
131 Section "Uninstall"
132 Delete "$SMPROGRAMS\ADG Canvas\ADG Demonstration program.lnk"
133 Delete "$SMPROGRAMS\ADG Canvas\Uninstall ADG Canvas.lnk"
134 RMDir "$SMPROGRAMS\ADG Canvas"
136 Delete "$INSTDIR\adg-demo.exe"
137 Delete "$INSTDIR\adg-128.png"
138 Delete "$INSTDIR\adg-64.png"
139 Delete "$INSTDIR\adg-48.png"
140 Delete "$INSTDIR\adg-32.png"
141 Delete "$INSTDIR\adg-16.png"
142 Delete "$INSTDIR\adg-demo.ui"
144 Delete "$INSTDIR\libgtk-3-*.dll"
145 Delete "$INSTDIR\libgdk-3-*.dll"
146 Delete "$INSTDIR\libgdk_pixbuf-2.0-*.dll"
147 Delete "$INSTDIR\libatk-1.0-*.dll"
148 Delete "$INSTDIR\libpangowin32-1.0-*.dll"
149 Delete "$INSTDIR\libpangocairo-1.0-*.dll"
150 Delete "$INSTDIR\libpango-1.0-*.dll"
151 Delete "$INSTDIR\libcairo-*.dll"
152 Delete "$INSTDIR\libpixman-1-*.dll"
153 Delete "$INSTDIR\libgio-2.0-*.dll"
154 Delete "$INSTDIR\libgobject-2.0-*.dll"
155 Delete "$INSTDIR\libgmodule-2.0-*.dll"
156 Delete "$INSTDIR\libgthread-2.0-*.dll"
157 Delete "$INSTDIR\libglib-2.0-*.dll"
158 Delete "$INSTDIR\libpng??-*.dll"
159 Delete "$INSTDIR\libffi-*.dll"
160 Delete "$INSTDIR\iconv.dll"
161 Delete "$INSTDIR\libintl-*.dll"
162 Delete "$INSTDIR\libexpat-*.dll"
163 Delete "$INSTDIR\zlib1.dll"
164 Delete "$INSTDIR\share\glib-2.0\schemas\gschemas.compiled"
166 Delete "$INSTDIR\uninstall.exe"
167 RMDir "$INSTDIR\bin"
168 RMDir "$INSTDIR\share\glib-2.0\schemas"
169 RMDir "$INSTDIR\share\glib-2.0"
170 RMDir "$INSTDIR\share\locale"
171 RMDir "$INSTDIR\share"
172 RMDir "$INSTDIR"
173 ${un.EnvVarUpdate} $0 "PATH" "R" "HKCU" "$INSTDIR\bin"
174 SectionEnd