Subversion Repositories gelsvn

Rev

Rev 245 | Go to most recent revision | Blame | Last modification | View Log | RSS feed

!include "LogicLib.nsh" 
!include "WinMessages.NSH"

; The name of the installer
Name "GEL Externals"

; The file to write
OutFile "GELsetup.exe"

; The default installation directory
InstallDir $DESKTOP\test

;--------------------------------

; Pages

Page directory
Page components

InstType "Externals only"
InstType "Full"

Section "Externals" Externals_flag
SectionIn 1 2
SectionEnd

SectionGroup "GEL binary (ver. 0.1)"

Section "CGLA" CGLA_flag
SectionIn 2
SectionEnd


Section "Geometry" Geometry_flag
SectionIn 2
SectionEnd

Section "GLGraphics" GLGraphics_flag
SectionIn 2
SectionEnd

Section "HMesh" HMesh_flag
SectionIn 2
SectionEnd

Section "LinAlg" LinAlg_flag
SectionIn 2
SectionEnd

Section "Util" Util_flag
SectionIn 2
SectionEnd

SectionGroupEnd



Page instfiles

;--------------------------------

Section ""

  Var /GLOBAL Externals
  Var /GLOBAL CGLA
  Var /GLOBAL Geometry 
  Var /GLOBAL GLGraphics 
  Var /GLOBAL HMesh 
  Var /GLOBAL LinAlg
  Var /GLOBAL Util 
 
  # Get flags of each section into appropriate variables
  SectionGetFlags ${Externals_flag} $Externals
  SectionGetFlags ${CGLA_flag} $CGLA 
  SectionGetFlags ${Geometry_flag} $Geometry
  SectionGetFlags ${GLGraphics_flag} $GLGraphics
  SectionGetFlags ${HMesh_flag} $HMesh
  SectionGetFlags ${LinAlg_flag} $LinAlg
  SectionGetFlags ${Util_flag} $Util
  
  ;MessageBox MB_OK "Externals: $0 $\r$\n GEL: $1 $\r$\n "

  ${If} $Externals = 1
    SetOutPath $INSTDIR\bin
    File externals\bin\*.dll 
   
    SetOutPath $INSTDIR\lib
    File externals\lib\*.lib 

    SetOutPath $INSTDIR
    File /r externals\include
  ${EndIf}

  !macro GELModule mvar mstring
    ${If} ${mvar} = 1
      SetOutPath $INSTDIR\lib
      File current\lib\${mstring}.lib 

      SetOutPath $INSTDIR\include
      File /r current\include\${mstring}
    ${EndIf}
  !macroend

  !insertmacro GELModule $CGLA "CGLA"
  !insertmacro GELModule $Geometry "Geometry"
  !insertmacro GELModule $GLGraphics "GLGraphics"
  !insertmacro GELModule $HMesh "HMesh"
  !insertmacro GELModule $LinAlg "LinAlg"
  !insertmacro GELModule $Util "Util"

  # Create Environment variables
  WriteRegExpandStr HKCU "Environment" "GEL_INCLUDE" "$INSTDIR\include"
  WriteRegExpandStr HKCU "Environment" "GEL_LIB" "$INSTDIR\lib"
  WriteRegExpandStr HKCU "Environment" "GEL_BIN" "$INSTDIR\bin"

  # Add %GEL_BIN% to path
  ReadRegStr $1 HKCU "Environment" "PATH"
  StrCpy $2 $1 1 -1 # copy last char
  StrCmp $2 ";" 0 +2 # if last char == ;
    StrCpy $1 $1 -1 # remove last char
  StrCmp $1 "" AddToPath_NTdoIt
    StrCpy $0 "$1;%GEL_BIN%"
  AddToPath_NTdoIt:
    WriteRegExpandStr HKCU "Environment" "PATH" $0
    SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000


SectionEnd ; end the section