Mark called uninstallers rebootok
[gpg4win.git] / src / inst-gpgex.nsi
1 # inst-gpgex.nsi - Installer snippet for gpgex.      -*- 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 !ifdef prefix
21 !undef prefix
22 !endif
23 !ifdef exprefix
24 !undef exprefix
25 !endif
26 !define prefix ${ipdir}/gpgex-${gpg4win_pkg_gpgex_version}
27 !define exprefix ${exipdir}/gpgex-${gpg4win_pkg_gpgex_version}
28
29
30 Section "-removegpgee"
31 !ifndef SOURCES
32 # Uninstall a previous gpgee version, if it exists.
33   ifFileExists "$INSTDIR\GPGee.dll" 0 gpgex_no_gpgee
34     UnRegDLL "$INSTDIR\GPGee.dll"
35     Delete /REBOOTOK "$INSTDIR\GPGee.dll"
36     Delete /REBOOTOK "$INSTDIR\GPGee.DEU"
37     Delete "$INSTDIR\GPGee.hlp"
38     Delete "$INSTDIR\share\gpgee\gpl.txt"
39     RMDir "$INSTDIR\share\gpgee"
40     RMDir "$INSTDIR\share"
41     RMDir "$INSTDIR"
42   gpgex_no_gpgee:
43 !endif
44 SectionEnd
45
46
47 ${MementoSection} "GpgEX" SEC_gpgex
48   SetOutPath "$INSTDIR"
49 !ifdef SOURCES
50   File "${gpg4win_pkg_gpgex}"
51 !else
52
53   ClearErrors
54   SetOverwrite try
55   File ${prefix}/bin/gpgex.dll
56   SetOverwrite lastused
57   ifErrors 0 do_reg
58       File /oname=gpgex.dll.tmp ${prefix}/bin/gpgex.dll
59       Rename /REBOOTOK gpgex.dll.tmp gpgex.dll
60
61  do_reg:
62   # Register the DLL.
63   ClearErrors
64   RegDLL "$INSTDIR\gpgex.dll"
65   ifErrors 0 +2
66      MessageBox MB_OK "$(T_GpgEX_RegFailed)"
67
68   SetOutPath "$INSTDIR\share\locale\de\LC_MESSAGES"
69   File ${prefix}/share/locale/de/LC_MESSAGES/gpgex.mo
70   SetOutPath "$INSTDIR\share\locale\ar\LC_MESSAGES"
71   File ${prefix}/share/locale/ar/LC_MESSAGES/gpgex.mo
72   SetOutPath "$INSTDIR\share\locale\es\LC_MESSAGES"
73   File ${prefix}/share/locale/es/LC_MESSAGES/gpgex.mo
74   SetOutPath "$INSTDIR\share\locale\ru\LC_MESSAGES"
75   File ${prefix}/share/locale/ru/LC_MESSAGES/gpgex.mo
76   SetOutPath "$INSTDIR\share\locale\pt\LC_MESSAGES"
77   File ${prefix}/share/locale/pt/LC_MESSAGES/gpgex.mo
78   SetOutPath "$INSTDIR\share\locale\pl\LC_MESSAGES"
79   File ${prefix}/share/locale/pl/LC_MESSAGES/gpgex.mo
80   SetOutPath "$INSTDIR\share\locale\zh_CN\LC_MESSAGES"
81   File ${prefix}/share/locale/zh_CN/LC_MESSAGES/gpgex.mo
82   SetOutPath "$INSTDIR\share\locale\zh_TW\LC_MESSAGES"
83   File ${prefix}/share/locale/zh_TW/LC_MESSAGES/gpgex.mo
84   SetOutPath "$INSTDIR\share\locale\fr\LC_MESSAGES"
85   File ${prefix}/share/locale/fr/LC_MESSAGES/gpgex.mo
86
87   SetOutPath "$INSTDIR\share\doc\gpgex"
88   File ${prefix}/share/doc/gpgex/gpgex-en.html
89   File ${prefix}/share/doc/gpgex/gpgex-de.html
90
91
92 ${If} ${RunningX64}
93
94   # Install the 64 bit version of the dll.
95   SetOutPath "$INSTDIR\bin"
96   ClearErrors
97   SetOverwrite try
98   File ${exprefix}/bin/gpgex.dll
99   SetOverwrite lastused
100   ifErrors 0 do_reg64
101       File /oname=gpgex.dll.tmp ${exprefix}/bin/gpgex.dll
102       Rename /REBOOTOK gpgex.dll.tmp gpgex.dll
103
104  do_reg64:
105   # Register the DLL. We need to register both versions.  However
106   # RegDLL can't be used for 64 bit and InstallLib seems to be a
107   # registry hack.
108   ClearErrors
109   ExecWait '"$SYSDIR\regsvr32" /s "$INSTDIR\bin\gpgex.dll"'
110   ifErrors 0 +2
111      MessageBox MB_OK "$(T_GpgEX_RegFailed) (64 bit)"
112
113   # Note: There is no need to install the help an mo files because
114   # they are identical to those installed by the 32 bit version.
115 ${EndIf}
116
117 !endif
118 ${MementoSectionEnd}
119
120
121 LangString T_GpgEX_RegFailed ${LANG_ENGLISH} \
122    "Warning: Registration of the GpgEX plugin failed."
123
124 LangString DESC_SEC_gpgex ${LANG_ENGLISH} \
125    "GnuPG Shell Extension"