Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update nsis script.
[simgrid.git] / buildtools / Cmake / simgrid.nsi.in
index c34a8e1..a519916 100644 (file)
@@ -1,14 +1,46 @@
-# define installer name\r
-outFile "SimGrid@SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@_@CMAKE_SYSTEM_PROCESSOR@@BIN_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
@@ -114,6 +146,9 @@ section
        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
@@ -127,20 +162,65 @@ section
        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 /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 /r "@PCRE_LIBRARY_PATH@\lib"\r
+       file /r "@PCRE_LIBRARY_PATH@\include"\r
+       file /nonfatal /r "@PCRE_LIBRARY_PATH@\bin"\r
+       file /nonfatal /r "@PCRE_LIBRARY_PATH@\man"\r
+       file /nonfatal /r "@PCRE_LIBRARY_PATH@\share"\r
+SectionEnd\r
+\r
+# default section start\r
+section        \r
        # define uninstaller name\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@BIN_EXE@"\r
-       createShortCut  "$SMPROGRAMS\SimGrid\Documentation.lnk" "$INSTDIR\doc\index.html"\r
-       \r
+\r
        # Include for some of the windows message defines\r
        !include "winmessages.nsh"\r
        # HKLM (all users) vs HKCU (current user) defines\r
@@ -148,14 +228,39 @@ section
        !define env_hkcu 'HKCU "Environment"'\r
        # Set Variables\r
        WriteRegExpandStr ${env_hklm} SIMGRID_ROOT $INSTDIR\r
-       WriteRegExpandStr ${env_hklm} GRAS_ROOT $INSTDIR\r
        WriteRegExpandStr ${env_hklm} SIMGRID_VERSION @SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@\r
 \r
-       MessageBox MB_OK "Installation was successful."\r
+       WriteRegExpandStr ${env_hklm} SIMGRID_PCRE_LIBRARY_PATH $INSTDIR\GnuWin32\r
+       WriteRegExpandStr ${env_hklm} SIMGRID_PCRE_LIBRARY_VERSION "8.21"\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
@@ -247,6 +352,16 @@ section "Uninstall"
        # delete link\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
@@ -263,13 +378,22 @@ section "Uninstall"
        RMDir  "$INSTDIR\include\xbt"\r
        RMDir  "$INSTDIR\include"\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
+       # delete PCRE\r
+       RMDir   /r "$INSTDIR\GnuWin32"\r
        \r
        # Delete variable\r
        DeleteRegValue ${env_hklm} SIMGRID_ROOT\r
-       DeleteRegValue ${env_hklm} GRAS_ROOT\r
        DeleteRegValue ${env_hklm} SIMGRID_VERSION\r
-\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