mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-29 20:58:50 +00:00
installer infrastructure changes according to Christian's comments
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17832 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
6f005d2efa
commit
de0592079e
@ -11,6 +11,8 @@
|
||||
- add missing math fonts
|
||||
- name desktop icon according to the version to avoid interferences
|
||||
with other installed LyX-versions
|
||||
- only uninstall stuff that was installed together with the current LyX
|
||||
version and not together with other installed LyX versions
|
||||
|
||||
- New installer Version "Update" available. With this you don't need to
|
||||
reinstall LyX when you have the previous version "LyX 1.5svn-09-04-2007"
|
||||
|
@ -0,0 +1,112 @@
|
||||
Function ConfigureLyX
|
||||
; configures LyX
|
||||
|
||||
; create the PathPrefix
|
||||
StrCpy $PathPrefix "$INSTDIR\bin"
|
||||
${if} $PythonPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$PythonPath"
|
||||
${endif}
|
||||
${if} $LatexPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$LatexPath"
|
||||
${endif}
|
||||
${if} $GhostscriptPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$GhostscriptPath"
|
||||
${endif}
|
||||
${if} $ImageMagickPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$ImageMagickPath"
|
||||
${endif}
|
||||
${if} $PSVPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$PSVPath"
|
||||
${endif}
|
||||
${if} $EditorPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$EditorPath"
|
||||
${endif}
|
||||
${if} $ImageEditorPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$ImageEditorPath"
|
||||
${endif}
|
||||
|
||||
; Set a path prefix in lyxrc.dist
|
||||
ClearErrors
|
||||
${if} "$PathPrefix" != ""
|
||||
Delete "$INSTDIR\Resources\lyxrc.dist"
|
||||
FileOpen $R1 "$INSTDIR\Resources\lyxrc.dist" w
|
||||
FileWrite $R1 '\path_prefix "$PathPrefix"$\r$\n'
|
||||
FileClose $R1
|
||||
IfErrors 0 +2
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "$(ModifyingConfigureFailed)"
|
||||
${endif}
|
||||
|
||||
; Create a batch file to start LyX with the environment variables set
|
||||
ClearErrors
|
||||
Delete "${PRODUCT_BAT}"
|
||||
FileOpen $R1 "${PRODUCT_BAT}" w
|
||||
FileWrite $R1 '@echo off$\r$\n\
|
||||
SET LANG=$LangCode$\r$\n\
|
||||
SET AIK_DATA_DIR=${AiksaurusDir}$\r$\n\
|
||||
start "LyX" "lyx.exe" %*$\r$\n'
|
||||
FileClose $R1
|
||||
IfErrors 0 +2
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "$(CreateCmdFilesFailed)"
|
||||
|
||||
; set the preferences file
|
||||
; (having one preferences file that is modified to fit the needs is possible but not easy to maintain
|
||||
; therefore simply delete the files that shouldn't be used)
|
||||
; if not Acrobat or Adobe Reader is used
|
||||
${if} $Acrobat == "None" ; clear the entries in the preferences file that define PDFViewWin7 or 8 as viewer
|
||||
Rename "$INSTDIR\Resources\preferencesGSview" "$INSTDIR\Resources\preferences"
|
||||
Delete "$INSTDIR\Resources\preferences7"
|
||||
Delete "$INSTDIR\Resources\preferences8"
|
||||
${endif}
|
||||
; if Acrobat or Adobe Reader is used
|
||||
${if} $Acrobat == "7" ; used for all Acrobat (Adobe Reader) versions <= 7
|
||||
Rename "$INSTDIR\Resources\preferences7" "$INSTDIR\Resources\preferences"
|
||||
Delete "$INSTDIR\Resources\preferences8"
|
||||
Delete "$INSTDIR\Resources\preferencesGSview"
|
||||
${endif}
|
||||
${if} $Acrobat == "8"
|
||||
Rename "$INSTDIR\Resources\preferences8" "$INSTDIR\Resources\preferences"
|
||||
Delete "$INSTDIR\Resources\preferences7"
|
||||
Delete "$INSTDIR\Resources\preferencesGSview"
|
||||
${endif}
|
||||
|
||||
; register LyX
|
||||
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "${PRODUCT_EXE}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "RootKey" "$ProductRootKey"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME} ${PRODUCT_VERSION}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "${PRODUCT_UNINSTALL_EXE}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "${PRODUCT_EXE}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "StartMenu" "$SMPROGRAMS\$StartmenuFolder"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLUpdateInfo" "${PRODUCT_INFO_URL}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_ABOUT_URL}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "LyX Team"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "HelpLink" "${PRODUCT_HELP_LINK}"
|
||||
WriteRegDWORD ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "NoModify" 0x00000001
|
||||
WriteRegDWORD ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "NoRepair" 0x00000001
|
||||
|
||||
; create start menu entry
|
||||
SetOutPath "$INSTDIR\bin"
|
||||
CreateDirectory "$SMPROGRAMS\$StartmenuFolder"
|
||||
CreateShortCut "$SMPROGRAMS\$StartmenuFolder\${PRODUCT_NAME}.lnk" "${PRODUCT_BAT}" "" "${PRODUCT_EXE}"
|
||||
SetOutPath "$INSTDIR"
|
||||
CreateShortCut "$SMPROGRAMS\$StartmenuFolder\Uninstall.lnk" "${PRODUCT_UNINSTALL_EXE}"
|
||||
|
||||
; create desktop icon
|
||||
${if} $CreateDesktopIcon == "true"
|
||||
SetOutPath "$INSTDIR\bin"
|
||||
CreateShortCut "$DESKTOP\LyX ${PRODUCT_VERSION}.lnk" "${PRODUCT_BAT}" "" "${PRODUCT_EXE}"
|
||||
${endif}
|
||||
|
||||
; register the extension .lyx
|
||||
${if} $CreateFileAssociations == "true"
|
||||
${CreateApplicationAssociation} "${PRODUCT_NAME}" "${PRODUCT_NAME}" "$(FileTypeTitle)" "${PRODUCT_EXE}" "${PRODUCT_BAT}"
|
||||
${CreateFileAssociation} "${PRODUCT_EXT}" "${PRODUCT_NAME}" "${PRODUCT_MIME_TYPE}"
|
||||
${endif}
|
||||
|
||||
; create the LyX Application Data folder for all users
|
||||
; this folder is automatically created by LyX when it is first started but we want to start LyX with a specific session file,
|
||||
; so we create this folder before LyX starts and copy there the session file
|
||||
Call CreateAppPathSub ; function from LyXUtils.nsh
|
||||
|
||||
FunctionEnd
|
||||
|
@ -0,0 +1,88 @@
|
||||
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
|
||||
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}
|
||||
; check for PSPad
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\PSPad editor_is1" "InstallLocation"
|
||||
${if} $0 != ""
|
||||
StrCpy $0 $0 -1
|
||||
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
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for ConTEXT
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ConTEXTEditor_is1" "InstallLocation"
|
||||
${if} $0 != ""
|
||||
StrCpy $0 $0 -1
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for Crimson Editor
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Crimson Editor" "UninstallString"
|
||||
${if} $0 != ""
|
||||
StrCpy $0 $0 -14 ; remove "\uninstall.exe"
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for Vim 6.x
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Classes\Applications\gvim.exe\shell\edit\command" ""
|
||||
${if} $0 != ""
|
||||
StrCpy $0 $0 -13 ; remove "gvim.exe "%1""
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for Vim 7.0
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Vim 7.0" "UninstallString"
|
||||
${if} $0 != ""
|
||||
StrCpy $0 $0 -18 ; remove "\uninstall-gui.exe"
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for TeXnicCenter
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TeXnicCenter_is1" "Inno Setup: App Path"
|
||||
${if} $0 != ""
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for LaTeXEditor
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LaTeX Editor" "InstallLocation"
|
||||
${if} $0 != ""
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for WinEdt
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\WinEdt_is1" "InstallLocation"
|
||||
${if} $0 != ""
|
||||
StrCpy $0 $0 -1
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for LEd
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LEd_is1" "InstallLocation"
|
||||
${if} $0 != ""
|
||||
StrCpy $0 $0 -1
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for WinTeX
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\WinTeX XP" "DisplayIcon"
|
||||
${if} $0 != ""
|
||||
StrCpy $0 $0 -11 ; remove "\wintex.exe"
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
|
||||
FunctionEnd
|
@ -2,6 +2,7 @@
|
||||
; Sections are entered in order, so the settings above are all
|
||||
; available to SecInstallation
|
||||
Section "-Installation actions" SecInstallation
|
||||
|
||||
; extract all files
|
||||
SetOutPath "$INSTDIR"
|
||||
File /r "${PRODUCT_SOURCEDIR}\bin"
|
||||
@ -135,182 +136,18 @@ Section "-Installation actions" SecInstallation
|
||||
${endif}
|
||||
${endif}
|
||||
|
||||
; create the PathPrefix
|
||||
StrCpy $PathPrefix "$INSTDIR\bin"
|
||||
${if} $PythonPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$PythonPath"
|
||||
${endif}
|
||||
${if} $LatexPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$LatexPath"
|
||||
${endif}
|
||||
${if} $GhostscriptPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$GhostscriptPath"
|
||||
${endif}
|
||||
${if} $ImageMagickPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$ImageMagickPath"
|
||||
${endif}
|
||||
${if} $PSVPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$PSVPath"
|
||||
${endif}
|
||||
${if} $EditorPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$EditorPath"
|
||||
${endif}
|
||||
${if} $ImageEditorPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$ImageEditorPath"
|
||||
${endif}
|
||||
|
||||
; install the LaTeX class files that are delivered with LyX
|
||||
; and enable MiKTeX's automatic package installation
|
||||
StrCpy $String $LatexPath
|
||||
StrCpy $Search "miktex\bin"
|
||||
StrLen $3 $String
|
||||
Call StrPoint ; search the LaTeXPath for the phrase "miktex\bin" (function from LyXUtils.nsh)
|
||||
${if} $Pointer != "-1" ; if something was found
|
||||
IntOp $Pointer $Pointer - 1 ; jump before the first "\" of "\miktex\bin"
|
||||
StrCpy $String $String "$Pointer" ; $String is now the part before "\miktex\bin"
|
||||
; install LaTeX class files
|
||||
SetOutPath "$String\tex\latex"
|
||||
File "${ClassFileDir}\cv.cls"
|
||||
CreateDirectory "$String\tex\latex\lyx"
|
||||
SetOutPath "$String\tex\latex\lyx"
|
||||
File "${ClassFileDir}\lyxchess.sty"
|
||||
File "${ClassFileDir}\lyxskak.sty"
|
||||
CreateDirectory "$String\tex\latex\revtex"
|
||||
SetOutPath "$String\tex\latex\revtex"
|
||||
File "${ClassFileDir}\revtex.cls"
|
||||
CreateDirectory "$String\tex\latex\hollywood"
|
||||
SetOutPath "$String\tex\latex\hollywood"
|
||||
File "${ClassFileDir}\hollywood.cls"
|
||||
CreateDirectory "$String\tex\latex\broadway"
|
||||
SetOutPath "$String\tex\latex\broadway"
|
||||
File "${ClassFileDir}\broadway.cls"
|
||||
; install LaTeX-package dvipost (dvipost is not available for MiKTeX)
|
||||
SetOutPath "$String\tex\latex\"
|
||||
File /r "${DVIPostFileDir}"
|
||||
|
||||
${if} $MiKTeXVersion == "2.4"
|
||||
; refresh MiKTeX's file name database
|
||||
ExecWait "$String\miktex\bin\initexmf --update-fndb"
|
||||
; delete MiKTeX 2.4's dvipng executable as it is an old broken version. Then install a working one.
|
||||
Delete "$String\miktex\bin\dvipng.exe"
|
||||
; Install a new one
|
||||
SetOutPath "$String\miktex\bin"
|
||||
File "${PRODUCT_DIR}\LyX\external\dvipng.exe"
|
||||
; enable package installation without asking (1=Yes, 0=No, 2=Always Ask Before Installing)
|
||||
WriteRegStr HKCU "SOFTWARE\MiK\MiKTeX\CurrentVersion\MiKTeX" "InstallPackagesOnTheFly" "1"
|
||||
WriteRegStr HKCU "SOFTWARE\MiK\MiKTeX\CurrentVersion\MPM\Settings" "" ""
|
||||
; Setting package repository (MiKTeX's primary package repository)
|
||||
WriteRegStr HKCU "SOFTWARE\MiK\MiKTeX\CurrentVersion\MPM" "RemotePackageRepository" "${MiKTeXRepo}"
|
||||
|
||||
${else} ; if MiKTeX 2.5
|
||||
; refresh MiKTeX's file name database
|
||||
ExecWait "$LaTeXPath\initexmf --update-fndb"
|
||||
; enable package installation without asking (t = Yes, f = No)
|
||||
WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\2.5\MPM" "AutoInstall" "1" ; if only for curent user
|
||||
WriteRegStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "MIKTEX_AUTOINSTALL" "t"
|
||||
; set package repository (MiKTeX's primary package repository)
|
||||
WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\2.5\MPM" "RemoteRepository" "${MiKTeXRepo}" ; if only for curent user
|
||||
WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\2.5\MPM" "RepositoryType" "remote" ; if only for curent user
|
||||
WriteRegStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "MIKTEX_REPOSITORY" "${MiKTeXRepo}"
|
||||
${endif}
|
||||
|
||||
; enable MiKTeX's automatic package installation
|
||||
ExecWait '$LaTeXPath\mpm.com --update-fndb'
|
||||
; the following feature is planned to be used for a possible CD-version
|
||||
; ; copy LaTeX-packages needed by LyX
|
||||
; SetOutPath "$INSTDIR"
|
||||
; File /r "${LaTeXPackagesDir}"
|
||||
${endif} ; end ${if} $Pointer
|
||||
Call ConfigureMiKTeX ; Function from LaTeX.nsh
|
||||
|
||||
; install Aspell dictionaries
|
||||
${if} $LangCode == "nb_NO"
|
||||
StrCpy $LangCode "no_NO" ; we only have a norwegian dictionary available
|
||||
${endif}
|
||||
Call InstallAspellDictionary ; function from aspell.nsh
|
||||
Call InstallAspellDictionary ; function from Aspell.nsh
|
||||
|
||||
; configure LyX
|
||||
; Set a path prefix in lyxrc.dist
|
||||
ClearErrors
|
||||
${if} "$PathPrefix" != ""
|
||||
Delete "$INSTDIR\Resources\lyxrc.dist"
|
||||
FileOpen $R1 "$INSTDIR\Resources\lyxrc.dist" w
|
||||
FileWrite $R1 '\path_prefix "$PathPrefix"$\r$\n'
|
||||
FileClose $R1
|
||||
IfErrors 0 +2
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "$(ModifyingConfigureFailed)"
|
||||
${endif}
|
||||
|
||||
; Create a batch file to start LyX with the environment variables set
|
||||
ClearErrors
|
||||
Delete "${PRODUCT_BAT}"
|
||||
FileOpen $R1 "${PRODUCT_BAT}" w
|
||||
FileWrite $R1 '@echo off$\r$\n\
|
||||
SET LANG=$LangCode$\r$\n\
|
||||
SET AIK_DATA_DIR=${AiksaurusDir}$\r$\n\
|
||||
start "LyX" "lyx.exe" %*$\r$\n'
|
||||
FileClose $R1
|
||||
IfErrors 0 +2
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "$(CreateCmdFilesFailed)"
|
||||
|
||||
; set the preferences file
|
||||
; (having one preferences file that is modified to fit the needs is possible but not easy to maintain
|
||||
; therefore simply delete the files that shouldn't be used)
|
||||
; if not Acrobat or Adobe Reader is used
|
||||
${if} $Acrobat == "None" ; clear the entries in the preferences file that define PDFViewWin7 or 8 as viewer
|
||||
Rename "$INSTDIR\Resources\preferencesGSview" "$INSTDIR\Resources\preferences"
|
||||
Delete "$INSTDIR\Resources\preferences7"
|
||||
Delete "$INSTDIR\Resources\preferences8"
|
||||
${endif}
|
||||
; if Acrobat or Adobe Reader is used
|
||||
${if} $Acrobat == "7" ; used for all Acrobat (Adobe Reader) versions <= 7
|
||||
Rename "$INSTDIR\Resources\preferences7" "$INSTDIR\Resources\preferences"
|
||||
Delete "$INSTDIR\Resources\preferences8"
|
||||
Delete "$INSTDIR\Resources\preferencesGSview"
|
||||
${endif}
|
||||
${if} $Acrobat == "8"
|
||||
Rename "$INSTDIR\Resources\preferences8" "$INSTDIR\Resources\preferences"
|
||||
Delete "$INSTDIR\Resources\preferences7"
|
||||
Delete "$INSTDIR\Resources\preferencesGSview"
|
||||
${endif}
|
||||
|
||||
; register LyX
|
||||
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "${PRODUCT_EXE}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "RootKey" "$ProductRootKey"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME} ${PRODUCT_VERSION}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "${PRODUCT_UNINSTALL_EXE}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "${PRODUCT_EXE}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "StartMenu" "$SMPROGRAMS\$StartmenuFolder"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLUpdateInfo" "${PRODUCT_INFO_URL}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_ABOUT_URL}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "LyX Team"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "HelpLink" "${PRODUCT_HELP_LINK}"
|
||||
WriteRegDWORD ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "NoModify" 0x00000001
|
||||
WriteRegDWORD ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "NoRepair" 0x00000001
|
||||
|
||||
; create start menu entry
|
||||
SetOutPath "$INSTDIR\bin"
|
||||
CreateDirectory "$SMPROGRAMS\$StartmenuFolder"
|
||||
CreateShortCut "$SMPROGRAMS\$StartmenuFolder\${PRODUCT_NAME}.lnk" "${PRODUCT_BAT}" "" "${PRODUCT_EXE}"
|
||||
SetOutPath "$INSTDIR"
|
||||
CreateShortCut "$SMPROGRAMS\$StartmenuFolder\Uninstall.lnk" "${PRODUCT_UNINSTALL_EXE}"
|
||||
|
||||
; create desktop icon
|
||||
${if} $CreateDesktopIcon == "true"
|
||||
SetOutPath "$INSTDIR\bin"
|
||||
CreateShortCut "$DESKTOP\LyX ${PRODUCT_VERSION}.lnk" "${PRODUCT_BAT}" "" "${PRODUCT_EXE}"
|
||||
${endif}
|
||||
|
||||
; register the extension .lyx
|
||||
${if} $CreateFileAssociations == "true"
|
||||
${CreateApplicationAssociation} "${PRODUCT_NAME}" "${PRODUCT_NAME}" "$(FileTypeTitle)" "${PRODUCT_EXE}" "${PRODUCT_BAT}"
|
||||
${CreateFileAssociation} "${PRODUCT_EXT}" "${PRODUCT_NAME}" "${PRODUCT_MIME_TYPE}"
|
||||
${endif}
|
||||
|
||||
; create the LyX Application Data folder for all users
|
||||
; this folder is automatically created by LyX when it is first started but we want to start LyX with a specific session file,
|
||||
; so we create this folder before LyX starts and copy there the session file
|
||||
Call CreateAppPathSub ; function from LyXUtils.nsh
|
||||
Call ConfigureLyX ; Function from ConfigLyX.nsh
|
||||
|
||||
; delete unnecessary files
|
||||
${if} $DelPythonFiles == "True"
|
||||
|
@ -2,6 +2,7 @@
|
||||
; Sections are entered in order, so the settings above are all
|
||||
; available to SecInstallation
|
||||
Section "-Installation actions" SecInstallation
|
||||
|
||||
; extract all files
|
||||
SetOutPath "$INSTDIR"
|
||||
File /r "${PRODUCT_SOURCEDIR}\bin"
|
||||
@ -73,178 +74,18 @@ Section "-Installation actions" SecInstallation
|
||||
; WriteRegStr HKLM "Software\Aiksaurus" "Data Path" "${AiksaurusDir}"
|
||||
${endif}
|
||||
|
||||
; create the PathPrefix
|
||||
StrCpy $PathPrefix "$INSTDIR\bin"
|
||||
${if} $PythonPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$PythonPath"
|
||||
${endif}
|
||||
${if} $LatexPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$LatexPath"
|
||||
${endif}
|
||||
${if} $GhostscriptPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$GhostscriptPath"
|
||||
${endif}
|
||||
${if} $ImageMagickPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$ImageMagickPath"
|
||||
${endif}
|
||||
${if} $PSVPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$PSVPath"
|
||||
${endif}
|
||||
${if} $EditorPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$EditorPath"
|
||||
${endif}
|
||||
${if} $ImageEditorPath != ""
|
||||
StrCpy $PathPrefix "$PathPrefix;$ImageEditorPath"
|
||||
${endif}
|
||||
|
||||
; install the LaTeX class files that are delivered with LyX
|
||||
; and enable MiKTeX's automatic package installation
|
||||
StrCpy $String $LatexPath
|
||||
StrCpy $Search "miktex\bin"
|
||||
StrLen $3 $String
|
||||
Call StrPoint ; search the LaTeXPath for the phrase "miktex\bin" (function from LyXUtils.nsh)
|
||||
${if} $Pointer != "-1" ; if something was found
|
||||
IntOp $Pointer $Pointer - 1 ; jump before the first "\" of "\miktex\bin"
|
||||
StrCpy $String $String "$Pointer" ; $String is now the part before "\miktex\bin"
|
||||
; install LaTeX class files
|
||||
SetOutPath "$String\tex\latex"
|
||||
File "${ClassFileDir}\cv.cls"
|
||||
CreateDirectory "$String\tex\latex\lyx"
|
||||
SetOutPath "$String\tex\latex\lyx"
|
||||
File "${ClassFileDir}\lyxchess.sty"
|
||||
File "${ClassFileDir}\lyxskak.sty"
|
||||
CreateDirectory "$String\tex\latex\revtex"
|
||||
SetOutPath "$String\tex\latex\revtex"
|
||||
File "${ClassFileDir}\revtex.cls"
|
||||
CreateDirectory "$String\tex\latex\hollywood"
|
||||
SetOutPath "$String\tex\latex\hollywood"
|
||||
File "${ClassFileDir}\hollywood.cls"
|
||||
CreateDirectory "$String\tex\latex\broadway"
|
||||
SetOutPath "$String\tex\latex\broadway"
|
||||
File "${ClassFileDir}\broadway.cls"
|
||||
; install LaTeX-package dvipost (dvipost is not available for MiKTeX)
|
||||
SetOutPath "$String\tex\latex\"
|
||||
File /r "${DVIPostFileDir}"
|
||||
|
||||
${if} $MiKTeXVersion == "2.4"
|
||||
; refresh MiKTeX's file name database
|
||||
ExecWait "$String\miktex\bin\initexmf --update-fndb"
|
||||
; delete MiKTeX 2.4's dvipng executable as it is an old broken version. Then install a working one.
|
||||
Delete "$String\miktex\bin\dvipng.exe"
|
||||
; Install a new one
|
||||
SetOutPath "$String\miktex\bin"
|
||||
File "${PRODUCT_DIR}\LyX\external\dvipng.exe"
|
||||
; enable package installation without asking (1=Yes, 0=No, 2=Always Ask Before Installing)
|
||||
WriteRegStr HKCU "SOFTWARE\MiK\MiKTeX\CurrentVersion\MiKTeX" "InstallPackagesOnTheFly" "1"
|
||||
WriteRegStr HKCU "SOFTWARE\MiK\MiKTeX\CurrentVersion\MPM\Settings" "" ""
|
||||
; Setting package repository (MiKTeX's primary package repository)
|
||||
WriteRegStr HKCU "SOFTWARE\MiK\MiKTeX\CurrentVersion\MPM" "RemotePackageRepository" "${MiKTeXRepo}"
|
||||
|
||||
${else} ; if MiKTeX 2.5
|
||||
; refresh MiKTeX's file name database
|
||||
ExecWait "$LaTeXPath\initexmf --update-fndb"
|
||||
; enable package installation without asking (t = Yes, f = No)
|
||||
WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\2.5\MPM" "AutoInstall" "1" ; if only for curent user
|
||||
WriteRegStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "MIKTEX_AUTOINSTALL" "t"
|
||||
; set package repository (MiKTeX's primary package repository)
|
||||
WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\2.5\MPM" "RemoteRepository" "${MiKTeXRepo}" ; if only for curent user
|
||||
WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\2.5\MPM" "RepositoryType" "remote" ; if only for curent user
|
||||
WriteRegStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "MIKTEX_REPOSITORY" "${MiKTeXRepo}"
|
||||
${endif}
|
||||
|
||||
; enable MiKTeX's automatic package installation
|
||||
ExecWait '$LaTeXPath\mpm.com --update-fndb'
|
||||
${endif} ; end ${if} $Pointer
|
||||
Call ConfigureMiKTeX ; Function from LaTeX.nsh
|
||||
|
||||
; install Aspell dictionaries
|
||||
${if} $LangCode == "nb_NO"
|
||||
StrCpy $LangCode "no_NO" ; we only have a norwegian dictionary available
|
||||
${endif}
|
||||
Call InstallAspellDictionary ; function from aspell.nsh
|
||||
Call InstallAspellDictionary ; function from Aspell.nsh
|
||||
|
||||
; configure LyX
|
||||
; Set a path prefix in lyxrc.dist
|
||||
ClearErrors
|
||||
${if} "$PathPrefix" != ""
|
||||
Delete "$INSTDIR\Resources\lyxrc.dist"
|
||||
FileOpen $R1 "$INSTDIR\Resources\lyxrc.dist" w
|
||||
FileWrite $R1 '\path_prefix "$PathPrefix"$\r$\n'
|
||||
FileClose $R1
|
||||
IfErrors 0 +2
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "$(ModifyingConfigureFailed)"
|
||||
${endif}
|
||||
|
||||
; Create a batch file to start LyX with the environment variables set
|
||||
ClearErrors
|
||||
Delete "${PRODUCT_BAT}"
|
||||
FileOpen $R1 "${PRODUCT_BAT}" w
|
||||
FileWrite $R1 '@echo off$\r$\n\
|
||||
SET LANG=$LangCode$\r$\n\
|
||||
SET AIK_DATA_DIR=${AiksaurusDir}$\r$\n\
|
||||
start "LyX" "lyx.exe" %*$\r$\n'
|
||||
FileClose $R1
|
||||
IfErrors 0 +2
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "$(CreateCmdFilesFailed)"
|
||||
|
||||
; set the preferences file
|
||||
; (having one preferences file that is modified to fit the needs is possible but not easy to maintain
|
||||
; therefore simply delete the files that shouldn't be used)
|
||||
; if not Acrobat or Adobe Reader is used
|
||||
${if} $Acrobat == "None" ; clear the entries in the preferences file that define PDFViewWin7 or 8 as viewer
|
||||
Rename "$INSTDIR\Resources\preferencesGSview" "$INSTDIR\Resources\preferences"
|
||||
Delete "$INSTDIR\Resources\preferences7"
|
||||
Delete "$INSTDIR\Resources\preferences8"
|
||||
${endif}
|
||||
; if Acrobat or Adobe Reader is used
|
||||
${if} $Acrobat == "7" ; used for all Acrobat (Adobe Reader) versions <= 7
|
||||
Rename "$INSTDIR\Resources\preferences7" "$INSTDIR\Resources\preferences"
|
||||
Delete "$INSTDIR\Resources\preferences8"
|
||||
Delete "$INSTDIR\Resources\preferencesGSview"
|
||||
${endif}
|
||||
${if} $Acrobat == "8"
|
||||
Rename "$INSTDIR\Resources\preferences8" "$INSTDIR\Resources\preferences"
|
||||
Delete "$INSTDIR\Resources\preferences7"
|
||||
Delete "$INSTDIR\Resources\preferencesGSview"
|
||||
${endif}
|
||||
|
||||
; register LyX
|
||||
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "${PRODUCT_EXE}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "RootKey" "$ProductRootKey"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME} ${PRODUCT_VERSION}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "${PRODUCT_UNINSTALL_EXE}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "${PRODUCT_EXE}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "StartMenu" "$SMPROGRAMS\$StartmenuFolder"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLUpdateInfo" "${PRODUCT_INFO_URL}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_ABOUT_URL}"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "LyX Team"
|
||||
WriteRegStr ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "HelpLink" "${PRODUCT_HELP_LINK}"
|
||||
WriteRegDWORD ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "NoModify" 0x00000001
|
||||
WriteRegDWORD ${PRODUCT_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "NoRepair" 0x00000001
|
||||
|
||||
; create start menu entry
|
||||
SetOutPath "$INSTDIR\bin"
|
||||
CreateDirectory "$SMPROGRAMS\$StartmenuFolder"
|
||||
CreateShortCut "$SMPROGRAMS\$StartmenuFolder\${PRODUCT_NAME}.lnk" "${PRODUCT_BAT}" "" "${PRODUCT_EXE}"
|
||||
SetOutPath "$INSTDIR"
|
||||
CreateShortCut "$SMPROGRAMS\$StartmenuFolder\Uninstall.lnk" "${PRODUCT_UNINSTALL_EXE}"
|
||||
|
||||
; create desktop icon
|
||||
${if} $CreateDesktopIcon == "true"
|
||||
SetOutPath "$INSTDIR\bin"
|
||||
CreateShortCut "$DESKTOP\LyX ${PRODUCT_VERSION}.lnk" "${PRODUCT_BAT}" "" "${PRODUCT_EXE}"
|
||||
${endif}
|
||||
|
||||
; register the extension .lyx
|
||||
${if} $CreateFileAssociations == "true"
|
||||
${CreateApplicationAssociation} "${PRODUCT_NAME}" "${PRODUCT_NAME}" "$(FileTypeTitle)" "${PRODUCT_EXE}" "${PRODUCT_BAT}"
|
||||
${CreateFileAssociation} "${PRODUCT_EXT}" "${PRODUCT_NAME}" "${PRODUCT_MIME_TYPE}"
|
||||
${endif}
|
||||
|
||||
; create the LyX Application Data folder for all users
|
||||
; this folder is automatically created by LyX when it is first started but we want to start LyX with a specific session file,
|
||||
; so we create this folder before LyX starts and copy there the session file
|
||||
Call CreateAppPathSub ; function from LyXUtils.nsh
|
||||
Call ConfigureLyX ; Function from ConfigLyX.nsh
|
||||
|
||||
; delete unnecessary files
|
||||
${if} $DelPythonFiles == "True"
|
||||
|
142
development/Win32/packaging/installer/LyXWinInstaller/LaTeX.nsh
Normal file
142
development/Win32/packaging/installer/LyXWinInstaller/LaTeX.nsh
Normal file
@ -0,0 +1,142 @@
|
||||
Function LaTeXActions
|
||||
; tests if MiKTeX is installed
|
||||
; reads the PATH variable via the registry because NSIS' "$%Path%" variable is not updated when the PATH changes
|
||||
|
||||
ReadRegStr $String HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path"
|
||||
StrCpy $Search "miktex"
|
||||
Call LaTeXCheck ; sets the path to the latex.exe to $LatexPath ; Function from LyXUtils.nsh
|
||||
; check if MiKTeX 2.4 or 2.5 is installed
|
||||
StrCpy $String ""
|
||||
ReadRegStr $String HKLM "Software\MiK\MiKTeX\CurrentVersion\MiKTeX" "Install Root"
|
||||
${if} $String != ""
|
||||
StrCpy $MiKTeXVersion "2.4" ; needed later for the configuration of MiKTeX
|
||||
StrCpy $LaTeXName "MiKTeX 2.4"
|
||||
${endif}
|
||||
|
||||
${if} $LatexPath == "" ; check if MiKTeX is installed only for the current user
|
||||
; check for MiKTeX 2.5
|
||||
ReadRegStr $String HKCU "Environment" "Path"
|
||||
StrCpy $Search "miktex"
|
||||
Call LaTeXCheck ; function from LyXUtils.nsh
|
||||
${if} $LatexPath != ""
|
||||
StrCpy $MiKTeXUser "HKCU" ; needed later to for a message about MiKTeX's install folder write permissions, see InstallActions-*.nsh
|
||||
${endif}
|
||||
; check for MiKTeX 2.4
|
||||
StrCpy $String ""
|
||||
ReadRegStr $String HKCU "Software\MiK\MiKTeX\CurrentVersion\MiKTeX" "Install Root"
|
||||
${if} $String != ""
|
||||
StrCpy $MiKTeXVersion "2.4"
|
||||
StrCpy $LaTeXName "MiKTeX 2.4"
|
||||
${endif}
|
||||
${endif}
|
||||
|
||||
${if} $LatexPath != ""
|
||||
StrCpy $MiKTeXInstalled "yes"
|
||||
${if} $LaTeXName != "MiKTeX 2.4"
|
||||
StrCpy $LaTeXName "MiKTeX 2.5"
|
||||
${endif}
|
||||
${endif}
|
||||
|
||||
; test if TeXLive is installed
|
||||
; as described at TeXLives' homepage there should be an entry in the PATH
|
||||
${if} $LatexPath == ""
|
||||
ReadRegStr $String HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path"
|
||||
StrCpy $Search "TeXLive"
|
||||
Call LaTeXCheck ; function from LyXUtils.nsh
|
||||
${endif}
|
||||
; check for the current user Path variable (the case when it is a live CD/DVD)
|
||||
${if} $LatexPath == ""
|
||||
ReadRegStr $String HKCU "Environment" "Path"
|
||||
StrCpy $Search "texlive"
|
||||
StrCpy $2 "TeXLive"
|
||||
Call LaTeXCheck ; function from LyXUtils.nsh
|
||||
${endif}
|
||||
; check if the variable TLroot exists (the case when it is installed using the program "tlpmgui")
|
||||
${if} $LatexPath == ""
|
||||
ReadRegStr $String HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "TLroot"
|
||||
${if} $String == ""
|
||||
ReadRegStr $String HKCU "Environment" "TLroot" ; the case when installed without admin permissions
|
||||
${endif}
|
||||
StrCpy $LatexPath "$String\bin\win32"
|
||||
; check if the latex.exe exists in the $LatexPath folder
|
||||
!insertmacro FileCheck $5 "latex.exe" "$LatexPath" ; macro from LyXUtils.nsh
|
||||
${if} $5 == "False"
|
||||
StrCpy $LatexPath ""
|
||||
${endif}
|
||||
${endif}
|
||||
${if} $LatexPath != ""
|
||||
${andif} $LaTeXName != "MiKTeX 2.4"
|
||||
${andif} $LaTeXName != "MiKTeX 2.5"
|
||||
StrCpy $LaTeXName "TeXLive"
|
||||
${endif}
|
||||
|
||||
FunctionEnd
|
||||
|
||||
; ------------------------------
|
||||
|
||||
Function ConfigureMiKTeX
|
||||
; installs the LaTeX class files that are delivered with LyX
|
||||
; and enable MiKTeX's automatic package installation
|
||||
|
||||
StrCpy $String $LatexPath
|
||||
StrCpy $Search "miktex\bin"
|
||||
StrLen $3 $String
|
||||
Call StrPoint ; search the LaTeXPath for the phrase "miktex\bin" (function from LyXUtils.nsh)
|
||||
${if} $Pointer != "-1" ; if something was found
|
||||
IntOp $Pointer $Pointer - 1 ; jump before the first "\" of "\miktex\bin"
|
||||
StrCpy $String $String "$Pointer" ; $String is now the part before "\miktex\bin"
|
||||
; install LaTeX class files
|
||||
SetOutPath "$String\tex\latex"
|
||||
File "${ClassFileDir}\cv.cls"
|
||||
CreateDirectory "$String\tex\latex\lyx"
|
||||
SetOutPath "$String\tex\latex\lyx"
|
||||
File "${ClassFileDir}\lyxchess.sty"
|
||||
File "${ClassFileDir}\lyxskak.sty"
|
||||
CreateDirectory "$String\tex\latex\revtex"
|
||||
SetOutPath "$String\tex\latex\revtex"
|
||||
File "${ClassFileDir}\revtex.cls"
|
||||
CreateDirectory "$String\tex\latex\hollywood"
|
||||
SetOutPath "$String\tex\latex\hollywood"
|
||||
File "${ClassFileDir}\hollywood.cls"
|
||||
CreateDirectory "$String\tex\latex\broadway"
|
||||
SetOutPath "$String\tex\latex\broadway"
|
||||
File "${ClassFileDir}\broadway.cls"
|
||||
; install LaTeX-package dvipost (dvipost is not available for MiKTeX)
|
||||
SetOutPath "$String\tex\latex\"
|
||||
File /r "${DVIPostFileDir}"
|
||||
|
||||
${if} $MiKTeXVersion == "2.4"
|
||||
; refresh MiKTeX's file name database
|
||||
ExecWait "$String\miktex\bin\initexmf --update-fndb"
|
||||
; delete MiKTeX 2.4's dvipng executable as it is an old broken version. Then install a working one.
|
||||
Delete "$String\miktex\bin\dvipng.exe"
|
||||
; Install a new one
|
||||
SetOutPath "$String\miktex\bin"
|
||||
File "${PRODUCT_DIR}\LyX\external\dvipng.exe"
|
||||
; enable package installation without asking (1=Yes, 0=No, 2=Always Ask Before Installing)
|
||||
WriteRegStr HKCU "SOFTWARE\MiK\MiKTeX\CurrentVersion\MiKTeX" "InstallPackagesOnTheFly" "1"
|
||||
WriteRegStr HKCU "SOFTWARE\MiK\MiKTeX\CurrentVersion\MPM\Settings" "" ""
|
||||
; Setting package repository (MiKTeX's primary package repository)
|
||||
WriteRegStr HKCU "SOFTWARE\MiK\MiKTeX\CurrentVersion\MPM" "RemotePackageRepository" "${MiKTeXRepo}"
|
||||
|
||||
${else} ; if MiKTeX 2.5
|
||||
; refresh MiKTeX's file name database
|
||||
ExecWait "$LaTeXPath\initexmf --update-fndb"
|
||||
; enable package installation without asking (t = Yes, f = No)
|
||||
WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\2.5\MPM" "AutoInstall" "1" ; if only for curent user
|
||||
WriteRegStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "MIKTEX_AUTOINSTALL" "t"
|
||||
; set package repository (MiKTeX's primary package repository)
|
||||
WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\2.5\MPM" "RemoteRepository" "${MiKTeXRepo}" ; if only for curent user
|
||||
WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\2.5\MPM" "RepositoryType" "remote" ; if only for curent user
|
||||
WriteRegStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "MIKTEX_REPOSITORY" "${MiKTeXRepo}"
|
||||
${endif}
|
||||
|
||||
; enable MiKTeX's automatic package installation
|
||||
ExecWait '$LaTeXPath\mpm.com --update-fndb'
|
||||
; the following feature is planned to be used for a possible CD-version
|
||||
; copy LaTeX-packages needed by LyX
|
||||
; SetOutPath "$INSTDIR"
|
||||
; File /r "${LaTeXPackagesDir}"
|
||||
${endif} ; end ${if} $Pointer
|
||||
|
||||
FunctionEnd
|
@ -19,14 +19,14 @@
|
||||
CRCCheck force
|
||||
|
||||
; Make the installer as small as possible.
|
||||
; SetCompressor lzma
|
||||
SetCompressor lzma
|
||||
|
||||
;--------------------------------
|
||||
; You should need to change only these macros...
|
||||
|
||||
!define PRODUCT_DIR "D:\LyXPackage1.5"
|
||||
!define PRODUCT_NAME "LyX"
|
||||
!define PRODUCT_VERSION "1.5svn-15-04-2007"
|
||||
!define PRODUCT_VERSION "1.5svn-xx-04-2007"
|
||||
!define PRODUCT_VERSION_SHORT "150svn"
|
||||
!define PRODUCT_SUBFOLDER "lyx15"
|
||||
!define PRODUCT_LICENSE_FILE "${PRODUCT_DIR}\License.txt"
|
||||
@ -40,10 +40,10 @@ CRCCheck force
|
||||
!define PRODUCT_ABOUT_URL "http://www.lyx.org/about/"
|
||||
!define PRODUCT_INFO_URL "http://www.lyx.org/"
|
||||
|
||||
BrandingText "LyXWinInstaller v3.12 - Complete"
|
||||
BrandingText "LyXWinInstaller v3.13 - Complete"
|
||||
!define INSTALLER_VERSION "Complete"
|
||||
!define INSTALLER_EXE "LyXWin150svnComplete-3-12.exe"
|
||||
!define INSTALLER2_EXE "LyXWin150svnSmall-3-12.exe" ; to check later if this installer version is running at the same time
|
||||
!define INSTALLER_EXE "LyXWin150svnComplete-3-13.exe"
|
||||
!define INSTALLER2_EXE "LyXWin150svnSmall-3-13.exe" ; to check later if this installer version is running at the same time
|
||||
!define VERSION_BITMAP "${PRODUCT_DIR}\icons\lyx_logo_vert${PRODUCT_VERSION_SHORT}.bmp"
|
||||
|
||||
; Replaced by HKLM or HKCU depending on SetShellVarContext.
|
||||
@ -78,7 +78,7 @@ BrandingText "LyXWinInstaller v3.12 - Complete"
|
||||
!define MiKTeXConfigFolder "MiKTeX\2.5\miktex\config"
|
||||
!define MiKTeXDeliveredVersion "MiKTeX 2.5"
|
||||
!define MiKTeXInstall "$INSTDIR\external\basic-miktex-2.5.2580.exe"
|
||||
!define PRODUCT_VERSION_OLD "none" ; to avoid warning message because this variable is only used for the Update installer version
|
||||
!define PRODUCT_VERSION_OLD "none" ; only here to avoid warning message - variable only used in Update installer version
|
||||
|
||||
;--------------------------------
|
||||
; Make some of the information above available to NSIS.
|
||||
@ -151,6 +151,12 @@ Var RunNumber
|
||||
; Set of various macros and functions
|
||||
!include "LyXUtils.nsh"
|
||||
|
||||
; Functions to check and configure the LaTeX-system
|
||||
!include "LaTeX.nsh"
|
||||
|
||||
; Function to check installed LaTeX-editors
|
||||
!include "Editors.nsh"
|
||||
|
||||
; Function to check if needed programs are missing or not
|
||||
!include "MissingPrograms.nsh"
|
||||
|
||||
@ -158,16 +164,18 @@ Var RunNumber
|
||||
; and LyX's menu language
|
||||
!include "LanguageSettings.nsh"
|
||||
|
||||
; Function for page to install Aspell dictionaries
|
||||
!include "Aspell.nsh"
|
||||
|
||||
; Use the Abiword macros to help set up associations with the file extension in the Registry.
|
||||
; Grabbed from
|
||||
; http://abiword.pchasm.org/source/cvs/abiword-cvs/abi/src/pkg/win/setup/NSISv2/abi_util_fileassoc.nsh
|
||||
!include "abi_util_fileassoc.nsh"
|
||||
|
||||
;--------------------------------
|
||||
; Function to configure LyX
|
||||
!include "ConfigLyX.nsh"
|
||||
|
||||
; Function for page to install Aspell dictionaries
|
||||
!include "Aspell.nsh"
|
||||
|
||||
;--------------------------------
|
||||
; Remember the installer language
|
||||
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
|
||||
!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
|
||||
@ -300,6 +308,7 @@ SectionEnd
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecInstJabRef} "$(SecInstJabRefDescription)"
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
; the installation section
|
||||
!include "InstallActions-complete.nsh"
|
||||
|
||||
;--------------------------------
|
||||
@ -353,6 +362,9 @@ Function .onInit
|
||||
Abort
|
||||
${endif}
|
||||
|
||||
; check the LaTeX-system
|
||||
Call LaTeXActions ; Function from LaTeX.nsh
|
||||
|
||||
; check which programs are installed or not
|
||||
Call MissingPrograms ; function from MissingPrograms.nsh
|
||||
|
||||
@ -376,80 +388,6 @@ FunctionEnd
|
||||
;--------------------------------
|
||||
; The Uninstaller
|
||||
|
||||
Function un.onInit
|
||||
|
||||
; Check that LyX is not currently running
|
||||
FindProcDLL::FindProc "lyx.exe"
|
||||
${if} $R0 == "1"
|
||||
MessageBox MB_OK|MB_ICONSTOP "$(UnInstallRunning)"
|
||||
Abort
|
||||
${endif}
|
||||
|
||||
; Ascertain whether the user has sufficient privileges to uninstall.
|
||||
SetShellVarContext current
|
||||
|
||||
ReadRegStr $0 HKCU "${PRODUCT_UNINST_KEY}" "RootKey"
|
||||
${if} $0 == ""
|
||||
ReadRegStr $0 HKLM "${PRODUCT_UNINST_KEY}" "RootKey"
|
||||
${if} $0 == ""
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "$(UnNotInRegistryLabel)"
|
||||
${endif}
|
||||
${endif}
|
||||
|
||||
; If the user does *not* have administrator privileges, abort
|
||||
StrCpy $Answer ""
|
||||
!insertmacro IsUserAdmin $Answer $UserName ; macro from LyXUtils.nsh
|
||||
${if} $Answer == "yes"
|
||||
SetShellVarContext all
|
||||
${else}
|
||||
MessageBox MB_OK|MB_ICONSTOP "$(UnNotAdminLabel)"
|
||||
Abort
|
||||
${endif}
|
||||
|
||||
; Macro to investigate name of LyX's preferences folders to be able remove them
|
||||
!insertmacro UnAppPreSuff $AppPre $AppSuff ; macro from LyXUtils.nsh
|
||||
|
||||
; test if Aspell was installed together with LyX
|
||||
ReadRegStr $0 HKLM "Software\Aspell" "OnlyWithLyX" ; special entry to test if it was installed with LyX
|
||||
${if} $0 == "Yes${PRODUCT_VERSION_SHORT}"
|
||||
SectionSetText 2 "Aspell" ; names the corersponding uninstaller section (has the index "2" as it is the third section in Uninstall.nsh)
|
||||
StrCpy $AspellInstallYes "Aspell"
|
||||
${else}
|
||||
SectionSetText 2 "" ; hides the corresponding uninstaller section
|
||||
${endif}
|
||||
|
||||
; test if MiKTeX was installed together with LyX
|
||||
ReadRegStr $0 HKLM "SOFTWARE\MiKTeX.org\MiKTeX" "OnlyWithLyX"
|
||||
${if} $0 == "Yes${PRODUCT_VERSION_SHORT}"
|
||||
SectionSetText 3 "MiKTeX" ; names the corersponding uninstaller section
|
||||
StrCpy $MiKTeXInstalled "MiKTeX"
|
||||
${else}
|
||||
SectionSetText 3 "" ; hides the corresponding uninstaller section
|
||||
${endif}
|
||||
|
||||
; test if JabRef was installed together with LyX
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${JabRefVersion}" "OnlyWithLyX"
|
||||
${if} $0 == "Yes${PRODUCT_VERSION_SHORT}"
|
||||
SectionSetText 4 "JabRef" ; names the corersponding uninstaller section
|
||||
StrCpy $JabRefInstalled "JabRef"
|
||||
${else}
|
||||
SectionSetText 4 "" ; hides the corresponding uninstaller section
|
||||
${endif}
|
||||
|
||||
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "$(UnReallyRemoveLabel)" IDYES +2
|
||||
Abort
|
||||
|
||||
FunctionEnd
|
||||
|
||||
|
||||
Function un.onUninstSuccess
|
||||
HideWindow
|
||||
MessageBox MB_ICONINFORMATION|MB_OK "$(UnRemoveSuccessLabel)"
|
||||
|
||||
FunctionEnd
|
||||
|
||||
;----------------------
|
||||
;Installer sections
|
||||
!include "Uninstall.nsh"
|
||||
|
||||
; eof
|
||||
|
@ -19,14 +19,14 @@
|
||||
CRCCheck force
|
||||
|
||||
; Make the installer as small as possible.
|
||||
; SetCompressor lzma
|
||||
SetCompressor lzma
|
||||
|
||||
;--------------------------------
|
||||
; You should need to change only these macros...
|
||||
|
||||
!define PRODUCT_DIR "D:\LyXPackage1.5"
|
||||
!define PRODUCT_NAME "LyX"
|
||||
!define PRODUCT_VERSION "1.5svn-15-04-2007"
|
||||
!define PRODUCT_VERSION "1.5svn-xx-04-2007"
|
||||
!define PRODUCT_VERSION_SHORT "150svn"
|
||||
!define PRODUCT_SUBFOLDER "lyx15"
|
||||
!define PRODUCT_LICENSE_FILE "${PRODUCT_DIR}\License.txt"
|
||||
@ -40,10 +40,10 @@ CRCCheck force
|
||||
!define PRODUCT_ABOUT_URL "http://www.lyx.org/about/"
|
||||
!define PRODUCT_INFO_URL "http://www.lyx.org/"
|
||||
|
||||
BrandingText "LyXWinInstaller v3.12 - Small"
|
||||
BrandingText "LyXWinInstaller v3.13 - Small"
|
||||
!define INSTALLER_VERSION "Small"
|
||||
!define INSTALLER_EXE "LyXWin150svnSmall-3-12.exe"
|
||||
!define INSTALLER2_EXE "LyXWin150svnComplete-3-12.exe" ; to check later if this installer version is running at the same time
|
||||
!define INSTALLER_EXE "LyXWin150svnSmall-3-13.exe"
|
||||
!define INSTALLER2_EXE "LyXWin150svnComplete-3-13.exe" ; to check later if this installer version is running at the same time
|
||||
!define VERSION_BITMAP "${PRODUCT_DIR}\icons\lyx_logo_vert${PRODUCT_VERSION_SHORT}.bmp"
|
||||
|
||||
; Replaced by HKLM or HKCU depending on SetShellVarContext.
|
||||
@ -72,8 +72,8 @@ BrandingText "LyXWinInstaller v3.12 - Small"
|
||||
!define DVIPostFileDir "${PRODUCT_SOURCEDIR}\external\dvipost"
|
||||
!define MiKTeXRepo "ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/"
|
||||
!define MiKTeXConfigFolder "MiKTeX\2.5\miktex\config"
|
||||
!define MiKTeXDeliveredVersion "MiKTeX not included"
|
||||
!define PRODUCT_VERSION_OLD "none" ; to avoid warning message because this variable is only used for the Update installer version
|
||||
!define MiKTeXDeliveredVersion "MiKTeX not included" ; only here to avoid warning message - variable only used in Complete installer version
|
||||
!define PRODUCT_VERSION_OLD "none" ; only here to avoid warning message - variable only used in Update installer version
|
||||
|
||||
;--------------------------------
|
||||
; Make some of the information above available to NSIS.
|
||||
@ -144,6 +144,12 @@ Var RunNumber
|
||||
; Set of various macros and functions
|
||||
!include "LyXUtils.nsh"
|
||||
|
||||
; Functions to check and configure the LaTeX-system
|
||||
!include "LaTeX.nsh"
|
||||
|
||||
; Function to check installed LaTeX-editors
|
||||
!include "Editors.nsh"
|
||||
|
||||
; Function to check if needed programs are missing or not
|
||||
!include "MissingPrograms.nsh"
|
||||
|
||||
@ -154,16 +160,18 @@ Var RunNumber
|
||||
; and LyX's menu language
|
||||
!include "LanguageSettings.nsh"
|
||||
|
||||
; Function for page to install Aspell dictionaries
|
||||
!include "Aspell.nsh"
|
||||
|
||||
; Use the Abiword macros to help set up associations with the file extension in the Registry.
|
||||
; Grabbed from
|
||||
; http://abiword.pchasm.org/source/cvs/abiword-cvs/abi/src/pkg/win/setup/NSISv2/abi_util_fileassoc.nsh
|
||||
!include "abi_util_fileassoc.nsh"
|
||||
|
||||
;--------------------------------
|
||||
; Function to configure LyX
|
||||
!include "ConfigLyX.nsh"
|
||||
|
||||
; Function for page to install Aspell dictionaries
|
||||
!include "Aspell.nsh"
|
||||
|
||||
;--------------------------------
|
||||
; Remember the installer language
|
||||
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
|
||||
!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
|
||||
@ -289,6 +297,7 @@ SectionEnd
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecDesktop} "$(SecDesktopDescription)"
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
; the installation section
|
||||
!include "InstallActions-small.nsh"
|
||||
|
||||
;--------------------------------
|
||||
@ -342,6 +351,9 @@ Function .onInit
|
||||
Abort
|
||||
${endif}
|
||||
|
||||
; check the LaTeX-system
|
||||
Call LaTeXActions ; Function from LaTeX.nsh
|
||||
|
||||
; check which programs are installed or not
|
||||
Call MissingPrograms ; function from MissingPrograms.nsh
|
||||
|
||||
@ -360,75 +372,6 @@ FunctionEnd
|
||||
;--------------------------------
|
||||
; The Uninstaller
|
||||
|
||||
Function un.onInit
|
||||
|
||||
; Check that LyX is not currently running
|
||||
FindProcDLL::FindProc "lyx.exe"
|
||||
${if} $R0 == "1"
|
||||
MessageBox MB_OK|MB_ICONSTOP "$(UnInstallRunning)"
|
||||
Abort
|
||||
${endif}
|
||||
|
||||
; Ascertain whether the user has sufficient privileges to uninstall.
|
||||
SetShellVarContext current
|
||||
|
||||
ReadRegStr $0 HKCU "${PRODUCT_UNINST_KEY}" "RootKey"
|
||||
${if} $0 == ""
|
||||
ReadRegStr $0 HKLM "${PRODUCT_UNINST_KEY}" "RootKey"
|
||||
${if} $0 == ""
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "$(UnNotInRegistryLabel)"
|
||||
${endif}
|
||||
${endif}
|
||||
|
||||
; If the user does *not* have administrator privileges, abort
|
||||
StrCpy $Answer ""
|
||||
!insertmacro IsUserAdmin $Answer $UserName ; macro from LyXUtils.nsh
|
||||
${if} $Answer == "yes"
|
||||
SetShellVarContext all
|
||||
${else}
|
||||
MessageBox MB_OK|MB_ICONSTOP "$(UnNotAdminLabel)"
|
||||
Abort
|
||||
${endif}
|
||||
|
||||
; Macro to investigate name of LyX's preferences folders to be able remove them
|
||||
!insertmacro UnAppPreSuff $AppPre $AppSuff ; macro from LyXUtils.nsh
|
||||
|
||||
; test if Aspell was installed together with LyX
|
||||
ReadRegStr $0 HKLM "Software\Aspell" "OnlyWithLyX" ; special entry to test if it was installed with LyX
|
||||
${if} $0 == "Yes${PRODUCT_VERSION_SHORT}"
|
||||
SectionSetText 2 "Aspell" ; names the corersponding uninstaller section (has the index "2" as it is the third section in Uninstall.nsh)
|
||||
StrCpy $AspellInstallYes "Aspell"
|
||||
${else}
|
||||
SectionSetText 2 "" ; hides the corresponding uninstaller section
|
||||
${endif}
|
||||
|
||||
; test if MiKTeX was installed together with LyX
|
||||
ReadRegStr $0 HKLM "SOFTWARE\MiKTeX.org\MiKTeX" "OnlyWithLyX"
|
||||
${if} $0 == "Yes${PRODUCT_VERSION_SHORT}"
|
||||
SectionSetText 3 "MiKTeX" ; names the corersponding uninstaller section
|
||||
StrCpy $MiKTeXInstalled "MiKTeX"
|
||||
${else}
|
||||
SectionSetText 3 "" ; hides the corresponding uninstaller section
|
||||
${endif}
|
||||
|
||||
; ignore JabRef because this could only be installed with the complete installer version
|
||||
SectionSetText 4 "" ; hides the corresponding uninstaller section
|
||||
StrCpy $JabRefInstalled ""
|
||||
|
||||
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "$(UnReallyRemoveLabel)" IDYES +2
|
||||
Abort
|
||||
|
||||
FunctionEnd
|
||||
|
||||
|
||||
Function un.onUninstSuccess
|
||||
HideWindow
|
||||
MessageBox MB_ICONINFORMATION|MB_OK "$(UnRemoveSuccessLabel)"
|
||||
|
||||
FunctionEnd
|
||||
|
||||
;----------------------
|
||||
;Installer sections
|
||||
!include "Uninstall.nsh"
|
||||
|
||||
; eof
|
||||
|
@ -29,8 +29,6 @@
|
||||
;
|
||||
; - FileCheck (checks if a given file exists)
|
||||
;
|
||||
; - EditorCheck (check for installed editors)
|
||||
;
|
||||
;--------------------------
|
||||
|
||||
!macro StrPointer FindStr SearchStr Pointer
|
||||
@ -508,94 +506,3 @@ Function LaTeXCheck
|
||||
|
||||
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
|
||||
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}
|
||||
; check for PSPad
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\PSPad editor_is1" "InstallLocation"
|
||||
${if} $0 != ""
|
||||
StrCpy $0 $0 -1
|
||||
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
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for ConTEXT
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ConTEXTEditor_is1" "InstallLocation"
|
||||
${if} $0 != ""
|
||||
StrCpy $0 $0 -1
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for Crimson Editor
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Crimson Editor" "UninstallString"
|
||||
${if} $0 != ""
|
||||
StrCpy $0 $0 -14 ; remove "\uninstall.exe"
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for Vim 6.x
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Classes\Applications\gvim.exe\shell\edit\command" ""
|
||||
${if} $0 != ""
|
||||
StrCpy $0 $0 -13 ; remove "gvim.exe "%1""
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for Vim 7.0
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Vim 7.0" "UninstallString"
|
||||
${if} $0 != ""
|
||||
StrCpy $0 $0 -18 ; remove "\uninstall-gui.exe"
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for TeXnicCenter
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TeXnicCenter_is1" "Inno Setup: App Path"
|
||||
${if} $0 != ""
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for LaTeXEditor
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LaTeX Editor" "InstallLocation"
|
||||
${if} $0 != ""
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for WinEdt
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\WinEdt_is1" "InstallLocation"
|
||||
${if} $0 != ""
|
||||
StrCpy $0 $0 -1
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for LEd
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LEd_is1" "InstallLocation"
|
||||
${if} $0 != ""
|
||||
StrCpy $0 $0 -1
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
; check for WinTeX
|
||||
StrCpy $0 ""
|
||||
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\WinTeX XP" "DisplayIcon"
|
||||
${if} $0 != ""
|
||||
StrCpy $0 $0 -11 ; remove "\wintex.exe"
|
||||
StrCpy $EditorPath "$EditorPath;$0"
|
||||
${endif}
|
||||
|
||||
FunctionEnd
|
||||
|
||||
|
@ -1,77 +1,8 @@
|
||||
Function MissingPrograms
|
||||
|
||||
; initialize variable, is later set to True when a program was not found
|
||||
StrCpy $MissedProg "False"
|
||||
|
||||
; test if MiKTeX is installed
|
||||
; read the PATH variable via the registry because NSIS' "$%Path%" variable is not updated when the PATH changes
|
||||
ReadRegStr $String HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path"
|
||||
StrCpy $Search "miktex"
|
||||
Call LaTeXCheck ; sets the path to the latex.exe to $LatexPath ; function from LyXUtils.nsh
|
||||
; check if MiKTeX 2.4 or 2.5 is installed
|
||||
StrCpy $String ""
|
||||
ReadRegStr $String HKLM "Software\MiK\MiKTeX\CurrentVersion\MiKTeX" "Install Root"
|
||||
${if} $String != ""
|
||||
StrCpy $MiKTeXVersion "2.4" ; needed later for the configuration of MiKTeX
|
||||
StrCpy $LaTeXName "MiKTeX 2.4"
|
||||
${endif}
|
||||
|
||||
${if} $LatexPath == "" ; check if MiKTeX is installed only for the current user
|
||||
; check for MiKTeX 2.5
|
||||
ReadRegStr $String HKCU "Environment" "Path"
|
||||
StrCpy $Search "miktex"
|
||||
Call LaTeXCheck ; function from LyXUtils.nsh
|
||||
${if} $LatexPath != ""
|
||||
StrCpy $MiKTeXUser "HKCU" ; needed later to for a message about MiKTeX's install folder write permissions, see InstallActions-*.nsh
|
||||
${endif}
|
||||
; check for MiKTeX 2.4
|
||||
StrCpy $String ""
|
||||
ReadRegStr $String HKCU "Software\MiK\MiKTeX\CurrentVersion\MiKTeX" "Install Root"
|
||||
${if} $String != ""
|
||||
StrCpy $MiKTeXVersion "2.4"
|
||||
StrCpy $LaTeXName "MiKTeX 2.4"
|
||||
${endif}
|
||||
${endif}
|
||||
|
||||
${if} $LatexPath != ""
|
||||
StrCpy $MiKTeXInstalled "yes"
|
||||
${if} $LaTeXName != "MiKTeX 2.4"
|
||||
StrCpy $LaTeXName "MiKTeX 2.5"
|
||||
${endif}
|
||||
${endif}
|
||||
|
||||
; test if TeXLive is installed
|
||||
; as described at TeXLives' homepage there should be an entry in the PATH
|
||||
${if} $LatexPath == ""
|
||||
ReadRegStr $String HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path"
|
||||
StrCpy $Search "TeXLive"
|
||||
Call LaTeXCheck ; function from LyXUtils.nsh
|
||||
${endif}
|
||||
; check for the current user Path variable (the case when it is a live CD/DVD)
|
||||
${if} $LatexPath == ""
|
||||
ReadRegStr $String HKCU "Environment" "Path"
|
||||
StrCpy $Search "texlive"
|
||||
StrCpy $2 "TeXLive"
|
||||
Call LaTeXCheck ; function from LyXUtils.nsh
|
||||
${endif}
|
||||
; check if the variable TLroot exists (the case when it is installed using the program "tlpmgui")
|
||||
${if} $LatexPath == ""
|
||||
ReadRegStr $String HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "TLroot"
|
||||
${if} $String == ""
|
||||
ReadRegStr $String HKCU "Environment" "TLroot" ; the case when installed without admin permissions
|
||||
${endif}
|
||||
StrCpy $LatexPath "$String\bin\win32"
|
||||
; check if the latex.exe exists in the $LatexPath folder
|
||||
!insertmacro FileCheck $5 "latex.exe" "$LatexPath" ; macro from LyXUtils.nsh
|
||||
${if} $5 == "False"
|
||||
StrCpy $LatexPath ""
|
||||
${endif}
|
||||
${endif}
|
||||
${if} $LatexPath != ""
|
||||
${andif} $LaTeXName != "MiKTeX 2.4"
|
||||
${andif} $LaTeXName != "MiKTeX 2.5"
|
||||
StrCpy $LaTeXName "TeXLive"
|
||||
${endif}
|
||||
|
||||
; test if Ghostscript is installed
|
||||
GSloop:
|
||||
EnumRegKey $1 HKLM "Software\AFPL Ghostscript" 0
|
||||
@ -166,7 +97,7 @@ Function MissingPrograms
|
||||
ReadRegStr $PSVPath HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\gsview32.exe" "Path"
|
||||
|
||||
; test if an editor with syntax-highlighting for LaTeX-files is installed (function in LyXUtils.nsh)
|
||||
Call EditorCheck ; function from LyXUtils.nsh
|
||||
Call EditorCheck ; function from Editors.nsh
|
||||
|
||||
; test if an image editor is installed (due to LyX's bug 2654 first check for GIMP)
|
||||
StrCpy $ImageEditorPath ""
|
||||
|
@ -1,3 +1,73 @@
|
||||
; Uninstaller
|
||||
|
||||
; this function is called at first after starting the uninstaller
|
||||
Function un.onInit
|
||||
|
||||
; Check that LyX is not currently running
|
||||
FindProcDLL::FindProc "lyx.exe"
|
||||
${if} $R0 == "1"
|
||||
MessageBox MB_OK|MB_ICONSTOP "$(UnInstallRunning)"
|
||||
Abort
|
||||
${endif}
|
||||
|
||||
; Ascertain whether the user has sufficient privileges to uninstall.
|
||||
SetShellVarContext current
|
||||
|
||||
ReadRegStr $0 HKCU "${PRODUCT_UNINST_KEY}" "RootKey"
|
||||
${if} $0 == ""
|
||||
ReadRegStr $0 HKLM "${PRODUCT_UNINST_KEY}" "RootKey"
|
||||
${if} $0 == ""
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "$(UnNotInRegistryLabel)"
|
||||
${endif}
|
||||
${endif}
|
||||
|
||||
; If the user does *not* have administrator privileges, abort
|
||||
StrCpy $Answer ""
|
||||
!insertmacro IsUserAdmin $Answer $UserName ; macro from LyXUtils.nsh
|
||||
${if} $Answer == "yes"
|
||||
SetShellVarContext all
|
||||
${else}
|
||||
MessageBox MB_OK|MB_ICONSTOP "$(UnNotAdminLabel)"
|
||||
Abort
|
||||
${endif}
|
||||
|
||||
; Macro to investigate name of LyX's preferences folders to be able remove them
|
||||
!insertmacro UnAppPreSuff $AppPre $AppSuff ; macro from LyXUtils.nsh
|
||||
|
||||
; test if Aspell was installed together with LyX
|
||||
ReadRegStr $0 HKLM "Software\Aspell" "OnlyWithLyX" ; special entry to test if it was installed with LyX
|
||||
${if} $0 == "Yes${PRODUCT_VERSION_SHORT}"
|
||||
SectionSetText 2 "Aspell" ; names the corersponding uninstaller section (has the index "2" as it is the third section in Uninstall.nsh)
|
||||
StrCpy $AspellInstallYes "Aspell"
|
||||
${else}
|
||||
SectionSetText 2 "" ; hides the corresponding uninstaller section
|
||||
${endif}
|
||||
|
||||
; test if MiKTeX was installed together with LyX
|
||||
ReadRegStr $0 HKLM "SOFTWARE\MiKTeX.org\MiKTeX" "OnlyWithLyX"
|
||||
${if} $0 == "Yes${PRODUCT_VERSION_SHORT}"
|
||||
SectionSetText 3 "MiKTeX" ; names the corersponding uninstaller section
|
||||
StrCpy $MiKTeXInstalled "MiKTeX"
|
||||
${else}
|
||||
SectionSetText 3 "" ; hides the corresponding uninstaller section
|
||||
${endif}
|
||||
|
||||
; ignore JabRef because this could only be installed with the complete installer version
|
||||
SectionSetText 4 "" ; hides the corresponding uninstaller section
|
||||
StrCpy $JabRefInstalled ""
|
||||
|
||||
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "$(UnReallyRemoveLabel)" IDYES +2
|
||||
Abort
|
||||
|
||||
FunctionEnd
|
||||
|
||||
|
||||
Function un.onUninstSuccess
|
||||
HideWindow
|
||||
MessageBox MB_ICONINFORMATION|MB_OK "$(UnRemoveSuccessLabel)"
|
||||
|
||||
FunctionEnd
|
||||
|
||||
; Uninstall sections
|
||||
|
||||
Section "un.LyX" un.SecUnProgramFiles
|
||||
|
Loading…
x
Reference in New Issue
Block a user