Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot//simgrid/simgrid
[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         # install pcre library\r
183         CreateDirectory $INSTDIR\GnuWin32\r
184         setOutPath $INSTDIR\GnuWin32\r
185         file "@PATH_PCRE_LICENCE@\LICENCE"\r
186 \r
187         CreateDirectory $INSTDIR\GnuWin32\lib\r
188         setOutPath $INSTDIR\GnuWin32\lib\r
189         file @PATHLIBPCRE@\libpcre.a\r
190         file @PATHLIBPCRE@\libpcreposix.a\r
191         \r
192         CreateDirectory $INSTDIR\GnuWin32\include\r
193         setOutPath $INSTDIR\GnuWin32\include\r
194         file @PATH_PCRE_H@\pcre.h\r
195         file @PATH_PCRE_H@\pcreposix.h\r
196 SectionEnd\r
197 \r
198 # default section start\r
199 section \r
200         # define uninstaller name\r
201         writeUninstaller $INSTDIR\uninstaller@BIN_EXE@\r
202 \r
203         # create a shortcut in the start menu programs directory\r
204         CreateDirectory "$SMPROGRAMS\SimGrid"\r
205         createShortCut  "$SMPROGRAMS\SimGrid\Uninstall simgrid.lnk" "$INSTDIR\uninstaller@BIN_EXE@"\r
206 \r
207         # Include for some of the windows message defines\r
208         !include "winmessages.nsh"\r
209         # HKLM (all users) vs HKCU (current user) defines\r
210         !define env_hklm 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'\r
211         !define env_hkcu 'HKCU "Environment"'\r
212         # Set Variables\r
213         WriteRegExpandStr ${env_hklm} SIMGRID_ROOT $INSTDIR\r
214         WriteRegExpandStr ${env_hklm} SIMGRID_VERSION @SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@\r
215 \r
216         WriteRegExpandStr ${env_hklm} SIMGRID_PCRE_LIBRARY_PATH $INSTDIR\GnuWin32\r
217         WriteRegExpandStr ${env_hklm} SIMGRID_PCRE_LIBRARY_VERSION "8.12"\r
218 \r
219         WriteRegStr HKCU "SOFTWARE\SimGrid" "Version" "@SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@"\r
220         WriteRegStr HKCU "SOFTWARE\SimGrid" "InstallPath" "$INSTDIR"\r
221         \r
222         SetRebootFlag true\r
223 \r
224 # default section end\r
225 sectionEnd\r
226 \r
227 LangString DESC_LibSection              ${LANG_ENGLISH} "Install Simgrid and gras libraries with associated headers."\r
228 LangString DESC_BinSection              ${LANG_ENGLISH} "Install some useful tools for Simgrid."\r
229 LangString DESC_DocSection              ${LANG_ENGLISH} "Generated (doxygen) documentation."\r
230 LangString DESC_ExamplesSection ${LANG_ENGLISH} "Simgrid's HelloWorld example and some classical platforms."\r
231 LangString DESC_PCRESection     ${LANG_ENGLISH} "Install the PCRE and PCREPOSIX libraries for SimGrid."\r
232 \r
233 LangString DESC_LibSection              ${LANG_FRENCH}  "Installer les librairies Simgrid et Gras et leurs EntĂȘtes."\r
234 LangString DESC_BinSection              ${LANG_FRENCH}  "Installer les outils optionnels."\r
235 LangString DESC_DocSection              ${LANG_FRENCH}  "Installer la documentation."\r
236 LangString DESC_ExamplesSection ${LANG_FRENCH}  "Installer un exemple 'HelloWorld' et des fichiers de plate-formes types."\r
237 LangString DESC_PCRESection     ${LANG_FRENCH}  "Installer les librairies PCRE et PCREPOSIX for SimGrid."\r
238 \r
239 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN\r
240   !insertmacro MUI_DESCRIPTION_TEXT ${LibSection}               $(DESC_LibSection)\r
241   !insertmacro MUI_DESCRIPTION_TEXT ${BinSection}               $(DESC_BinSection)\r
242   !insertmacro MUI_DESCRIPTION_TEXT ${DocSection}               $(DESC_DocSection)\r
243   !insertmacro MUI_DESCRIPTION_TEXT ${ExamplesSection}  $(DESC_ExamplesSection)\r
244   !insertmacro MUI_DESCRIPTION_TEXT ${PCRESection}              $(DESC_PCRESection)\r
245 !insertmacro MUI_FUNCTION_DESCRIPTION_END\r
246 \r
247 # create a section to define what the uninstaller does.\r
248 # the section will always be named "Uninstall"\r
249 section "Uninstall"\r
250 \r
251         # always delete uninstaller first\r
252         delete $INSTDIR\uninstaller@BIN_EXE@\r
253 \r
254         # delete installed libs\r
255         delete $INSTDIR\lib\libgras.@LIB_EXE@\r
256         delete $INSTDIR\lib\libsimgrid.@LIB_EXE@\r
257 \r
258         # delete installed bin\r
259         delete $INSTDIR\bin\colorize\r
260         delete $INSTDIR\bin\graphicator@BIN_EXE@\r
261         delete $INSTDIR\bin\gras_stub_generator@BIN_EXE@\r
262         delete $INSTDIR\bin\simgrid_update_xml\r
263         delete $INSTDIR\bin\smpicc\r
264         delete $INSTDIR\bin\smpif2c\r
265         delete $INSTDIR\bin\smpiff\r
266         delete $INSTDIR\bin\smpirun\r
267         delete $INSTDIR\bin\tesh\r
268         \r
269         # delete installed headers\r
270         delete $INSTDIR\include\gras.h \r
271         delete $INSTDIR\include\xbt.h\r
272         delete $INSTDIR\include\simgrid_config.h\r
273         delete $INSTDIR\include\xbt\misc.h\r
274         delete $INSTDIR\include\xbt\sysdep.h\r
275         delete $INSTDIR\include\xbt\virtu.h\r
276         delete $INSTDIR\include\xbt\str.h\r
277         delete $INSTDIR\include\xbt\strbuff.h\r
278         delete $INSTDIR\include\xbt\hash.h\r
279         delete $INSTDIR\include\xbt\function_types.h\r
280         delete $INSTDIR\include\xbt\asserts.h \r
281         delete $INSTDIR\include\xbt\ex.h\r
282         delete $INSTDIR\include\xbt\log.h\r
283         delete $INSTDIR\include\xbt\module.h\r
284         delete $INSTDIR\include\xbt\mallocator.h\r
285         delete $INSTDIR\include\xbt\dynar.h\r
286         delete $INSTDIR\include\xbt\dict.h\r
287         delete $INSTDIR\include\xbt\set.h\r
288         delete $INSTDIR\include\xbt\heap.h\r
289         delete $INSTDIR\include\xbt\graph.h\r
290         delete $INSTDIR\include\xbt\fifo.h\r
291         delete $INSTDIR\include\xbt\swag.h\r
292         delete $INSTDIR\include\xbt\lib.h\r
293         delete $INSTDIR\include\xbt\matrix.h\r
294         delete $INSTDIR\include\xbt\peer.h\r
295         delete $INSTDIR\include\xbt\config.h\r
296         delete $INSTDIR\include\xbt\cunit.h\r
297         delete $INSTDIR\include\xbt\graphxml_parse.h\r
298         delete $INSTDIR\include\xbt\graphxml.h\r
299         delete $INSTDIR\include\xbt\time.h\r
300         delete $INSTDIR\include\xbt\synchro.h\r
301         delete $INSTDIR\include\xbt\synchro_core.h\r
302         delete $INSTDIR\include\xbt\queue.h\r
303         delete $INSTDIR\include\xbt\setset.h\r
304         delete $INSTDIR\include\xbt\mmalloc.h\r
305         delete $INSTDIR\include\xbt\replay_trace_reader.h\r
306         delete $INSTDIR\include\xbt\parmap.h\r
307         delete $INSTDIR\include\mc\modelchecker.h\r
308         delete $INSTDIR\include\msg\msg.h\r
309         delete $INSTDIR\include\msg\datatypes.h \r
310         delete $INSTDIR\include\simdag\simdag.h\r
311         delete $INSTDIR\include\simdag\datatypes.h\r
312         delete $INSTDIR\include\smpi\smpi.h\r
313         delete $INSTDIR\include\smpi\mpi.h\r
314         delete $INSTDIR\include\smpi\mpif.h\r
315         delete $INSTDIR\include\smpi\smpi_cocci.h\r
316         delete $INSTDIR\include\smpi\smpif.h\r
317         delete $INSTDIR\include\surf\surfxml_parse.h\r
318         delete $INSTDIR\include\surf\simgrid_dtd.h\r
319         delete $INSTDIR\include\surf\surf_routing.h\r
320         delete $INSTDIR\include\gras\datadesc.h\r
321         delete $INSTDIR\include\gras\transport.h\r
322         delete $INSTDIR\include\gras\virtu.h\r
323         delete $INSTDIR\include\gras\emul.h\r
324         delete $INSTDIR\include\gras\process.h\r
325         delete $INSTDIR\include\gras\module.h\r
326         delete $INSTDIR\include\gras\messages.h\r
327         delete $INSTDIR\include\gras\timer.h\r
328         delete $INSTDIR\include\amok\peermanagement.h\r
329         delete $INSTDIR\include\amok\bandwidth.h\r
330         delete $INSTDIR\include\instr\instr.h\r
331         delete $INSTDIR\include\simix\simix.h\r
332         delete $INSTDIR\include\simix\datatypes.h\r
333         delete $INSTDIR\include\simix\context.h\r
334                 \r
335         # delete link\r
336         delete "$SMPROGRAMS\SimGrid\Uninstall simgrid.lnk"\r
337         delete "$SMPROGRAMS\SimGrid\Documentation.lnk"\r
338         delete "$SMPROGRAMS\SimGrid\HelloWorld project.lnk"\r
339         \r
340         # now delete directories\r
341         RMDir  "$INSTDIR\bin"\r
342         RMDir  "$INSTDIR\lib"\r
343         RMDir  "$INSTDIR\include\simix"\r
344         RMDir  "$INSTDIR\include\instr"\r
345         RMDir  "$INSTDIR\include\amok"\r
346         RMDir  "$INSTDIR\include\gras"\r
347         RMDir  "$INSTDIR\include\surf"\r
348         RMDir  "$INSTDIR\include\smpi"\r
349         RMDir  "$INSTDIR\include\simdag"\r
350         RMDir  "$INSTDIR\include\msg"\r
351         RMDir  "$INSTDIR\include\mc"\r
352         RMDir  "$INSTDIR\include\xbt"\r
353         RMDir  "$INSTDIR\include"\r
354         RMDir  /r "$INSTDIR\doc"\r
355         RMDir  /r "$INSTDIR\examples"\r
356         RMDir  "$SMPROGRAMS\SimGrid"\r
357         \r
358         # delete PCRE\r
359         RMDir   /r "$INSTDIR\GnuWin32"\r
360         \r
361         # Delete variable\r
362         DeleteRegValue ${env_hklm} SIMGRID_ROOT\r
363         DeleteRegValue ${env_hklm} SIMGRID_VERSION\r
364         DeleteRegValue ${env_hklm} SIMGRID_PCRE_LIBRARY_PATH\r
365         DeleteRegValue ${env_hklm} SIMGRID_PCRE_LIBRARY_VERSION\r
366       DeleteRegKey HKCU "SOFTWARE\SimGrid"\r
367     \r
368 # uninstall section end\r
369 sectionEnd