]> git.lyx.org Git - lyx.git/blobdiff - development/Win32/packaging/installer/LyXWinInstaller/LyXInstaller-complete.nsi
Changed comment character from ';' to '#*
[lyx.git] / development / Win32 / packaging / installer / LyXWinInstaller / LyXInstaller-complete.nsi
index ff499f0670e6138bbfa55dc63472b31be777679a..d6cf333d6be66549f8f742d8a0505063a3310fc8 100644 (file)
@@ -1,79 +1,94 @@
-; Lyx for Windows, NSIS v2 series installer script
+# Lyx for Windows, NSIS v2 series installer script
 
-; File LyXInstaller-complete.nsi
-; This file is part of LyX, the document processor.
-; http://www.lyx.org/
-; Licence details can be found in the file COPYING or copy at
-; http://www.lyx.org/about/license.php3
+# File LyXInstaller-complete.nsi
+# This file is part of LyX, the document processor.
+# http://www.lyx.org/
+# Licence details can be found in the file COPYING or copy at
+# http://www.lyx.org/about/license.php3
 
-; Author Uwe Stöhr based on the work of Angus Leeming and Joost Verburg
-; Full author contact details are available in file CREDITS or copy at
-; http://www.lyx.org/about/credits.php
+# Author Uwe Stöhr based on the work of Angus Leeming and Joost Verburg
+# Full author contact details are available in file CREDITS or copy at
+# http://www.lyx.org/about/credits.php
 
-; This script requires NSIS 2.25 and newer
-; http://nsis.sourceforge.net/
-;--------------------------------
+# This script requires NSIS 2.25 and newer
+# http://nsis.sourceforge.net/
+#--------------------------------
 
-; Do a Cyclic Redundancy Check to make sure the installer
-; was not corrupted by the download.
+# Do a Cyclic Redundancy Check to make sure the installer
+# was not corrupted by the download.
 CRCCheck force
 
-; Make the installer as small as possible.
-;SetCompressor lzma
+# Make the installer as small as possible.
+#SetCompressor lzma
 
-;--------------------------------
-; You should need to change only these macros...
+#--------------------------------
+# You should need to change only these macros...
 
 !define INSTALLER_VERSION "Complete"
 !define INSTALLER2_VERSION "Small"
 !define INSTALLER3_VERSION "Update"
 
-; load the settings
+# load the settings
 !include "Settings.nsh"
 
-!define GSviewInstall "external\gsv48w32.exe"
-!define JabRefInstall "external\JabRef-2.2-Setup.exe"
-!define JabRefVersion "JabRef 2.2"
-!define MiKTeXDeliveredVersion "MiKTeX 2.5"
-!define MiKTeXInstall "$INSTDIR\external\basic-miktex-2.5.2580.exe"
-!define PRODUCT_VERSION_OLD "none" ; only here to avoid warning message - variable only used in Update installer version
-
-;--------------------------------
-; variables only used in this installer version
+#--------------------------------
+# variables only used in this installer version
 
 Var DelPythonFiles
 Var GhostscriptPath
 Var AiksaurusPath
 Var AspellPath
-Var AspellInstallYes
-Var AspellBaseReg
-Var AspellMessage
 Var Acrobat
 Var PSVPath
 Var EditorPath
 Var ImageEditorPath
 Var BibTeXEditorPath
-Var JabRefInstalled
-Var LangName
-Var LangNameSys
-Var LangCode
-Var LangCodeSys
 Var LangEncoding
 Var LangSysEncoding
-Var DictCode
 Var MissedProg
 Var LaTeXName
 Var MiKTeXVersion
-Var MiKTeXInstalled
 Var MiKTeXUser
 Var MiKTeXPath
 Var InstallGSview
 Var InstallJabRef
+# Variables used by all installer versions
+Var AspellInstallYes
+Var AspellBaseReg
+Var AspellMessage
+Var ImageMagickPath
+Var JabRefInstalled
+Var JabRefVersionVar
+Var LatexPath
+Var MiKTeXInstalled
+Var MiKTeXVersionVar
+Var PythonPath
+Var Answer
+Var AppPre
+Var AppSuff
+Var AppPath
+Var CreateDesktopIcon
 Var CreateFileAssociations
+Var DictCode
+Var FileName
+Var LangCode
+Var LangCodeSys
+Var LangName
+Var LangNameSys
+Var NewString
+Var OldString
+Var PathPrefix
+Var Pointer
+Var ProductRootKey
 Var RunNumber
