]> git.lyx.org Git - features.git/commitdiff
updated MiKTeX detection
authorJoost Verburg <joostverburg@users.sourceforge.net>
Mon, 14 Feb 2011 19:57:24 +0000 (19:57 +0000)
committerJoost Verburg <joostverburg@users.sourceforge.net>
Mon, 14 Feb 2011 19:57:24 +0000 (19:57 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37664 a592a061-630c-0410-9148-cb99ea01b6c8

development/Win32/packaging/installer/include/detection.nsh

index 1019c7e222cb14b439cb8c90ae8c296ba1f2d8c9..af58ef900c09cdbac912dd99a48f519d85f43580 100644 (file)
@@ -9,12 +9,6 @@ Detection of external component locations
 Function SearchExternal
   Call SearchLaTeX
   Call SearchBibTeXEditor
-  !ifndef BUNDLE_IMAGEMAGICK
-    Call SearchImageMagick
-  !endif
-  !ifndef BUNDLE_GHOSTSCRIPT
-    Call SearchGhostscript
-  !endif
 FunctionEnd
 
 #--------------------------------
@@ -22,8 +16,6 @@ FunctionEnd
 
 Var ReportReturn
 Var CommandLineOutput
-Var LastChar
-Var PathLength
 
 !macro SEARCH_MIKTEX25
 
@@ -34,148 +26,74 @@ Var PathLength
   Pop $ReportReturn
   Pop $CommandLineOutput
 
-  ${WordFind2X} $CommandLineOutput "BinDir: " "$\r" "+1" $PathLaTeX
-  ${WordFind2X} $CommandLineOutput "CommonData: " "$\r" "+1" $PathLaTeXLocal # Local root  
-
-!macroend
-
-!macro SEARCH_MIKTEX24 ROOTKEY
-
-  ReadRegStr $PathLaTeX ${ROOTKEY} "Software\MiK\MiKTeX\CurrentVersion\MiKTeX" "Install Root"
-  
-  ${If} $PathLaTeX != ""
-    StrCpy $LastChar $PathLaTeX 1 -1
-    
-    ${If} $LastChar == "\"
-      # Trim backslash
-      StrLen $PathLength $PathLaTeX
-      IntOp $PathLength $PathLength - 1
-      StrCpy $PathLaTeX $PathLaTeX $PathLength
+  ClearErrors
+  ${WordFind2X} $CommandLineOutput "BinDir: " "$\r" "E+1" $PathLaTeX
+  ${If} ${Errors}
+    ClearErrors
+    ${WordFind2X} $CommandLineOutput "CommonInstall: " "$\r" "E+1" $PathLaTeX
+    ${If} ${Errors}
+       StrCpy $PathLaTeX ""
+    ${Else}
+       StrCpy $PathLaTeX "$PathLaTeX\miktex\bin"
     ${EndIf}
-    
-    StrCpy $PathLaTeX "$PathLaTeX\miktex\bin"
-     
-    #Local root
-    ReadRegStr $PathLaTeXLocal ${ROOTKEY} "Software\MiK\MiKTeX\CurrentVersion\MiKTeX" "Local Root"
-    
   ${EndIf}
-   
-!macroend
 
-Function SearchLaTeX
-
-  # Search where MikTeX is installed
-  
-  !insertmacro SEARCH_MIKTEX25
-  
-  ${IfNot} ${FileExists} "$PathLaTeX\${BIN_LATEX}"
-    !insertmacro SEARCH_MIKTEX24 HKCU
+  ClearErrors
+  ${WordFind2X} $CommandLineOutput "BinDir: " "$\r" "E+1" $PathLaTeX
+  ${If} ${Errors}
+    StrCpy $PathLaTeX ""
   ${EndIf}
 
-  ${IfNot} ${FileExists} "$PathLaTeX\${BIN_LATEX}"
-    !insertmacro SEARCH_MIKTEX24 HKLM
+  ${If} $PathLatex == ""
+    ClearErrors
+    ${WordFind2X} $CommandLineOutput "CommonInstall: " "$\r" "E+1" $PathLaTeX
+    ${If} ${Errors}
+      StrCpy $PathLaTeX ""
+    ${Else}
+       StrCpy $PathLaTeX "$PathLaTeX\miktex\bin"
+    ${EndIf}
   ${EndIf}
 
-  ${IfNot} ${FileExists} "$PathLaTeX\${BIN_LATEX}"
-    StrCpy $PathLateX ""
+  ${If} $PathLatex == ""
+    ClearErrors
+    ${WordFind2X} $CommandLineOutput "UserInstall: " "$\r" "E+1" $PathLaTeX
+    ${If} ${Errors}
+      StrCpy $PathLaTeX ""
+    ${Else}
+       StrCpy $PathLaTeX "$PathLaTeX\miktex\bin"
+    ${EndIf}
   ${EndIf}
 
-FunctionEnd
-
-#--------------------------------
-# Ghostscript
-
-!ifndef BUNDLE_GHOSTSCRIPT
-
-!insertmacro GetParent
-!insertmacro VersionCompare
-
-Var Counter
-Var EnumReturn
-Var CompareReturn
-Var AFPLVersion
-Var GPLVersion
+  # Local root
 
-Function SearchGhostscript
+  ClearErrors
+  ${WordFind2X} $CommandLineOutput "CommonData: " "$\r" "E+1" $PathLaTeXLocal
+  ${If} ${Errors}
+    StrCpy $PathLaTeXLocal ""
+  ${EndIf}
 
-  # Search where Ghostscript is installed
-  
-  # Find the latest version of AFPL Ghostscript installed
-  
-  StrCpy $Counter 0
-    
-  ${do}
-  
-    EnumRegKey $EnumReturn HKLM "Software\AFPL Ghostscript" $Counter
-    
-    ${If} $EnumReturn != ""
-      ${VersionCompare} $EnumReturn $AFPLVersion $CompareReturn
-      ${If} $CompareReturn == "1"
-        StrCpy $AFPLVersion $EnumReturn
-      ${EndIf}
-      IntOp $Counter $Counter + 1
-    ${EndIf}
-    
-  ${loopuntil} $EnumReturn == ""
-    
-  # The same for GPL Ghostscript
-    
-  StrCpy $Counter 0
-  
-  ${do}
-
-    EnumRegKey $EnumReturn HKLM "Software\GPL Ghostscript" $Counter
-    
-    ${If} $EnumReturn != ""
-      ${VersionCompare} $EnumReturn $GPLVersion $CompareReturn
-      ${If} $CompareReturn == "1"
-        StrCpy $GPLVersion $EnumReturn
-      ${EndIf}
-      IntOp $Counter $Counter + 1
+  ${If} $PathLatex == ""
+    ClearErrors
+    ${WordFind2X} $CommandLineOutput "UserData: " "$\r" "E+1" $PathLaTeXLocal
+    ${If} ${Errors}
+      StrCpy $PathLaTeXLocal ""
     ${EndIf}
-  
-  ${loopuntil} $EnumReturn == ""  
-  
-  # Take the latest one
-  ${VersionCompare} $AFPLVersion $GPLVersion $CompareReturn
-
-  ${If} $CompareReturn = 1
-    # AFPL is newer
-    ReadRegStr $PathGhostscript HKLM "Software\AFPL Ghostscript\$R3" "GS_DLL"
-  ${Else}
-    # GPL is newer or equal
-    ReadRegStr $PathGhostscript HKLM "Software\GPL Ghostscript\$R4" "GS_DLL"
-  ${EndIf}
-  
-  # Trim the DLL filename to get the path
-  ${GetParent} $PathGhostscript $PathGhostscript
-  
-  ${IfNot} ${FileExists} "$PathGhostscript\${BIN_GHOSTSCRIPT}"
-    StrCpy $PathGhostscript ""  
   ${EndIf}
-  
-FunctionEnd
-
-!endif
-
-#--------------------------------
-# ImageMagick
 
-!ifndef BUNDLE_IMAGEMAGICK
+!macroend
 
-Function SearchImageMagick
+Function SearchLaTeX
 
-  # Search where ImageMagick is installed
-  ReadRegStr $PathImageMagick HKLM "Software\ImageMagick\Current" "BinPath"
+  # Search where MikTeX is installed
   
-  ${IfNot} ${FileExists} "$PathImageMagick\${BIN_IMAGEMAGICK}"
-    StrCpy $PathImageMagick ""  
+  !insertmacro SEARCH_MIKTEX25
+
+  ${IfNot} ${FileExists} "$PathLaTeX\${BIN_LATEX}"
+    StrCpy $PathLateX ""
   ${EndIf}
 
 FunctionEnd
 
-!endif
-
 #--------------------------------
 # JabRef