-; 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"
-;--------------------------------
-; variables only used in this installer version
+#--------------------------------
+# variables only used in this installer version
Var DelPythonFiles
Var GhostscriptPath
Var MiKTeXPath
Var InstallGSview
Var InstallJabRef
-; Variables used by all installer versions
+# Variables used by all installer versions
Var AspellInstallYes
Var AspellBaseReg
Var AspellMessage
Var UserList
Var UserName
-;--------------------------------
-; load some NSIS libraries
+#--------------------------------
+# load some NSIS libraries
!include "MUI.nsh"
!include "LogicLib.nsh"
!include "FileFunc.nsh"
!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"
-; 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"
!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"
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
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)"
!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"
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
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