-# define installer name\r
-outFile "SimGrid@SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@.exe"\r
+!include "MUI2.nsh"\r
+\r
+;--------------------------------\r
+;Interface Configuration\r
+\r
+ !define MUI_HEADERIMAGE\r
+ !define MUI_HEADERIMAGE_BITMAP "@CMAKE_HOME_DIRECTORY@\doc\webcruft\simgrid_logo_win.bmp" ; optional\r
+ !define MUI_ABORTWARNING\r
+\r
+;--------------------------------\r
+;Pages\r
+\r
+ !insertmacro MUI_PAGE_LICENSE "@CMAKE_HOME_DIRECTORY@\LICENSE-LGPL-2.1"\r
+ !insertmacro MUI_PAGE_COMPONENTS\r
+ !insertmacro MUI_PAGE_DIRECTORY\r
+ !insertmacro MUI_PAGE_INSTFILES\r
+ !insertmacro MUI_PAGE_FINISH\r
+ \r
+ !insertmacro MUI_UNPAGE_CONFIRM\r
+ !insertmacro MUI_UNPAGE_INSTFILES\r
+ !insertmacro MUI_UNPAGE_FINISH\r
+\r
+;--------------------------------\r
+;Languages\r
+ !insertmacro MUI_LANGUAGE "English"\r
+ !insertmacro MUI_LANGUAGE "French"\r
+;--------------------------------\r
+\r
+Name "Simgrid"\r
+outFile "SimGrid@SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@_@NSIS_WIN_VERSION@@BIN_EXE@"\r
+Icon "@CMAKE_HOME_DIRECTORY@\doc\webcruft\SimGrid.ico"\r
\r
# set the default installation directory\r
-InstallDir $PROGRAMFILES\SimGrid\r
+InstallDir c:\SimGrid@SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@\r
\r
-# The text to prompt the user to enter a directory\r
-DirText "This will install Simgrid on your computer. Choose a directory"\r
+Section "Libraries and Headers" LibSection\r
\r
-# default section start\r
-section\r
+ setOutPath $INSTDIR\r
+ file @CMAKE_HOME_DIRECTORY@\AUTHORS\r
+ file @CMAKE_HOME_DIRECTORY@\Changelog\r
+ file @CMAKE_HOME_DIRECTORY@\COPYING\r
+ file @CMAKE_HOME_DIRECTORY@\LICENSE-LGPL-2.1\r
+ file @CMAKE_HOME_DIRECTORY@\NEWS\r
\r
# install lib\r
CreateDirectory $INSTDIR\lib\r
setOutPath $INSTDIR\lib\r
- file lib\libgras.a\r
- file lib\libsimgrid.a\r
+ file lib\libgras.@LIB_EXE@\r
+ file lib\libsimgrid.@LIB_EXE@\r
\r
#install headers\r
CreateDirectory $INSTDIR\include\r
file @CMAKE_HOME_DIRECTORY@\include\simix\datatypes.h\r
file @CMAKE_HOME_DIRECTORY@\include\simix\context.h\r
\r
+SectionEnd\r
+Section "Binaries" BinSection \r
+ \r
# insatll bin\r
CreateDirectory $INSTDIR\bin\r
setOutPath $INSTDIR\bin\r
file bin\colorize\r
- file bin\graphicator.exe\r
- file bin\gras_stub_generator.exe\r
+ file bin\graphicator@BIN_EXE@\r
+ file bin\gras_stub_generator@BIN_EXE@\r
file bin\simgrid_update_xml\r
file bin\smpicc\r
file bin\smpif2c\r
file bin\smpirun\r
file bin\tesh\r
\r
- #install doc\r
+SectionEnd\r
+Section "Documentation" DocSection \r
+ \r
+ # install doc\r
CreateDirectory $INSTDIR\doc\r
setOutPath $INSTDIR\doc\r
- file /r @CMAKE_HOME_DIRECTORY@\doc\html\r
+ file /nonfatal /r @CMAKE_HOME_DIRECTORY@\doc\html\r
+ # create a shortcut in the start menu programs directory\r
+ CreateDirectory "$SMPROGRAMS\SimGrid"\r
+ createShortCut "$SMPROGRAMS\SimGrid\Documentation.lnk" "$INSTDIR\doc\html\index.html"\r
+ createShortCut "$SMPROGRAMS\SimGrid\Website.lnk" "http://simgrid.gforge.inria.fr/"\r
+ \r
+SectionEnd\r
+Section "Examples" ExamplesSection \r
\r
+ CreateDirectory $INSTDIR\examples\r
+ setOutPath $INSTDIR\examples\r
+ \r
+ #install examples for platforms\r
+ file /r @CMAKE_HOME_DIRECTORY@\examples\platforms\r
+ \r
+ # install example HelloWorld\r
+ file /r @CMAKE_HOME_DIRECTORY@\doc\HelloWorld\r
+ \r
+ # install example MasterSlave\r
+ CreateDirectory $INSTDIR\examples\MasterSlave\r
+ setOutPath $INSTDIR\examples\MasterSlave\r
+ file @CMAKE_HOME_DIRECTORY@\examples\msg\masterslave\masterslave_forwarder.c\r
+ file @CMAKE_HOME_DIRECTORY@\examples\msg\masterslave\deployment_masterslave_forwarder.xml\r
+ file @CMAKE_HOME_DIRECTORY@\examples\msg\msg_platform.xml\r
+ file @CMAKE_HOME_DIRECTORY@\doc\HelloWorld\CMakeLists.txt\r
+ file @CMAKE_HOME_DIRECTORY@\doc\HelloWorld\FindPCRE.cmake\r
+ \r
+ # create shortcuts in the start menu programs directory\r
+ CreateDirectory "$SMPROGRAMS\SimGrid\Examples\"\r
+ createShortCut "$SMPROGRAMS\SimGrid\Examples\HelloWorld project.lnk" "$INSTDIR\examples\HelloWorld"\r
+ createShortCut "$SMPROGRAMS\SimGrid\Examples\MasterSlave project.lnk" "$INSTDIR\examples\MasterSlave"\r
+ \r
+SectionEnd\r
+Section "Pcre library" PCRESection \r
+ # install pcre library\r
+ CreateDirectory $INSTDIR\GnuWin32\r
+ setOutPath $INSTDIR\GnuWin32\r
+ file "@PATH_PCRE_LICENCE@\LICENCE"\r
+\r
+ CreateDirectory $INSTDIR\GnuWin32\lib\r
+ setOutPath $INSTDIR\GnuWin32\lib\r
+ file @PATHLIBPCRE@\libpcre.a\r
+ file @PATHLIBPCRE@\libpcreposix.a\r
+ \r
+ CreateDirectory $INSTDIR\GnuWin32\include\r
+ setOutPath $INSTDIR\GnuWin32\include\r
+ file @PATH_PCRE_H@\pcre.h\r
+ file @PATH_PCRE_H@\pcreposix.h\r
+SectionEnd\r
+\r
+# default section start\r
+section \r
# define uninstaller name\r
- writeUninstaller $INSTDIR\uninstaller.exe\r
+ writeUninstaller $INSTDIR\uninstaller@BIN_EXE@\r
\r
# create a shortcut in the start menu programs directory\r
CreateDirectory "$SMPROGRAMS\SimGrid"\r
- createShortCut "$SMPROGRAMS\SimGrid\uninstall simgrid.lnk" "$INSTDIR\uninstaller.exe"\r
+ createShortCut "$SMPROGRAMS\SimGrid\Uninstall simgrid.lnk" "$INSTDIR\uninstaller@BIN_EXE@"\r
\r
- MessageBox MB_OK "Installation was successful."\r
+ # Include for some of the windows message defines\r
+ !include "winmessages.nsh"\r
+ # HKLM (all users) vs HKCU (current user) defines\r
+ !define env_hklm 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'\r
+ !define env_hkcu 'HKCU "Environment"'\r
+ # Set Variables\r
+ WriteRegExpandStr ${env_hklm} SIMGRID_ROOT $INSTDIR\r
+ WriteRegExpandStr ${env_hklm} SIMGRID_VERSION @SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@\r
+\r
+ WriteRegExpandStr ${env_hklm} SIMGRID_PCRE_LIBRARY_PATH $INSTDIR\GnuWin32\r
+ WriteRegExpandStr ${env_hklm} SIMGRID_PCRE_LIBRARY_VERSION "8.12"\r
+\r
+ WriteRegStr HKCU "SOFTWARE\SimGrid" "Version" "@SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@"\r
+ WriteRegStr HKCU "SOFTWARE\SimGrid" "InstallPath" "$INSTDIR"\r
+ \r
+ SetRebootFlag true\r
\r
# default section end\r
sectionEnd\r
\r
+LangString DESC_LibSection ${LANG_ENGLISH} "Install Simgrid and gras libraries with associated headers."\r
+LangString DESC_BinSection ${LANG_ENGLISH} "Install some useful tools for Simgrid."\r
+LangString DESC_DocSection ${LANG_ENGLISH} "Generated (doxygen) documentation."\r
+LangString DESC_ExamplesSection ${LANG_ENGLISH} "Simgrid's HelloWorld example and some classical platforms."\r
+LangString DESC_PCRESection ${LANG_ENGLISH} "Install the PCRE and PCREPOSIX libraries for SimGrid."\r
+\r
+LangString DESC_LibSection ${LANG_FRENCH} "Installer les librairies Simgrid et Gras et leurs EntĂȘtes."\r
+LangString DESC_BinSection ${LANG_FRENCH} "Installer les outils optionnels."\r
+LangString DESC_DocSection ${LANG_FRENCH} "Installer la documentation."\r
+LangString DESC_ExamplesSection ${LANG_FRENCH} "Installer un exemple 'HelloWorld' et des fichiers de plate-formes types."\r
+LangString DESC_PCRESection ${LANG_FRENCH} "Installer les librairies PCRE et PCREPOSIX for SimGrid."\r
+\r
+!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN\r
+ !insertmacro MUI_DESCRIPTION_TEXT ${LibSection} $(DESC_LibSection)\r
+ !insertmacro MUI_DESCRIPTION_TEXT ${BinSection} $(DESC_BinSection)\r
+ !insertmacro MUI_DESCRIPTION_TEXT ${DocSection} $(DESC_DocSection)\r
+ !insertmacro MUI_DESCRIPTION_TEXT ${ExamplesSection} $(DESC_ExamplesSection)\r
+ !insertmacro MUI_DESCRIPTION_TEXT ${PCRESection} $(DESC_PCRESection)\r
+!insertmacro MUI_FUNCTION_DESCRIPTION_END\r
+\r
# create a section to define what the uninstaller does.\r
# the section will always be named "Uninstall"\r
section "Uninstall"\r
\r
# always delete uninstaller first\r
- delete $INSTDIR\uninstaller.exe\r
+ delete $INSTDIR\uninstaller@BIN_EXE@\r
\r
# delete installed libs\r
- delete $INSTDIR\lib\libgras.a\r
- delete $INSTDIR\lib\libsimgrid.a\r
+ delete $INSTDIR\lib\libgras.@LIB_EXE@\r
+ delete $INSTDIR\lib\libsimgrid.@LIB_EXE@\r
\r
# delete installed bin\r
delete $INSTDIR\bin\colorize\r
- delete $INSTDIR\bin\graphicator.exe\r
- delete $INSTDIR\bin\gras_stub_generator.exe\r
+ delete $INSTDIR\bin\graphicator@BIN_EXE@\r
+ delete $INSTDIR\bin\gras_stub_generator@BIN_EXE@\r
delete $INSTDIR\bin\simgrid_update_xml\r
delete $INSTDIR\bin\smpicc\r
delete $INSTDIR\bin\smpif2c\r
delete $INSTDIR\include\simix\context.h\r
\r
# delete link\r
- delete "$SMPROGRAMS\SimGrid\uninstall simgrid.lnk"\r
-\r
+ delete "$SMPROGRAMS\SimGrid\Uninstall simgrid.lnk"\r
+ delete "$SMPROGRAMS\SimGrid\Documentation.lnk"\r
+ delete "$SMPROGRAMS\SimGrid\Website.lnk"\r
+ delete "$SMPROGRAMS\SimGrid\Examples\HelloWorld project.lnk"\r
+ delete "$SMPROGRAMS\SimGrid\Examples\MasterSlave project.lnk"\r
+ \r
+ # delete EXTRA FILES\r
+ delete $INSTDIR\AUTHORS\r
+ delete $INSTDIR\Changelog\r
+ delete $INSTDIR\COPYING\r
+ delete $INSTDIR\LICENSE-LGPL-2.1\r
+ delete $INSTDIR\NEWS\r
+ \r
# now delete directories\r
RMDir "$INSTDIR\bin"\r
RMDir "$INSTDIR\lib"\r
RMDir "$INSTDIR\include\mc"\r
RMDir "$INSTDIR\include\xbt"\r
RMDir "$INSTDIR\include"\r
- RMDir "$INSTDIR\doc"\r
+ RMDir /r "$INSTDIR\doc"\r
+ RMDir /r "$INSTDIR\examples"\r
+ RMDir "$SMPROGRAMS\SimGrid\Examples"\r
RMDir "$SMPROGRAMS\SimGrid"\r
- RMDir "$PROGRAMFILES\SimGrid"\r
-\r
+ \r
+ # delete PCRE\r
+ RMDir /r "$INSTDIR\GnuWin32"\r
+ \r
+ # Delete variable\r
+ DeleteRegValue ${env_hklm} SIMGRID_ROOT\r
+ DeleteRegValue ${env_hklm} SIMGRID_VERSION\r
+ DeleteRegValue ${env_hklm} SIMGRID_PCRE_LIBRARY_PATH\r
+ DeleteRegValue ${env_hklm} SIMGRID_PCRE_LIBRARY_VERSION\r
+ DeleteRegKey HKCU "SOFTWARE\SimGrid"\r
+ \r
+ # delete INSTDIR\r
+ RMDir /r "$INSTDIR"\r
+ \r
# uninstall section end\r
sectionEnd
\ No newline at end of file