-
-;--------------------------------
-; load some NSIS libraries
+Var StartmenuFolder
+Var String
+Var Search
+Var UserList
+Var UserName
+
+#--------------------------------
+# load some NSIS libraries
 !include "MUI.nsh"
 !include "LogicLib.nsh"
 !include "FileFunc.nsh"
@@ -83,32 +98,27 @@ Var RunNumber
 !include "WordFunc.nsh"
 !insertmacro WordReplace
 
-; Set of various macros and functions
+# Set of various macros and functions
 !include "LyXUtils.nsh"
 
-; Functions to check and configure the LaTeX-system
+# Functions to check and configure the LaTeX-system
 !include "LaTeX.nsh"
 
-; Function to check if needed programs are missing or not
+# Function to check if needed programs are missing or not
 !include "MissingPrograms.nsh"
 
-; Functions for page to set installer language
-; and LyX's menu language
+# Functions for page to set installer language
+# and LyX's menu language
 !include "LanguageSettings.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
+# Function to configure LyX
 !include "ConfigLyX.nsh"
 
-; Function for page to install Aspell dictionaries
+# Function for page to install Aspell dictionaries
 !include "Aspell.nsh"
 
-;--------------------------------
-; Remember the installer language
+#--------------------------------
+# Remember the installer language
 !define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
 !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
 !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
@@ -120,50 +130,50 @@ Var RunNumber
 !define MUI_UNICON "${PRODUCT_DIR}\icons\lyx.ico"
 !define MUI_WELCOMEFINISHPAGE_BITMAP "${VERSION_BITMAP}"
 
-; Welcome page
+# Welcome page
 !define MUI_WELCOMEPAGE_TEXT "$(WelcomePageText)"
 !insertmacro MUI_PAGE_WELCOME
 
-; Show the license.
+# Show the license.
 !insertmacro MUI_PAGE_LICENSE "${PRODUCT_LICENSE_FILE}"
 
-; Specify the installation directory.
+# Specify the installation directory.
 !insertmacro MUI_PAGE_DIRECTORY
 
-; Specify LyX's menu language.
+# Specify LyX's menu language.
 Page custom SelectMenuLanguage SelectMenuLanguage_LeaveFunction
 
-; Define which components to install.
+# Define which components to install.
 !insertmacro MUI_PAGE_COMPONENTS
 
-; Specify where to install program shortcuts.
+# Specify where to install program shortcuts.
 !define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_ROOT_KEY}"
 !define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
 !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
 !define MUI_STARTMENUPAGE_DEFAULTFOLDER "LyX ${PRODUCT_VERSION}"
 !insertmacro MUI_PAGE_STARTMENU ${PRODUCT_NAME} $StartmenuFolder
 
-; Check for needed programs
+# Check for needed programs
 Page custom MissingProgramsPage MissingProgramsPage_LeaveFunction
 
-; Watch the components being installed.
+# Watch the components being installed.
 !insertmacro MUI_PAGE_INSTFILES
 
-; Finish page
+# Finish page
 !define MUI_FINISHPAGE_RUN 
 !define MUI_FINISHPAGE_TEXT "$(FinishPageMessage)"
 !define MUI_FINISHPAGE_RUN_TEXT "$(FinishPageRun)"
 !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchProduct"
 !insertmacro MUI_PAGE_FINISH
 
-; The uninstaller.
+# The uninstaller.
 !insertmacro MUI_UNPAGE_COMPONENTS
 !insertmacro MUI_UNPAGE_INSTFILES
 
-;--------------------------------
-; Languages
+#--------------------------------
+# Languages
 
-!insertmacro MUI_LANGUAGE "English" ; first language is the default language
+!insertmacro MUI_LANGUAGE "English" # first language is the default language
 !insertmacro MUI_LANGUAGE "Danish"
 !insertmacro MUI_LANGUAGE "Dutch"
 !insertmacro MUI_LANGUAGE "French"
@@ -197,16 +207,16 @@ Page custom MissingProgramsPage MissingProgramsPage_LeaveFunction
 
 LicenseData "$(LyXLicenseData)"
 
-;--------------------------------
-; Reserve Files
+#--------------------------------
+# Reserve Files
 
-; These files are inserted before other files in the data block
+# These files are inserted before other files in the data block
 !insertmacro MUI_RESERVEFILE_LANGDLL
 ReserveFile "io_ui_language.ini"
 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
 
