Rev 244 | 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 "GELexternals.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