Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
The pcre library is static on win32
[simgrid.git] / buildtools / Cmake / simgrid.nsi.in
1 !include "MUI2.nsh"\r
2 \r
3 ;--------------------------------\r
4 ;Interface Configuration\r
5 \r
6   !define MUI_HEADERIMAGE\r
7   !define MUI_HEADERIMAGE_BITMAP "@CMAKE_HOME_DIRECTORY@\doc\webcruft\simgrid_logo_win.bmp" ; optional\r
8   !define MUI_ABORTWARNING\r
9 \r
10 ;--------------------------------\r
11 ;Pages\r
12 \r
13   !insertmacro MUI_PAGE_LICENSE "@CMAKE_HOME_DIRECTORY@\LICENSE-LGPL-2.1"\r
14   !insertmacro MUI_PAGE_COMPONENTS\r
15   !insertmacro MUI_PAGE_DIRECTORY\r
16   !insertmacro MUI_PAGE_INSTFILES\r
17   !insertmacro MUI_PAGE_FINISH\r
18   \r
19   !insertmacro MUI_UNPAGE_CONFIRM\r
20   !insertmacro MUI_UNPAGE_INSTFILES\r
21   !insertmacro MUI_UNPAGE_FINISH\r
22 \r
23 ;--------------------------------\r
24 ;Languages\r
25   !insertmacro MUI_LANGUAGE "English"\r
26   !insertmacro MUI_LANGUAGE "French"\r
27 ;--------------------------------\r
28 \r
29 Name "Simgrid"\r
30 outFile "SimGrid@SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@_@SIMGRID_SYSTEM_PROCESSOR@@BIN_EXE@"\r
31 Icon "@CMAKE_HOME_DIRECTORY@\doc\webcruft\SimGrid.ico"\r
32 \r
33 # set the default installation directory\r
34 InstallDir c:\SimGrid@SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@\r
35 \r
36 Section "Libraries and Headers" LibSection\r
37 \r
38         # install lib\r
39         CreateDirectory $INSTDIR\lib\r
40         setOutPath $INSTDIR\lib\r
41         file lib\libgras.@LIB_EXE@\r
42         file lib\libsimgrid.@LIB_EXE@\r
43         \r
44         #install headers\r
45         CreateDirectory  $INSTDIR\include\r
46         setOutPath $INSTDIR\include\r
47         file @CMAKE_HOME_DIRECTORY@\include\gras.h \r
48         file @CMAKE_HOME_DIRECTORY@\include\xbt.h\r
49         file include\simgrid_config.h\r
50         \r
51         CreateDirectory  $INSTDIR\include\xbt\r
52         setOutPath $INSTDIR\include\xbt\r
53         file @CMAKE_HOME_DIRECTORY@\include\xbt\misc.h\r
54         file @CMAKE_HOME_DIRECTORY@\include\xbt\sysdep.h\r
55         file @CMAKE_HOME_DIRECTORY@\include\xbt\virtu.h\r
56         file @CMAKE_HOME_DIRECTORY@\include\xbt\str.h\r
57         file @CMAKE_HOME_DIRECTORY@\include\xbt\strbuff.h\r
58         file @CMAKE_HOME_DIRECTORY@\include\xbt\hash.h\r
59         file @CMAKE_HOME_DIRECTORY@\include\xbt\function_types.h\r
60         file @CMAKE_HOME_DIRECTORY@\include\xbt\asserts.h \r
61         file @CMAKE_HOME_DIRECTORY@\include\xbt\ex.h\r
62         file @CMAKE_HOME_DIRECTORY@\include\xbt\log.h\r
63         file @CMAKE_HOME_DIRECTORY@\include\xbt\module.h\r
64         file @CMAKE_HOME_DIRECTORY@\include\xbt\mallocator.h\r
65         file @CMAKE_HOME_DIRECTORY@\include\xbt\dynar.h\r
66         file @CMAKE_HOME_DIRECTORY@\include\xbt\dict.h\r
67         file @CMAKE_HOME_DIRECTORY@\include\xbt\set.h\r
68         file @CMAKE_HOME_DIRECTORY@\include\xbt\heap.h\r
69         file @CMAKE_HOME_DIRECTORY@\include\xbt\graph.h\r
70         file @CMAKE_HOME_DIRECTORY@\include\xbt\fifo.h\r
71         file @CMAKE_HOME_DIRECTORY@\include\xbt\swag.h\r
72         file @CMAKE_HOME_DIRECTORY@\include\xbt\lib.h\r
73         file @CMAKE_HOME_DIRECTORY@\include\xbt\matrix.h\r
74         file @CMAKE_HOME_DIRECTORY@\include\xbt\peer.h\r
75         file @CMAKE_HOME_DIRECTORY@\include\xbt\config.h\r
76         file @CMAKE_HOME_DIRECTORY@\include\xbt\cunit.h\r
77         file @CMAKE_HOME_DIRECTORY@\include\xbt\graphxml_parse.h\r
78         file @CMAKE_HOME_DIRECTORY@\include\xbt\graphxml.h\r
79         file @CMAKE_HOME_DIRECTORY@\include\xbt\time.h\r
80         file @CMAKE_HOME_DIRECTORY@\include\xbt\synchro.h\r
81         file @CMAKE_HOME_DIRECTORY@\include\xbt\synchro_core.h\r
82         file @CMAKE_HOME_DIRECTORY@\include\xbt\queue.h\r
83         file @CMAKE_HOME_DIRECTORY@\include\xbt\setset.h\r
84         file @CMAKE_HOME_DIRECTORY@\include\xbt\mmalloc.h\r
85         file @CMAKE_HOME_DIRECTORY@\include\xbt\replay_trace_reader.h\r
86         file @CMAKE_HOME_DIRECTORY@\include\xbt\parmap.h\r
87         \r
88         CreateDirectory  $INSTDIR\include\mc\r
89         setOutPath $INSTDIR\include\mc\r
90         file @CMAKE_HOME_DIRECTORY@\include\mc\modelchecker.h\r
91         \r
92         CreateDirectory  $INSTDIR\include\msg\r
93         setOutPath $INSTDIR\include\msg\r
94         file @CMAKE_HOME_DIRECTORY@\include\msg\msg.h\r
95         file @CMAKE_HOME_DIRECTORY@\include\msg\datatypes.h\r
96         \r
97         CreateDirectory  $INSTDIR\include\simdag\r
98         setOutPath $INSTDIR\include\simdag\r
99         file @CMAKE_HOME_DIRECTORY@\include\simdag\simdag.h\r
100         file @CMAKE_HOME_DIRECTORY@\include\simdag\datatypes.h\r
101         \r
102         CreateDirectory  $INSTDIR\include\smpi\r
103         setOutPath $INSTDIR\include\smpi\r
104         file @CMAKE_HOME_DIRECTORY@\include\smpi\smpi.h\r
105         file @CMAKE_HOME_DIRECTORY@\include\smpi\mpi.h\r
106         file @CMAKE_HOME_DIRECTORY@\include\smpi\mpif.h\r
107         file @CMAKE_HOME_DIRECTORY@\include\smpi\smpi_cocci.h\r
108         file include\smpi\smpif.h\r
109         \r
110         CreateDirectory  $INSTDIR\include\surf\r
111         setOutPath $INSTDIR\include\surf\r
112         file @CMAKE_HOME_DIRECTORY@\include\surf\surfxml_parse.h\r
113         file @CMAKE_HOME_DIRECTORY@\include\surf\simgrid_dtd.h\r
114         file @CMAKE_HOME_DIRECTORY@\include\surf\surf_routing.h\r
115         \r
116         CreateDirectory  $INSTDIR\include\gras\r
117         setOutPath $INSTDIR\include\gras\r
118         file @CMAKE_HOME_DIRECTORY@\include\gras\datadesc.h\r
119         file @CMAKE_HOME_DIRECTORY@\include\gras\transport.h\r
120         file @CMAKE_HOME_DIRECTORY@\include\gras\virtu.h\r
121         file @CMAKE_HOME_DIRECTORY@\include\gras\emul.h\r
122         file @CMAKE_HOME_DIRECTORY@\include\gras\process.h\r
123         file @CMAKE_HOME_DIRECTORY@\include\gras\module.h\r
124         file @CMAKE_HOME_DIRECTORY@\include\gras\messages.h\r
125         file @CMAKE_HOME_DIRECTORY@\include\gras\timer.h\r
126         \r
127         CreateDirectory  $INSTDIR\include\amok\r
128         setOutPath $INSTDIR\include\amok\r
129         file @CMAKE_HOME_DIRECTORY@\include\amok\peermanagement.h\r
130         file @CMAKE_HOME_DIRECTORY@\include\amok\bandwidth.h\r
131         \r
132         CreateDirectory  $INSTDIR\include\instr\r
133         setOutPath $INSTDIR\include\instr\r
134         file @CMAKE_HOME_DIRECTORY@\include\instr\instr.h\r
135         \r
136         CreateDirectory  $INSTDIR\include\simix\r
137         setOutPath $INSTDIR\include\simix\r
138         file @CMAKE_HOME_DIRECTORY@\include\simix\simix.h\r
139         file @CMAKE_HOME_DIRECTORY@\include\simix\datatypes.h\r
140         file @CMAKE_HOME_DIRECTORY@\include\simix\context.h\r
141         \r
142 SectionEnd\r
143 Section "Binaries" BinSection   \r
144         \r
145         # insatll bin\r
146         CreateDirectory $INSTDIR\bin\r
147         setOutPath $INSTDIR\bin\r
148         file bin\colorize\r
149         file bin\graphicator@BIN_EXE@\r
150         file bin\gras_stub_generator@BIN_EXE@\r
151         file bin\simgrid_update_xml\r
152         file bin\smpicc\r
153         file bin\smpif2c\r
154         file bin\smpiff\r
155         file bin\smpirun\r
156         file bin\tesh\r
157         \r
158 SectionEnd\r
159 Section "Documentation" DocSection      \r
160         \r
161         # install doc\r
162         CreateDirectory $INSTDIR\doc\r
163         setOutPath $INSTDIR\doc\r
164         file /nonfatal /r @CMAKE_HOME_DIRECTORY@\doc\html\r
165         # create a shortcut in the start menu programs directory\r
166         CreateDirectory "$SMPROGRAMS\SimGrid"\r
167         createShortCut  "$SMPROGRAMS\SimGrid\Documentation.lnk" "$INSTDIR\doc\html\index.html"\r
168         \r
169 SectionEnd\r
170 Section "Examples" ExamplesSection      \r
171         \r
172         # install examples\r
173         CreateDirectory $INSTDIR\examples\r
174         setOutPath $INSTDIR\examples\r
175         file /r @CMAKE_HOME_DIRECTORY@\examples\platforms\r
176         file /r @CMAKE_HOME_DIRECTORY@\doc\HelloWorld\r
177         # create a shortcut in the start menu programs directory\r
178         createShortCut  "$SMPROGRAMS\SimGrid\HelloWorld project.lnk"    "$INSTDIR\examples\HelloWorld"  \r
179         \r
180 SectionEnd\r
181 Section "Pcre library" PCRESection      \r
182         \r
183         # install pcre library\r
184         CreateDirectory $INSTDIR\GnuWin32\r
185         \r
186         CreateDirectory $INSTDIR\GnuWin32\lib\r
187         setOutPath $INSTDIR\GnuWin32\lib\r
188         file @PATHLIBPCRE@\libpcre.a\r
189         file @PATHLIBPCRE@\libpcreposix.a\r
190         \r
191         CreateDirectory $INSTDIR\GnuWin32\include\r
192         setOutPath $INSTDIR\GnuWin32\include\r
193         file @PATH_PCRE_H@\pcre.h\r
194         file @PATH_PCRE_H@\pcreposix.h\r
195         \r
196         setOutPath $INSTDIR\GnuWin32\\r
197         file @PATH_PCRE_H@\..\LICENCE\r
198 SectionEnd\r
199 \r
200 # default section start\r
201 section \r
202         # define uninstaller name\r
203         writeUninstaller $INSTDIR\uninstaller@BIN_EXE@\r
204 \r
205         # create a shortcut in the start menu programs directory\r
206         CreateDirectory "$SMPROGRAMS\SimGrid"\r
207         createShortCut  "$SMPROGRAMS\SimGrid\Uninstall simgrid.lnk" "$INSTDIR\uninstaller@BIN_EXE@"\r
208 \r
209         # Include for some of the windows message defines\r
210         !include "winmessages.nsh"\r
211         # HKLM (all users) vs HKCU (current user) defines\r
212         !define env_hklm 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'\r
213         !define env_hkcu 'HKCU "Environment"'\r
214         # Set Variables\r
215         WriteRegExpandStr ${env_hklm} SIMGRID_ROOT $INSTDIR\r
216         WriteRegExpandStr ${env_hklm} SIMGRID_VERSION @SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@\r
217 \r
218         WriteRegExpandStr ${env_hklm} SIMGRID_PCRE_LIBRARY_PATH $INSTDIR\GnuWin32\r
219         WriteRegExpandStr ${env_hklm} SIMGRID_PCRE_LIBRARY_VERSION "8.12"\r
220 \r
221         WriteRegStr HKCU "SOFTWARE\SimGrid" "Version" "@SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@"\r
222         WriteRegStr HKCU "SOFTWARE\SimGrid" "InstallPath" "$INSTDIR"\r
223         \r
224         SetRebootFlag true\r
225 \r
226 # default section end\r
227 sectionEnd\r
228 \r
229 LangString DESC_LibSection              ${LANG_ENGLISH} "Install Simgrid and gras libraries with associated headers."\r
230 LangString DESC_BinSection              ${LANG_ENGLISH} "Install some useful tools for Simgrid."\r
231 LangString DESC_DocSection              ${LANG_ENGLISH} "Generated (doxygen) documentation."\r
232 LangString DESC_ExamplesSection ${LANG_ENGLISH} "Simgrid's HelloWorld example and some classical platforms."\r
233 LangString DESC_PCRESection     ${LANG_ENGLISH} "Install the PCRE and PCREPOSIX libraries for SimGrid."\r
234 \r
235 LangString DESC_LibSection              ${LANG_FRENCH}  "Installer les librairies Simgrid et Gras et leurs EntĂȘtes."\r
236 LangString DESC_BinSection              ${LANG_FRENCH}  "Installer les outils optionnels."\r
237 LangString DESC_DocSection              ${LANG_FRENCH}  "Installer la documentation."\r
238 LangString DESC_ExamplesSection ${LANG_FRENCH}  "Installer un exemple 'HelloWorld' et des fichiers de plate-formes types."\r
239 LangString DESC_PCRESection     ${LANG_FRENCH}  "Installer les librairies PCRE et PCREPOSIX for SimGrid."\r
240 \r
241 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN\r
242   !insertmacro MUI_DESCRIPTION_TEXT ${LibSection}               $(DESC_LibSection)\r
243   !insertmacro MUI_DESCRIPTION_TEXT ${BinSection}               $(DESC_BinSection)\r
244   !insertmacro MUI_DESCRIPTION_TEXT ${DocSection}               $(DESC_DocSection)\r
245   !insertmacro MUI_DESCRIPTION_TEXT ${ExamplesSection}  $(DESC_ExamplesSection)\r
246   !insertmacro MUI_DESCRIPTION_TEXT ${PCRESection}              $(DESC_PCRESection)\r
247 !insertmacro MUI_FUNCTION_DESCRIPTION_END\r
248 \r
249 # create a section to define what the uninstaller does.\r
250 # the section will always be named "Uninstall"\r
251 section "Uninstall"\r
252 \r
253         # always delete uninstaller first\r
254         delete $INSTDIR\uninstaller@BIN_EXE@\r
255 \r
256         # delete installed libs\r
257         delete $INSTDIR\lib\libgras.@LIB_EXE@\r
258         delete $INSTDIR\lib\libsimgrid.@LIB_EXE@\r
259 \r
260         # delete installed bin\r
261         delete $INSTDIR\bin\colorize\r
262         delete $INSTDIR\bin\graphicator@BIN_EXE@\r
263         delete $INSTDIR\bin\gras_stub_generator@BIN_EXE@\r
264         delete $INSTDIR\bin\simgrid_update_xml\r
265         delete $INSTDIR\bin\smpicc\r
266         delete $INSTDIR\bin\smpif2c\r
267         delete $INSTDIR\bin\smpiff\r
268         delete $INSTDIR\bin\smpirun\r
269         delete $INSTDIR\bin\tesh\r
270         \r
271         # delete installed headers\r
272         delete $INSTDIR\include\gras.h \r
273         delete $INSTDIR\include\xbt.h\r
274         delete $INSTDIR\include\simgrid_config.h\r
275         delete $INSTDIR\include\xbt\misc.h\r
276         delete $INSTDIR\include\xbt\sysdep.h\r
277         delete $INSTDIR\include\xbt\virtu.h\r
278         delete $INSTDIR\include\xbt\str.h\r
279         delete $INSTDIR\include\xbt\strbuff.h\r
280         delete $INSTDIR\include\xbt\hash.h\r
281         delete $INSTDIR\include\xbt\function_types.h\r
282         delete $INSTDIR\include\xbt\asserts.h \r
283         delete $INSTDIR\include\xbt\ex.h\r
284         delete $INSTDIR\include\xbt\log.h\r
285         delete $INSTDIR\include\xbt\module.h\r
286         delete $INSTDIR\include\xbt\mallocator.h\r
287         delete $INSTDIR\include\xbt\dynar.h\r
288         delete $INSTDIR\include\xbt\dict.h\r
289         delete $INSTDIR\include\xbt\set.h\r
290         delete $INSTDIR\include\xbt\heap.h\r
291         delete $INSTDIR\include\xbt\graph.h\r
292         delete $INSTDIR\include\xbt\fifo.h\r
293         delete $INSTDIR\include\xbt\swag.h\r
294         delete $INSTDIR\include\xbt\lib.h\r
295         delete $INSTDIR\include\xbt\matrix.h\r
296         delete $INSTDIR\include\xbt\peer.h\r
297         delete $INSTDIR\include\xbt\config.h\r
298         delete $INSTDIR\include\xbt\cunit.h\r
299         delete $INSTDIR\include\xbt\graphxml_parse.h\r
300         delete $INSTDIR\include\xbt\graphxml.h\r
301         delete $INSTDIR\include\xbt\time.h\r
302         delete $INSTDIR\include\xbt\synchro.h\r
303         delete $INSTDIR\include\xbt\synchro_core.h\r
304         delete $INSTDIR\include\xbt\queue.h\r
305         delete $INSTDIR\include\xbt\setset.h\r
306         delete $INSTDIR\include\xbt\mmalloc.h\r
307         delete $INSTDIR\include\xbt\replay_trace_reader.h\r
308         delete $INSTDIR\include\xbt\parmap.h\r
309         delete $INSTDIR\include\mc\modelchecker.h\r
310         delete $INSTDIR\include\msg\msg.h\r
311         delete $INSTDIR\include\msg\datatypes.h \r
312         delete $INSTDIR\include\simdag\simdag.h\r
313         delete $INSTDIR\include\simdag\datatypes.h\r
314         delete $INSTDIR\include\smpi\smpi.h\r
315         delete $INSTDIR\include\smpi\mpi.h\r
316         delete $INSTDIR\include\smpi\mpif.h\r
317         delete $INSTDIR\include\smpi\smpi_cocci.h\r
318         delete $INSTDIR\include\smpi\smpif.h\r
319         delete $INSTDIR\include\surf\surfxml_parse.h\r
320         delete $INSTDIR\include\surf\simgrid_dtd.h\r
321         delete $INSTDIR\include\surf\surf_routing.h\r
322         delete $INSTDIR\include\gras\datadesc.h\r
323         delete $INSTDIR\include\gras\transport.h\r
324         delete $INSTDIR\include\gras\virtu.h\r
325         delete $INSTDIR\include\gras\emul.h\r
326         delete $INSTDIR\include\gras\process.h\r
327         delete $INSTDIR\include\gras\module.h\r
328         delete $INSTDIR\include\gras\messages.h\r
329         delete $INSTDIR\include\gras\timer.h\r
330         delete $INSTDIR\include\amok\peermanagement.h\r
331         delete $INSTDIR\include\amok\bandwidth.h\r
332         delete $INSTDIR\include\instr\instr.h\r
333         delete $INSTDIR\include\simix\simix.h\r
334         delete $INSTDIR\include\simix\datatypes.h\r
335         delete $INSTDIR\include\simix\context.h\r
336                 \r
337         # delete link\r
338         delete "$SMPROGRAMS\SimGrid\Uninstall simgrid.lnk"\r
339         delete "$SMPROGRAMS\SimGrid\Documentation.lnk"\r
340         delete "$SMPROGRAMS\SimGrid\HelloWorld project.lnk"\r
341         \r
342         # now delete directories\r
343         RMDir  "$INSTDIR\bin"\r
344         RMDir  "$INSTDIR\lib"\r
345         RMDir  "$INSTDIR\include\simix"\r
346         RMDir  "$INSTDIR\include\instr"\r
347         RMDir  "$INSTDIR\include\amok"\r
348         RMDir  "$INSTDIR\include\gras"\r
349         RMDir  "$INSTDIR\include\surf"\r
350         RMDir  "$INSTDIR\include\smpi"\r
351         RMDir  "$INSTDIR\include\simdag"\r
352         RMDir  "$INSTDIR\include\msg"\r
353         RMDir  "$INSTDIR\include\mc"\r
354         RMDir  "$INSTDIR\include\xbt"\r
355         RMDir  "$INSTDIR\include"\r
356         RMDir  /r "$INSTDIR\doc"\r
357         RMDir  /r "$INSTDIR\examples"\r
358         RMDir  "$SMPROGRAMS\SimGrid"\r
359         \r
360         # delete PCRE\r
361         RMDir   "$INSTDIR\GnuWin32"\r
362         \r
363         # Delete variable\r
364         DeleteRegValue ${env_hklm} SIMGRID_ROOT\r
365         DeleteRegValue ${env_hklm} SIMGRID_VERSION\r
366         DeleteRegValue ${env_hklm} SIMGRID_PCRE_LIBRARY_PATH\r
367         DeleteRegValue ${env_hklm} SIMGRID_PCRE_LIBRARY_VERSION\r
368       DeleteRegKey HKCU "SOFTWARE\SimGrid"\r
369     \r
370 # uninstall section end\r
371 sectionEnd