X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/713d98febcd81b98a1050e53afcd36e19f0df9ab..36d6876bb57b051b1434737450f7177c9b7055f2:/buildtools/Cmake/simgrid.nsi.in diff --git a/buildtools/Cmake/simgrid.nsi.in b/buildtools/Cmake/simgrid.nsi.in index 281da0a79a..57a99e6178 100644 --- a/buildtools/Cmake/simgrid.nsi.in +++ b/buildtools/Cmake/simgrid.nsi.in @@ -1,20 +1,57 @@ -# define installer name -outFile "SimGrid@SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@_win@WIN_ARCH@@BIN_EXE@" +!include "MUI2.nsh" + +;-------------------------------- +;Interface Configuration + + !define MUI_HEADERIMAGE + !define MUI_HEADERIMAGE_BITMAP "@CMAKE_HOME_DIRECTORY@\doc\webcruft\simgrid_logo_win_2011.bmp" ; optional + !define MUI_ABORTWARNING + +;-------------------------------- +;Pages + + !insertmacro MUI_PAGE_LICENSE "@CMAKE_HOME_DIRECTORY@\LICENSE-LGPL-2.1" + !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + !insertmacro MUI_PAGE_FINISH + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + !insertmacro MUI_UNPAGE_FINISH + +;-------------------------------- +;Languages + !insertmacro MUI_LANGUAGE "English" + !insertmacro MUI_LANGUAGE "French" +;-------------------------------- + +Name "Simgrid" +outFile "SimGrid@SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@_@NSIS_WIN_VERSION@@BIN_EXE@" +Icon "@CMAKE_HOME_DIRECTORY@\doc\webcruft\SimGrid.ico" + +RequestExecutionLevel admin # set the default installation directory -InstallDir $PROGRAMFILES\SimGrid +InstallDir c:\SimGrid@SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@ -# The text to prompt the user to enter a directory -DirText "This will install Simgrid on your computer. Choose a directory" +Section "Libraries and Headers" LibSection -# default section start -section + setOutPath $INSTDIR + file @CMAKE_HOME_DIRECTORY@\AUTHORS + file @CMAKE_HOME_DIRECTORY@\Changelog + file @CMAKE_HOME_DIRECTORY@\COPYING + file @CMAKE_HOME_DIRECTORY@\LICENSE-LGPL-2.1 + file @CMAKE_HOME_DIRECTORY@\NEWS # install lib CreateDirectory $INSTDIR\lib setOutPath $INSTDIR\lib file lib\libgras.@LIB_EXE@ file lib\libsimgrid.@LIB_EXE@ + file /nonfatal lib\libsimgrid_shared.dll + file /nonfatal lib\libsimgrid_shared.dll.a + file /nonfatal lib\libsimgrid_shared.ref #install headers CreateDirectory $INSTDIR\include @@ -59,10 +96,14 @@ section file @CMAKE_HOME_DIRECTORY@\include\xbt\mmalloc.h file @CMAKE_HOME_DIRECTORY@\include\xbt\replay_trace_reader.h file @CMAKE_HOME_DIRECTORY@\include\xbt\parmap.h - - CreateDirectory $INSTDIR\include\mc - setOutPath $INSTDIR\include\mc - file @CMAKE_HOME_DIRECTORY@\include\mc\modelchecker.h + file @CMAKE_HOME_DIRECTORY@\include\xbt\automaton.h + file @CMAKE_HOME_DIRECTORY@\include\xbt\automatonparse_promela.h + file @CMAKE_HOME_DIRECTORY@\include\xbt\datadesc.h + + CreateDirectory $INSTDIR\include\simgrid + setOutPath $INSTDIR\include\simgrid + file @CMAKE_HOME_DIRECTORY@\include\simgrid\platf.h + file @CMAKE_HOME_DIRECTORY@\include\simgrid\modelchecker.h CreateDirectory $INSTDIR\include\msg setOutPath $INSTDIR\include\msg @@ -90,7 +131,6 @@ section CreateDirectory $INSTDIR\include\gras setOutPath $INSTDIR\include\gras - file @CMAKE_HOME_DIRECTORY@\include\gras\datadesc.h file @CMAKE_HOME_DIRECTORY@\include\gras\transport.h file @CMAKE_HOME_DIRECTORY@\include\gras\virtu.h file @CMAKE_HOME_DIRECTORY@\include\gras\emul.h @@ -114,6 +154,9 @@ section file @CMAKE_HOME_DIRECTORY@\include\simix\datatypes.h file @CMAKE_HOME_DIRECTORY@\include\simix\context.h +SectionEnd +Section "Binaries" BinSection + # insatll bin CreateDirectory $INSTDIR\bin setOutPath $INSTDIR\bin @@ -121,30 +164,106 @@ section file bin\graphicator@BIN_EXE@ file bin\gras_stub_generator@BIN_EXE@ file bin\simgrid_update_xml - file bin\smpicc - file bin\smpif2c - file bin\smpiff - file bin\smpirun - file bin\tesh - #install doc +SectionEnd +Section "Documentation" DocSection + + # install doc CreateDirectory $INSTDIR\doc setOutPath $INSTDIR\doc - file /r @CMAKE_HOME_DIRECTORY@\doc\html + file /nonfatal /r @CMAKE_HOME_DIRECTORY@\doc\html + # create a shortcut in the start menu programs directory + CreateDirectory "$SMPROGRAMS\SimGrid @SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@" + createShortCut "$SMPROGRAMS\SimGrid @SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@\Documentation.lnk" "$INSTDIR\doc\html\index.html" + createShortCut "$SMPROGRAMS\SimGrid @SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@\Website.lnk" "http://simgrid.gforge.inria.fr/" + +SectionEnd +Section "Examples" ExamplesSection + + CreateDirectory $INSTDIR\examples + setOutPath $INSTDIR\examples + + #install examples for platforms + file /r @CMAKE_HOME_DIRECTORY@\examples\platforms + + # install example HelloWorld + file /r @CMAKE_HOME_DIRECTORY@\doc\HelloWorld + + # install example MasterSlave + CreateDirectory $INSTDIR\examples\MasterSlave + setOutPath $INSTDIR\examples\MasterSlave + file @CMAKE_HOME_DIRECTORY@\examples\msg\masterslave\masterslave_forwarder.c + file @CMAKE_HOME_DIRECTORY@\examples\msg\masterslave\deployment_masterslave_forwarder.xml + file @CMAKE_HOME_DIRECTORY@\examples\msg\msg_platform.xml + file @CMAKE_HOME_DIRECTORY@\doc\HelloWorld\CMakeLists.txt + file @CMAKE_HOME_DIRECTORY@\doc\HelloWorld\FindPCRE.cmake + + # create shortcuts in the start menu programs directory + CreateDirectory "$SMPROGRAMS\SimGrid @SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@\Examples\" + createShortCut "$SMPROGRAMS\SimGrid @SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@\Examples\HelloWorld project.lnk" "$INSTDIR\examples\HelloWorld" + createShortCut "$SMPROGRAMS\SimGrid @SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@\Examples\MasterSlave project.lnk" "$INSTDIR\examples\MasterSlave" + +SectionEnd +Section "Pcre library" PCRESection + # install pcre library + CreateDirectory $INSTDIR\GnuWin32 + setOutPath $INSTDIR\GnuWin32 + file /r "@PCRE_LIBRARY_PATH@\lib" + file /r "@PCRE_LIBRARY_PATH@\include" + file /nonfatal /r "@PCRE_LIBRARY_PATH@\bin" + file /nonfatal /r "@PCRE_LIBRARY_PATH@\man" + file /nonfatal /r "@PCRE_LIBRARY_PATH@\share" +SectionEnd +# default section start +section # define uninstaller name writeUninstaller $INSTDIR\uninstaller@BIN_EXE@ # create a shortcut in the start menu programs directory - CreateDirectory "$SMPROGRAMS\SimGrid" - createShortCut "$SMPROGRAMS\SimGrid\Uninstall simgrid.lnk" "$INSTDIR\uninstaller@BIN_EXE@" - createShortCut "$SMPROGRAMS\SimGrid\Documentation.lnk" "$INSTDIR\doc\index.html" + CreateDirectory "$SMPROGRAMS\SimGrid @SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@" + createShortCut "$SMPROGRAMS\SimGrid @SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@\Uninstall simgrid.lnk" "$INSTDIR\uninstaller@BIN_EXE@" + + # Include for some of the windows message defines + !include "winmessages.nsh" + # HKLM (all users) vs HKCU (current user) defines + !define env_hklm 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"' + !define env_hkcu 'HKCU "Environment"' + # Set Variables + WriteRegExpandStr ${env_hkcu} SIMGRID_ROOT $INSTDIR + WriteRegExpandStr ${env_hkcu} SIMGRID_VERSION @SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@ + + WriteRegExpandStr ${env_hkcu} SIMGRID_PCRE_LIBRARY_PATH $INSTDIR\GnuWin32 + WriteRegExpandStr ${env_hkcu} SIMGRID_PCRE_LIBRARY_VERSION "8.21" + + WriteRegStr HKCU "SOFTWARE\SimGrid" "Version" "@SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@" + WriteRegStr HKCU "SOFTWARE\SimGrid" "InstallPath" "$INSTDIR" - MessageBox MB_OK "Installation was successful." + SetRebootFlag true # default section end sectionEnd +LangString DESC_LibSection ${LANG_ENGLISH} "Install Simgrid and gras libraries with associated headers." +LangString DESC_BinSection ${LANG_ENGLISH} "Install some useful tools for Simgrid." +LangString DESC_DocSection ${LANG_ENGLISH} "Generated (doxygen) documentation." +LangString DESC_ExamplesSection ${LANG_ENGLISH} "Simgrid's HelloWorld example and some classical platforms." +LangString DESC_PCRESection ${LANG_ENGLISH} "Install the PCRE and PCREPOSIX libraries for SimGrid." + +LangString DESC_LibSection ${LANG_FRENCH} "Installer les librairies Simgrid et Gras et leurs EntĂȘtes." +LangString DESC_BinSection ${LANG_FRENCH} "Installer les outils optionnels." +LangString DESC_DocSection ${LANG_FRENCH} "Installer la documentation." +LangString DESC_ExamplesSection ${LANG_FRENCH} "Installer un exemple 'HelloWorld' et des fichiers de plate-formes types." +LangString DESC_PCRESection ${LANG_FRENCH} "Installer les librairies PCRE et PCREPOSIX for SimGrid." + +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${LibSection} $(DESC_LibSection) + !insertmacro MUI_DESCRIPTION_TEXT ${BinSection} $(DESC_BinSection) + !insertmacro MUI_DESCRIPTION_TEXT ${DocSection} $(DESC_DocSection) + !insertmacro MUI_DESCRIPTION_TEXT ${ExamplesSection} $(DESC_ExamplesSection) + !insertmacro MUI_DESCRIPTION_TEXT ${PCRESection} $(DESC_PCRESection) +!insertmacro MUI_FUNCTION_DESCRIPTION_END + # create a section to define what the uninstaller does. # the section will always be named "Uninstall" section "Uninstall" @@ -155,6 +274,9 @@ section "Uninstall" # delete installed libs delete $INSTDIR\lib\libgras.@LIB_EXE@ delete $INSTDIR\lib\libsimgrid.@LIB_EXE@ + delete $INSTDIR\lib\libsimgrid_shared.dll + delete $INSTDIR\lib\libsimgrid_shared.dll.a + delete $INSTDIR\lib\libsimgrid_shared.ref # delete installed bin delete $INSTDIR\bin\colorize @@ -233,9 +355,12 @@ section "Uninstall" delete $INSTDIR\include\simix\datatypes.h delete $INSTDIR\include\simix\context.h - # delete link - delete "$SMPROGRAMS\SimGrid\Uninstall simgrid.lnk" - delete "$SMPROGRAMS\SimGrid\Documentation.lnk" + # delete EXTRA FILES + delete $INSTDIR\AUTHORS + delete $INSTDIR\Changelog + delete $INSTDIR\COPYING + delete $INSTDIR\LICENSE-LGPL-2.1 + delete $INSTDIR\NEWS # now delete directories RMDir "$INSTDIR\bin" @@ -251,9 +376,22 @@ section "Uninstall" RMDir "$INSTDIR\include\mc" RMDir "$INSTDIR\include\xbt" RMDir "$INSTDIR\include" - RMDir "$INSTDIR\doc" - RMDir "$SMPROGRAMS\SimGrid" - RMDir "$PROGRAMFILES\SimGrid" - + RMDir /r "$INSTDIR\doc" + RMDir /r "$INSTDIR\examples" + RMDir /r "$SMPROGRAMS\SimGrid @SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@" + + # delete PCRE + RMDir /r "$INSTDIR\GnuWin32" + + # Delete variable + DeleteRegValue ${env_hkcu} SIMGRID_ROOT + DeleteRegValue ${env_hkcu} SIMGRID_VERSION + DeleteRegValue ${env_hkcu} SIMGRID_PCRE_LIBRARY_PATH + DeleteRegValue ${env_hkcu} SIMGRID_PCRE_LIBRARY_VERSION + DeleteRegKey HKCU "SOFTWARE\SimGrid" + + # delete INSTDIR + RMDir /r "$INSTDIR" + # uninstall section end sectionEnd \ No newline at end of file