mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-27 03:36:39 +00:00
adc618f6e7
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17366 a592a061-630c-0410-9148-cb99ea01b6c8
219 lines
5.1 KiB
Plaintext
219 lines
5.1 KiB
Plaintext
/*
|
|
|
|
External Components: MiKTeX, ImageMagick, Ghostscript
|
|
|
|
*/
|
|
|
|
#--------------------------------
|
|
#Macros
|
|
|
|
!macro SetComponentState VAR COMPONENT
|
|
|
|
${if} ${VAR} == "1"
|
|
|
|
StrCpy $Setup${COMPONENT} ${TRUE}
|
|
|
|
StrCpy $R1 $Size${COMPONENT}
|
|
|
|
${if} $Path${COMPONENT} == ""
|
|
#Add size of component itself
|
|
IntOp $R1 $R1 + ${SIZE_${COMPONENT}}
|
|
${endif}
|
|
|
|
SectionSetSize ${External${COMPONENT}} $R1
|
|
|
|
${else}
|
|
|
|
StrCpy $Setup${COMPONENT} ${FALSE}
|
|
SectionSetSize ${External${COMPONENT}} 0
|
|
|
|
${endif}
|
|
|
|
!macroend
|
|
|
|
!macro ExternalComponent COMPONENT
|
|
|
|
#Action depending on type of installer
|
|
|
|
${if} $Setup${component} == ${TRUE}
|
|
|
|
StrCpy $Path${component} "" ;A new one will be installed
|
|
|
|
!ifndef SETUPTYPE_BUNDLE
|
|
!insertmacro DownloadComponent ${component}
|
|
!else
|
|
!insertmacro InstallComponent ${component}
|
|
!endif
|
|
|
|
${endif}
|
|
|
|
!macroend
|
|
|
|
!macro SetupComponent COMPONENT
|
|
|
|
#Run the setup application for a component
|
|
|
|
install_${COMPONENT}:
|
|
|
|
ExecWait '"$PLUGINSDIR\${COMPONENT}Setup.exe"'
|
|
Call UpdatePathEnvironment
|
|
Call Search${COMPONENT}
|
|
|
|
${if} $Path${COMPONENT} == ""
|
|
MessageBox MB_YESNO|MB_ICONEXCLAMATION $(TEXT_NOTINSTALLED_${COMPONENT}) IDYES install_${COMPONENT}
|
|
${endif}
|
|
|
|
Delete "$PLUGINSDIR\${COMPONENT}Setup.exe"
|
|
|
|
!macroend
|
|
|
|
!ifndef SETUPTYPE_BUNDLE
|
|
|
|
!macro DownloadComponent COMPONENT
|
|
|
|
download_${COMPONENT}:
|
|
|
|
#Download using HTTP
|
|
InetLoad::load "${DOWNLOAD_${COMPONENT}}" "$PLUGINSDIR\${COMPONENT}Setup.exe" /END
|
|
Pop $R0
|
|
|
|
${if} $R0 != "OK"
|
|
#Download failed
|
|
MessageBox MB_YESNO|MB_ICONEXCLAMATION "$(TEXT_DOWNLOAD_FAILED_${COMPONENT}) ($R0)" IDYES download_${COMPONENT}
|
|
Goto noinstall_${COMPONENT}
|
|
${endif}
|
|
|
|
!insertmacro SetupComponent ${COMPONENT}
|
|
|
|
noinstall_${COMPONENT}:
|
|
|
|
!macroend
|
|
|
|
!else
|
|
|
|
!macro InstallComponent COMPONENT
|
|
|
|
#Extract
|
|
File /oname=$PLUGINSDIR\${COMPONENT}Setup.exe ${FILES_BUNDLE}\${INSTALL_${COMPONENT}}
|
|
|
|
!insertmacro SetupComponent ${COMPONENT}
|
|
|
|
!macroend
|
|
|
|
!endif
|
|
|
|
!macro DialogExternalControl component
|
|
|
|
#Enable/disable the DirRequest control
|
|
!insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${component}.ini" "Field 3" "State"
|
|
!insertmacro MUI_INSTALLOPTIONS_READ $R1 "external_${component}.ini" "Field 4" "HWND"
|
|
EnableWindow $R1 $R0
|
|
!insertmacro MUI_INSTALLOPTIONS_READ $R1 "external_${component}.ini" "Field 4" "HWND2"
|
|
EnableWindow $R1 $R0
|
|
|
|
!macroend
|
|
|
|
!macro DialogExternalShow COMPONENT
|
|
|
|
!insertmacro MUI_HEADER_TEXT $(TEXT_EXTERNAL_${COMPONENT}_TITLE) $(TEXT_EXTERNAL_${COMPONENT}_SUBTITLE)
|
|
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "external_${COMPONENT}.ini"
|
|
!insertmacro DialogExternalControl ${COMPONENT}
|
|
!insertmacro MUI_INSTALLOPTIONS_SHOW
|
|
|
|
!macroend
|
|
|
|
!macro DialogExternalValidate COMPONENT
|
|
|
|
Push $R0
|
|
Push $R1
|
|
|
|
#Next button pressed?
|
|
!insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${COMPONENT}.ini" "Settings" "State"
|
|
${if} $R0 != "0"
|
|
!insertmacro DialogExternalControl ${COMPONENT}
|
|
Abort
|
|
${endif}
|
|
|
|
#Download?
|
|
!insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${COMPONENT}.ini" "Field 2" "State"
|
|
!insertmacro SetComponentState $R0 ${COMPONENT}
|
|
|
|
#Folder?
|
|
!insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${COMPONENT}.ini" "Field 3" "State"
|
|
|
|
${if} $R0 == "1"
|
|
!insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${COMPONENT}.ini" "Field 4" "State"
|
|
${unless} ${FileExists} "$R0\${BIN_${COMPONENT}}"
|
|
MessageBox MB_OK|MB_ICONEXCLAMATION $(TEXT_EXTERNAL_${COMPONENT}_NOTFOUND)
|
|
Abort
|
|
${endif}
|
|
StrCpy $Path${component} $R0
|
|
${endif}
|
|
|
|
Pop $R1
|
|
Pop $R0
|
|
|
|
!macroend
|
|
|
|
#--------------------------------
|
|
#Sections
|
|
|
|
Section -LaTeX ExternalLaTeX
|
|
!insertmacro ExternalComponent LaTeX
|
|
SectionEnd
|
|
|
|
Section -ImageMagick ExternalImageMagick
|
|
!insertmacro ExternalComponent ImageMagick
|
|
SectionEnd
|
|
|
|
Section -Ghostscript ExternalGhostscript
|
|
!insertmacro ExternalComponent Ghostscript
|
|
SectionEnd
|
|
|
|
#--------------------------------
|
|
#Functions
|
|
|
|
Function InitSizeExternal
|
|
|
|
#Get sizes of external component installers
|
|
|
|
SectionGetSize ${ExternalLaTeX} $SizeLaTeX
|
|
SectionGetSize ${ExternalImageMagick} $SizeImageMagick
|
|
SectionGetSize ${ExternalGhostscript} $SizeGhostscript
|
|
|
|
!ifndef SETUPTYPE_BUNDLE
|
|
#Add download size
|
|
IntOp $SizeLaTeX $SizeLaTeX + ${SIZE_DOWNLOAD_LATEX}
|
|
IntOp $SizeImagemagick $SizeImagemagick + ${SIZE_DOWNLOAD_IMAGEMAGICK}
|
|
IntOp $SizeGhostscript $SizeGhostscript + ${SIZE_DOWNLOAD_GHOSTSCRIPT}
|
|
!endif
|
|
|
|
FunctionEnd
|
|
|
|
#--------------------------------
|
|
#Page functions
|
|
|
|
Function PageExternalLaTeX
|
|
!insertmacro DialogExternalShow LaTeX
|
|
FunctionEnd
|
|
|
|
Function PageExternalLaTeXValidate
|
|
!insertmacro DialogExternalValidate LaTeX
|
|
FunctionEnd
|
|
|
|
Function PageExternalImageMagick
|
|
!insertmacro DialogExternalShow ImageMagick
|
|
FunctionEnd
|
|
|
|
Function PageExternalImageMagickValidate
|
|
!insertmacro DialogExternalValidate ImageMagick
|
|
FunctionEnd
|
|
|
|
Function PageExternalGhostscript
|
|
!insertmacro DialogExternalShow Ghostscript
|
|
FunctionEnd
|
|
|
|
Function PageExternalGhostscriptValidate
|
|
!insertmacro DialogExternalValidate Ghostscript
|
|
FunctionEnd
|