mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-11 13:46:43 +00:00
c67419ffbb
This is already done by the program pdfview every time it is called. This additionally fixes the bug that viewing PDF files could fail if Acrobat was not the default PDF viewer of the system while LyX was installed, but became later the default PDF viewer.
252 lines
7.8 KiB
Plaintext
252 lines
7.8 KiB
Plaintext
/*
|
|
|
|
detection.nsh
|
|
|
|
Detection of external component locations
|
|
|
|
*/
|
|
|
|
# This script contains the following functions:
|
|
#
|
|
# - SearchExternal, calls the functions:
|
|
# LaTeXActions
|
|
# MissingPrograms
|
|
# FindDictionaries
|
|
#
|
|
# - MissingPrograms, (check if third-party programs are installed), uses:
|
|
# SEARCH_MIKTEX
|
|
# SEARCH_TEXLIVE
|
|
#
|
|
# - FindDictionaries (finds installed spellcheck and thesaurus dictionaries)
|
|
#
|
|
# - EditorCheck,
|
|
# (test if an editor with syntax-highlighting for LaTeX-files is installed)
|
|
#
|
|
#--------------------------
|
|
|
|
#Var ReportReturn
|
|
#Var CommandLineOutput
|
|
|
|
Function SearchExternal
|
|
Call LaTeXActions # function from LaTeX.nsh
|
|
Call MissingPrograms
|
|
Call FindDictionaries # function from dictionaries.nsh
|
|
FunctionEnd
|
|
|
|
# ---------------------------------------
|
|
|
|
Function MissingPrograms
|
|
# check if third-party programs are installed
|
|
|
|
# test if Ghostscript is installed, check all cases:
|
|
# 1. 32bit Windows
|
|
# 2. 64bit Windows but 32bit Ghostscript
|
|
# 3. 64bit Windows and 64bit Ghostscript
|
|
StrCpy $3 0
|
|
${if} ${RunningX64}
|
|
SetRegView 64
|
|
${endif}
|
|
# case 1. and 3.
|
|
GSloop:
|
|
EnumRegKey $1 HKLM "Software\GPL Ghostscript" $3
|
|
${if} $1 != ""
|
|
ReadRegStr $2 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\GPL Ghostscript $1" "DisplayName"
|
|
StrCpy $0 "Software\GPL Ghostscript\$1"
|
|
${if} $2 == "" # if nothing was found in the uninstall section
|
|
ReadRegStr $2 HKLM "SOFTWARE\GPL Ghostscript" "OnlyWithLyX" # check if Ghostscript was installed together with LyX
|
|
${endif}
|
|
${if} $2 == "" # if nothing was found in the uninstall section
|
|
DeleteRegKey HKLM "$0"
|
|
goto GSloop
|
|
${else}
|
|
ReadRegStr $GhostscriptPath HKLM $0 "GS_DLL"
|
|
${if} $GhostscriptPath != ""
|
|
StrCpy $GhostscriptPath "$GhostscriptPath" -12 # remove ending "gsdll32.dll"
|
|
${endif}
|
|
# there might be several versions installed and we want to use the newest one
|
|
IntOp $3 $3 + 1
|
|
goto GSloop
|
|
${endif} # if $2
|
|
${endif}
|
|
SetRegView 32
|
|
# repeat for case 2.
|
|
${if} ${RunningX64}
|
|
${andif} $GhostscriptPath == ""
|
|
StrCpy $3 0
|
|
# we have to assure that we only repeat once and not forever
|
|
${if} $4 != "32"
|
|
StrCpy $4 "32"
|
|
goto GSloop
|
|
${endif}
|
|
${endif}
|
|
|
|
# test if Python is installed
|
|
# only use an existing python when it is version 2.5 or newer because some
|
|
# older Compaq and Dell PCs were delivered with outdated Python interpreters
|
|
# Python 3.x was reported not to work with LyX properly, see
|
|
# http://www.lyx.org/trac/ticket/7143
|
|
ReadRegStr $PythonPath HKLM "Software\Python\PythonCore\2.5\InstallPath" ""
|
|
${if} $PythonPath == ""
|
|
ReadRegStr $PythonPath HKLM "Software\Python\PythonCore\2.6\InstallPath" ""
|
|
${endif}
|
|
${if} $PythonPath == ""
|
|
ReadRegStr $PythonPath HKLM "Software\Python\PythonCore\2.7\InstallPath" ""
|
|
${endif}
|
|
${if} $PythonPath != ""
|
|
StrCpy $PythonPath $PythonPath -1 # remove the "\" at the end
|
|
StrCpy $DelPythonFiles "True"
|
|
${endif}
|
|
|
|
# No test necessary for Acrobat or Adobe Reader because pdfview does this job
|
|
# each time it is called.
|
|
|
|
# test if a PostScript-viewer is installed, only check for GSview
|
|
# check all cases:
|
|
# 1. 32bit Windows
|
|
# 2. 64bit Windows but 32bit GSview
|
|
# 3. 64bit Windows and 64bit GSview
|
|
${if} ${RunningX64}
|
|
SetRegView 64
|
|
StrCpy $PSVPath ""
|
|
ReadRegStr $PSVPath HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\gsview64.exe" "Path"
|
|
SetRegView 32
|
|
${endif}
|
|
# repeat for case 1. and 2.
|
|
${if} $PSVPath == ""
|
|
ReadRegStr $PSVPath HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\gsview32.exe" "Path"
|
|
${endif}
|
|
|
|
# test if an editor with syntax-highlighting for LaTeX-files is installed
|
|
Call EditorCheck
|
|
|
|
# test if an image editor is installed
|
|
StrCpy $ImageEditorPath ""
|
|
# first check for Gimp which is a 64bit application on x64 Windows
|
|
${if} ${RunningX64}
|
|
SetRegView 64
|
|
${endif}
|
|
ReadRegStr $ImageEditorPath HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\GIMP-2_is1" "InstallLocation"
|
|
${if} $ImageEditorPath != ""
|
|
StrCpy $ImageEditorPath "$ImageEditorPathbin" # add the bin folder
|
|
${endif}
|
|
${if} ${RunningX64}
|
|
SetRegView 32
|
|
${endif}
|
|
# check for Photoshop
|
|
ReadRegStr $0 HKLM "Software\Classes\Applications\Photoshop.exe\shell\open\command" ""
|
|
${if} $0 != ""
|
|
StrCpy $0 "$0" -20 # delete '\photoshop.exe" "%1"'
|
|
StrCpy $0 $0 "" 1 # remove the leading quote
|
|
${if} $ImageEditorPath != ""
|
|
StrCpy $ImageEditorPath "$ImageEditorPath;$0"
|
|
${else}
|
|
StrCpy $ImageEditorPath $0
|
|
${endif}
|
|
${endif}
|
|
|
|
# test if and where the BibTeX-editor JabRef is installed
|
|
ReadRegStr $PathBibTeXEditor HKCU "Software\JabRef" "Path"
|
|
${if} $PathBibTeXEditor == ""
|
|
ReadRegStr $PathBibTeXEditor HKLM "Software\JabRef" "Path"
|
|
${endif}
|
|
|
|
${IfNot} ${FileExists} "$PathBibTeXEditor\${BIN_BIBTEXEDITOR}"
|
|
StrCpy $PathBibTeXEditor ""
|
|
StrCpy $JabRefInstalled == "No"
|
|
${else}
|
|
StrCpy $JabRefInstalled == "Yes"
|
|
${endif}
|
|
|
|
# test if and where LilyPond is installed
|
|
ReadRegStr $LilyPondPath HKLM "Software\LilyPond" "Install_Dir"
|
|
${if} $LilyPondPath != ""
|
|
StrCpy $LilyPondPath "$LilyPondPath\usr\bin" # add "\usr\bin"
|
|
${endif}
|
|
|
|
# test if Inkscape is installed
|
|
ReadRegStr $SVGPath HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Inkscape" "InstallLocation"
|
|
|
|
# test if Gnumeric is installed
|
|
ReadRegStr $0 HKLM "Software\Classes\Applications\gnumeric.exe\shell\Open\command" ""
|
|
${if} $0 != ""
|
|
StrCpy $0 $0 -18 # remove "gnumeric.exe" "%1""
|
|
StrCpy $0 $0 "" 1 # remove the leading quote
|
|
StrCpy $GnumericPath $0
|
|
${endif}
|
|
|
|
FunctionEnd
|
|
|
|
# ---------------------------------------
|
|
|
|
Function EditorCheck
|
|
# test if an editor with syntax-highlighting for LaTeX-files is installed
|
|
|
|
# (check for jEdit, PSPad, WinShell, ConTEXT, Crimson Editor, Vim, TeXnicCenter, LaTeXEditor, WinEdt, LEd, WinTeX)
|
|
StrCpy $EditorPath ""
|
|
StrCpy $0 ""
|
|
# check for jEdit which is a 64bit application on x64 Windows
|
|
${if} ${RunningX64}
|
|
SetRegView 64
|
|
${endif}
|
|
ReadRegStr $EditorPath HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\jEdit_is1" "InstallLocation"
|
|
${if} $EditorPath != ""
|
|
StrCpy $EditorPath $EditorPath -1 # remove "\" from the end of the string
|
|
${endif}
|
|
SetRegView 32
|
|
|
|
# check for PSPad
|
|
StrCpy $0 ""
|
|
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\PSPad editor_is1" "InstallLocation"
|
|
${if} $0 != ""
|
|
StrCpy $0 $0 -1 # remove the "\"
|
|
StrCpy $EditorPath "$EditorPath;$0"
|
|
${endif}
|
|
|
|
# check for WinShell
|
|
StrCpy $0 ""
|
|
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\WinShell_is1" "InstallLocation"
|
|
${if} $0 != ""
|
|
StrCpy $0 $0 -1 # remove the "\"
|
|
StrCpy $EditorPath "$EditorPath;$0"
|
|
${endif}
|
|
|
|
# check for Vim which is a 64bit application on x64 Windows
|
|
StrCpy $0 ""
|
|
${if} ${RunningX64}
|
|
SetRegView 64
|
|
${endif}
|
|
ReadRegStr $0 HKLM "Software\Vim\Gvim" "path"
|
|
${if} $0 != ""
|
|
StrCpy $0 $0 -9 # remove "\gvim.exe"
|
|
StrCpy $EditorPath "$EditorPath;$0"
|
|
${endif}
|
|
SetRegView 32
|
|
|
|
# check for TeXnicCenter which can be a 64bit application on x64 Windows
|
|
StrCpy $0 ""
|
|
${if} ${RunningX64}
|
|
SetRegView 64
|
|
${endif}
|
|
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TeXnicCenter_is1" "InstallLocation"
|
|
${if} $0 != ""
|
|
StrCpy $0 $0 -1 # remove the "\"
|
|
StrCpy $EditorPath "$EditorPath;$0"
|
|
${else}
|
|
SetRegView 32
|
|
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TeXnicCenter_is1" "InstallLocation"
|
|
${if} $0 != ""
|
|
StrCpy $0 $0 -1 # remove the "\"
|
|
StrCpy $EditorPath "$EditorPath;$0"
|
|
${endif}
|
|
${endif}
|
|
SetRegView 32
|
|
|
|
# check for WinEdt
|
|
StrCpy $0 ""
|
|
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\WinEdt 7" "InstallLocation"
|
|
${if} $0 != ""
|
|
StrCpy $EditorPath "$EditorPath;$0"
|
|
${endif}
|
|
|
|
FunctionEnd
|