526db45018e56e020d3eac29c50555925e0cabea
[gpg4win.git] / src / gpg4win.nsi
1 # gpg4win.nsi - Installer for GnuPG 4 Windows.        -*- coding: latin-1; -*-
2 # Copyright (C) 2005, 2007, 2008 g10 Code GmbH
3 #
4 # This file is part of GPG4Win.
5 #
6 # GPG4Win is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2 of the License, or
9 # (at your option) any later version.
10 #
11 # GPG4Win is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
19
20 !cd "${BUILD_DIR}"
21 !addincludedir "${TOP_SRCDIR}"
22 !addincludedir "${TOP_SRCDIR}/po"
23 !addincludedir "${SRCDIR}"
24 !addplugindir "${BUILD_DIR}"
25 !include "config.nsi"
26
27 # For the "light" version of the package, we explicitely disable some
28 # of the packages right after including config.nsi.
29 !ifdef GPG4WIN_LIGHT
30 !ifdef HAVE_PKG_COMPENDIUM
31 !undef HAVE_PKG_COMPENDIUM
32 !endif
33 !ifdef HAVE_PKG_KLEOPATRA
34 !undef HAVE_PKG_KLEOPATRA
35 !endif
36 !ifdef HAVE_PKG_OXYGEN_ICONS
37 !undef HAVE_PKG_OXYGEN_ICONS
38 !endif
39 !ifdef HAVE_PKG_QTBASE
40 !undef HAVE_PKG_QTBASE
41 !endif
42 !endif
43
44 # For the "vanilla" version of the package, we explicitely disable most
45 # of the packages right after including config.nsi.
46 !ifdef GPG4WIN_VANILLA
47 !ifdef HAVE_PKG_GPGOL
48 !undef HAVE_PKG_GPGOL
49 !endif
50 !ifdef HAVE_PKG_GPGEX
51 !undef HAVE_PKG_GPGEX
52 !endif
53 !ifdef HAVE_PKG_GPA
54 !undef HAVE_PKG_GPA
55 !endif
56 !ifdef HAVE_PKG_LIBGSASL
57 !undef HAVE_PKG_LIBGSASL
58 !endif
59 ;!ifdef HAVE_PKG_LIBTASN1
60 ;!undef HAVE_PKG_LIBTASN1
61 ;!endif
62 ;!ifdef HAVE_PKG_GNUTLS
63 ;!undef HAVE_PKG_GNUTLS
64 ;!endif
65 !ifdef HAVE_PKG_LIBPNG
66 !undef HAVE_PKG_LIBPNG
67 !endif
68 !ifdef HAVE_PKG_PKGCONFIG
69 !undef HAVE_PKG_PKGCONFIG
70 !endif
71 !ifdef HAVE_PKG_GLIB
72 !undef HAVE_PKG_GLIB
73 !endif
74 !ifdef HAVE_PKG_ATK
75 !undef HAVE_PKG_ATK
76 !endif
77 !ifdef HAVE_PKG_EXPAT
78 !undef HAVE_PKG_EXPAT
79 !endif
80 !ifdef HAVE_PKG_FREETYPE
81 !undef HAVE_PKG_FREETYPE
82 !endif
83 !ifdef HAVE_PKG_FONTCONFIG
84 !undef HAVE_PKG_FONTCONFIG
85 !endif
86 !ifdef HAVE_PKG_CAIRO
87 !undef HAVE_PKG_CAIRO
88 !endif
89 !ifdef HAVE_PKG_PANGO
90 !undef HAVE_PKG_PANGO
91 !endif
92 !ifdef HAVE_PKG_GTK_
93 !undef HAVE_PKG_GTK_
94 !endif
95 !ifdef HAVE_PKG_DBUS
96 !undef HAVE_PKG_DBUS
97 !endif
98 !ifdef HAVE_PKG_QTBASE
99 !undef HAVE_PKG_QTBASE
100 !endif
101 !ifdef HAVE_PKG_OXYGEN_ICONS
102 !undef HAVE_PKG_OXYGEN_ICONS
103 !endif
104 !ifdef HAVE_PKG_KLEOPATRA
105 !undef HAVE_PKG_KLEOPATRA
106 !endif
107 !ifdef HAVE_PKG_COMPENDIUM
108 !undef HAVE_PKG_COMPENDIUM
109 !endif
110 !endif
111
112
113 # The package name and version.  PRETTY_PACKAGE is a user visible name
114 # only while PACKAGE is useful for filenames etc.  PROD_VERSION is the
115 # product version and needs to be in the format "MAJ.MIN.MIC.BUILDNR".
116 # NOTE: Please keep the capitalization of PRETTY_PACKAGE_SHORT as it is
117 # used as registry key.
118 !define PACKAGE "${_PACKAGE}"
119 !define PRETTY_PACKAGE "Gpg4win"
120 !define PRETTY_PACKAGE_SHORT "Gpg4win"
121 !define VERSION "${_VERSION}"
122 !define PROD_VERSION "${_BUILD_FILEVERSION}"
123 !define COMPANY "Intevation GmbH"
124 !define COPYRIGHT "Copyright (C) 2017 Intevation GmbH"
125 !define DESCRIPTION "Gpg4win: The GNU Privacy Guard and Tools for Windows"
126
127 !define INSTALL_DIR "Gpg4win"
128
129 !define WELCOME_TITLE_STR "$(T_WelcomeTitleGpg4win)"
130
131 !define ABOUT_STR "$(T_AboutGpg4win) \
132         $\r$\n$\r$\n$\r$\n$_CLICK $\r$\n$\r$\n$\r$\n$\r$\n$\r$\n\
133         $(T_AboutGpg4winVersion) $\r$\n$(T_AboutGpg4winReleaseDate)"
134
135 # The copyright license of the package.  Define only one of these.
136 !define LICENSE_GPL
137
138 # Select the best compression algorithm available.  The dictionary
139 # size is the default (8 MB).
140 !ifndef DISABLE_LZMA
141 !ifndef SOURCES
142 SetCompressor /SOLID lzma
143 # SetCompressorDictSize 8
144 !endif
145 !endif
146
147 # We support user mode installation but prefer system wide
148 !define MULTIUSER_EXECUTIONLEVEL Highest
149 !define MULTIUSER_MUI
150 !define MULTIUSER_INSTALLMODE_COMMANDLINE
151 !define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY "Software\${PRETTY_PACKAGE_SHORT}"
152 !define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME ""
153 !define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "Software\${PRETTY_PACKAGE_SHORT}"
154 !define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME "Install Directory"
155 !define MULTIUSER_INSTALLMODE_INSTDIR "${PRETTY_PACKAGE_SHORT}"
156 !include "MultiUser.nsh"
157 !ifdef DEBUG
158 !undef DEBUG
159 !endif
160
161 # The installation directory.
162 !define ipdir "playground/install/pkgs"
163 !define exipdir "playground/install-ex/pkgs"
164 !define bpdir "playground/build"
165
166 !ifndef GPG4WIN_VANILLA
167 # Claws is a bit special because we installed
168 # it for some time and now remove the old
169 # version we did install during installation
170 # to be part of an update.
171 !include "uninst-claws-mail.nsi"
172 !endif
173
174 # Variables
175 VAR is_minimal
176 VAR is_update
177
178 # Sections
179 !include "Sections.nsh"
180
181 # We use Memento to remember past installation choices.
182 !include Memento.nsh
183 !define MEMENTO_REGISTRY_ROOT SHCTX
184 !define MEMENTO_REGISTRY_KEY \
185   Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRETTY_PACKAGE_SHORT}
186 # We need to know wether we are installing to 64 bit.
187 !include "x64.nsh"
188
189 # Now include the sections.
190 !define BINARIES
191 !include "inst-sections.nsi"
192
193 # Now include the generic parts.
194 !define HAVE_STARTMENU
195 !include "installer.nsi"
196
197 # The WelcomeTitle is displayed on the first page.
198 LangString T_WelcomeTitleGpg4win ${LANG_ENGLISH} \
199   "Welcome to the installation of Gpg4win"
200
201 # The About string as displayed on the first page.
202 LangString T_AboutGpg4win ${LANG_ENGLISH} \
203  "Gpg4win is an installer package for Windows for EMail and \
204   file encryption using the core component GnuPG for Windows. \
205   Both relevant cryptography standards are supported, OpenPGP \
206   and S/MIME. Gpg4win and the software included with Gpg4win \
207   is Free Software."
208
209 LangString T_AboutGpg4winVersion ${LANG_ENGLISH} \
210  "This is Gpg4win version ${VERSION}"
211
212 LangString T_AboutGpg4winFileVersion ${LANG_ENGLISH} \
213  "file version ${PROD_VERSION}"
214
215 LangString T_AboutGpg4winReleaseDate ${LANG_ENGLISH} \
216  "Release date ${_BUILD_ISODATE}"
217
218 # At long last, include all the translations.
219 !include "../po/catalogs.nsi"
220
221 # Now include the generic parts to end the installation.
222 !include "installer-finish.nsi"