-;--------------------------------
-; Installer sections
+#--------------------------------
+# Installer sections
 
 Section "!${PRODUCT_NAME}" SecCore
   SectionIn RO
@@ -230,7 +240,7 @@ Section /o "$(SecInstJabRefTitle)" SecInstJabRef
  StrCpy $InstallJabRef "true"
 SectionEnd
 
-; Section descriptions
+# Section descriptions
 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
 !insertmacro MUI_DESCRIPTION_TEXT ${SecCore} "$(SecCoreDescription)"
 !insertmacro MUI_DESCRIPTION_TEXT ${SecAllUsers} "$(SecAllUsersDescription)"
@@ -240,17 +250,17 @@ SectionEnd
 !insertmacro MUI_DESCRIPTION_TEXT ${SecInstJabRef} "$(SecInstJabRefDescription)"
 !insertmacro MUI_FUNCTION_DESCRIPTION_END
 
-; the installation section
+# the installation section
 !include "InstallActions-complete.nsh"
 
-;--------------------------------
-; This hook function is called internally by NSIS on installer startup
+#--------------------------------
+# This hook function is called internally by NSIS on installer startup
 Function .onInit
 
-  ; set the installer language to the Windows locale language
+  # set the installer language to the Windows locale language
   System::Call "kernel32::GetUserDefaultLangID()i.a"
 
-  ; check that the installer is not currently running
+  # check that the installer is not currently running
   System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${INSTALLER_EXE}.Instance") i .r1 ?e'
   Pop $R0
   ${if} $R0 != "0"
@@ -263,26 +273,26 @@ Function .onInit
    Abort
   ${endif}
 
-  ; check if LyX is already installed
+  # check if LyX is already installed
   ReadRegStr $0 HKLM "${PRODUCT_UNINST_KEY}" "Publisher"
   ${if} $0 != ""
    MessageBox MB_OK|MB_ICONSTOP "$(StillInstalled)"
    Abort
   ${endif}
 
-  ; default settings
-  ; these can be reset to "all" in section SecAllUsers
+  # default settings
+  # these can be reset to "all" in section SecAllUsers
   SetShellVarContext current
   StrCpy $ProductRootKey "HKCU"
 
-  ; this can be reset to "true" in section SecDesktop
+  # this can be reset to "true" in section SecDesktop
   StrCpy $CreateDesktopIcon "false"
   StrCpy $CreateFileAssociations "false"
 
-  ; if the user does *not* have administrator privileges, abort
+  # if the user does *not* have administrator privileges, abort
   StrCpy $Answer ""
   StrCpy $UserName ""
-  !insertmacro IsUserAdmin $Answer $UserName ; macro from LyXUtils.nsh
+  !insertmacro IsUserAdmin $Answer $UserName # macro from LyXUtils.nsh
   ${if} $Answer == "yes"
     !define ENABLE 0x00000001
     SectionGetFlags ${SecAllUsers} $0
@@ -294,32 +304,32 @@ Function .onInit
     Abort
   ${endif}
 
-  ; check the LaTeX-system
-  Call LaTeXActions ; Function from LaTeX.nsh
+  # check the LaTeX-system
+  Call LaTeXActions # Function from LaTeX.nsh
 
-  ; check which programs are installed or not
-  Call MissingPrograms ; function from MissingPrograms.nsh
+  # check which programs are installed or not
+  Call MissingPrograms # function from MissingPrograms.nsh
 
-  ; don't let the installer sections appear when the programs are already installed
+  # don't let the installer sections appear when the programs are already installed
   ${if} $PSVPath != ""
-   SectionSetText 4 "" ; hides the corresponding uninstaller section, ${SecInstGSview}
+   SectionSetText 4 "" # hides the corresponding uninstaller section, ${SecInstGSview}
   ${endif}
   ${if} $BibTeXEditorPath != ""
-   SectionSetText 5 "" ; hides the corresponding uninstaller section, ${SecInstJabRef}
+   SectionSetText 5 "" # hides the corresponding uninstaller section, ${SecInstJabRef}
   ${endif}
 
   ClearErrors
 FunctionEnd
 
-;--------------------------------
+#--------------------------------
 
 Function LaunchProduct
   Exec ${PRODUCT_BAT}
 FunctionEnd
 
-;--------------------------------
-; The Uninstaller
+#--------------------------------
+# The Uninstaller
 
 !include "Uninstall.nsh"
 
-; eof
+# eof