Logo AND Algorithmique Numérique Distribuée

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