]> git.lyx.org Git - lyx.git/blobdiff - development/Win32/packaging/installer/include/declarations.nsh
detect JabRef and put in path_prefix (for new menu item to edit BibTeX database)
[lyx.git] / development / Win32 / packaging / installer / include / declarations.nsh
index 85d887600b159d06556741e1d2abf00a55aa71ef..428141c8a2625283cd1563e1212cc858686b51d6 100644 (file)
-/*\r
-\r
-Declarations\r
-\r
-*/\r
-\r
-!include "settings.user.nsh"\r
-!include "settings.nsh"\r
-\r
-;--------------------------------\r
-;Defines based on settings\r
-\r
-!ifndef SETUPTYPE_BUNDLE\r
-  !define SETUPTYPE_NAME DOWNLOAD\r
-!else\r
-  !define SETUPTYPE_NAME INSTALL\r
-!endif\r
-\r
-;--------------------------------\r
-;Standard header files\r
-\r
-!include "MUI.nsh"\r
-!include "LogicLib.nsh"\r
-!include "StrFunc.nsh"\r
-!include "FileFunc.nsh"\r
-!include "WordFunc.nsh"\r
-!include "Sections.nsh"\r
-!include "WinVer.nsh"\r
-\r
-;--------------------------------\r
-;Windows constants\r
-\r
-!define SHCNE_ASSOCCHANGED 0x08000000\r
-!define SHCNF_IDLIST 0x0000\r
-\r
-;--------------------------------\r
-;Reserve Files\r
-;These files should come first in the compressed data (for faster GUI)\r
-\r
-ReserveFile "${NSISDIR}\Plugins\UserInfo.dll"\r
-ReserveFile "dialogs\user.ini"\r
-ReserveFile "dialogs\external.ini"\r
-ReserveFile "dialogs\viewer.ini"\r
-ReserveFile "dialogs\langselect.ini"\r
-!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS\r
-ReserveFile "${FILES_DVIPOST_PKG}\dvipost.sty"\r
-\r
-;--------------------------------\r
-;Variables\r
-\r
-Var AdminOrPowerUser\r
-Var CurrentUserInstall\r
-\r
-Var PathLaTeX\r
-Var PathImageMagick\r
-Var PathGhostscript\r
-Var PathViewer\r
-\r
-Var SetupLaTeX\r
-Var SetupImageMagick\r
-Var SetupGhostscript\r
-Var SetupViewer\r
-\r
-Var SizeLaTeX\r
-Var SizeImageMagick\r
-Var SizeGhostscript\r
-Var SizeViewer\r
-\r
-Var LangName\r
-Var LangISOCode\r
-\r
-Var AspellHive\r
-  \r
-;--------------------------------\r
-;Include standard functions\r
-\r
-!insertmacro FUNCTION_STRING_StrStr\r
-\r
-!insertmacro GetParent\r
-!insertmacro VersionCompare\r
-!insertmacro WordFind2X\r
-\r
-;--------------------------------\r
-;Macros  \r
-\r
-!macro ReDef NAME VALUE\r
-\r
-  ;Redefine a pre-processor definition\r
-\r
-  !ifdef `${NAME}`\r
-    !undef `${NAME}`\r
-  !endif\r
-\r
-  !define `${NAME}` `${VALUE}`\r
-\r
-!macroend\r
-  \r
-!macro CallFunc FUNCTION INPUT VAROUT\r
-  \r
-  ;Calls a function that modifies a single value on the stack\r
-\r
-  Push ${INPUT}\r
-    Call ${FUNCTION}\r
-  Pop ${VAROUT}\r
-\r
-!macroend\r
-\r
-;--------------------------------\r
-;LyX installer header files  \r
-\r
-!include "include\init.nsh"\r
-!include "include\windows.nsh"\r
-!include "include\lang.nsh"\r
-!include "include\gui.nsh"\r
-!include "include\detection.nsh"\r
-!include "include\filelists.nsh"\r
+/*
+
+declaration.nsh
+
+Configuration of LyX installer
+
+*/
+
+SetCompressor /SOLID lzma
+
+#--------------------------------
+# Location of LyX files and dependencies
+
+!ifdef FilesLyX
+  !define FILES_LYX "${FilesLyX}"
+!else
+  !define FILES_LYX "..\..\..\..\build-msvc"
+!endif
+
+!ifdef FilesDeps
+  !define FILES_DEPS "${FilesDeps}"
+!else
+  !define FILES_DEPS "..\..\..\..\lyx-windows-deps-msvc2008"
+!endif
+
+!ifdef FilesBundle
+  !define FILES_BUNDLE "${FilesBundle}"
+!else
+  !define FILES_BUNDLE "..\..\..\..\lyx-windows-bundle-deps"
+!endif
+
+#--------------------------------
+# File locations
+
+!define FILES_LICENSE "license.rtf"
+
+!define FILES_ICONS "..\icons"
+!define FILES_LAUNCHER "..\..\launcher"
+!define FILES_PDFVIEW "..\..\pdfview"
+
+!define FILES_MSVC "$%SystemRoot%\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375"
+!define FILES_PYTHON "${FILES_DEPS}\python"
+!define FILES_IMAGEMAGICK "${FILES_DEPS}\imagemagick"
+!define FILES_GHOSTSCRIPT "${FILES_DEPS}\ghostscript"
+!define FILES_NETPBM "${FILES_DEPS}\netpbm"
+!define FILES_DTL "${FILES_DEPS}\dtl"
+!define FILES_AIKSAURUS "${FILES_DEPS}\aiksaurus\"
+!define FILES_DVIPOST "${FILES_DEPS}\dvipost"
+!define FILES_DVIPOST_PKG "${FILES_DVIPOST}"
+!define FILES_PDFTOOLS "${FILES_DEPS}\pdftools"
+!define FILES_METAFILE2EPS "${FILES_DEPS}\metafile2eps"
+!define FILES_PSPRINTER "${FILES_DEPS}\metafile2eps\PSPrinter"
+
+!define FILES_QT "${FILES_DEPS}\qt-4"
+!define FILES_ASPELLDATA "${FILES_DEPS}\aspell"
+
+!define FILES_NSISPLUGINS "${FILES_DEPS}\nsis"
+
+#--------------------------------
+# Locations of components to download
+
+!define MIRROR_SF1 "http://superb-west.dl.sourceforge.net/sourceforge"
+!define MIRROR_SF2 "http://mesh.dl.sourceforge.net/sourceforge"
+
+!macro SourceForgeMirror ID FILENAME
+  !define DOWNLOAD_${ID} "${MIRROR_SF1}/${FILENAME}"
+  !define DOWNLOADALT_${ID} "${MIRROR_SF2}/${FILENAME}"
+!macroend
+
+!insertmacro SourceForgeMirror LATEX "miktex/${SETUPFILE_LATEX}"
+!insertmacro SourceForgeMirror IMAGEMAGICK "imagemagick/${SETUPFILE_IMAGEMAGICK}"
+!insertmacro SourceForgeMirror GHOSTSCRIPT "ghostscript/${SETUPFILE_GHOSTSCRIPT}"
+
+!define DOWNLOAD_ASPELLDICTS "ftp://ftp.lyx.org/pub/lyx/contrib/aspell6-windows"
+!define DOWNLOADALT_ASPELLDICTS "http://www.lyx.org/~bpeng/aspell6-windows"
+
+#--------------------------------
+# Locations of setup files for components (for bundled setup)
+
+!define INSTALL_LATEX "${SETUPFILE_LATEX}"
+!define INSTALL_IMAGEMAGICK "${SETUPFILE_IMAGEMAGICK}"
+!define INSTALL_GHOSTSCRIPT "${SETUPFILE_GHOSTSCRIPT}"
+
+#--------------------------------
+# Names and version
+
+!define APP_NAME "LyX"
+!define /date APP_VERSION "${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}svn %Y%m%d"
+!define APP_VERSION_NUMBER "${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}.${APP_VERSION_REVISION}.${APP_VERSION_BUILD}"
+!define APP_SERIES_NAME "${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}"
+!define APP_SERIES_KEY "${APP_VERSION_MAJOR}${APP_VERSION_MINOR}"
+!define APP_DIR "${APP_NAME}${APP_SERIES_KEY}"
+!define APP_DIR_USERDATA "${APP_NAME}${APP_SERIES_KEY}"
+!define APP_INFO "${APP_NAME} - The Document Processor"
+!define APP_COPYRIGHT "LyX is Copyright © 1995 by Matthias Ettrich, 1995-2008 LyX Team"
+
+!define APP_RUN "bin\LyXLauncher.exe"
+
+!define APP_REGKEY "Software\${APP_NAME}${APP_SERIES_KEY}"
+!define APP_REGKEY_SETUP "Software\${APP_NAME}${APP_SERIES_KEY}\Setup"
+!define APP_REGKEY_SETTINGS "Software\${APP_NAME}${APP_SERIES_KEY}\Settings"
+
+!define APP_REGNAME_DOC "LyX.Document"
+
+!define APP_EXT ".lyx"
+!define APP_MIME_TYPE "application/lyx"
+
+#--------------------------------
+# Setup settings
+
+# Output file name can be configured using command line paramaters like
+# /DExeFile=/path/to/installer
+
+!ifndef SETUPTYPE
+  !define SETUPTYPE STANDARD
+!endif
+
+!if ${SETUPTYPE} == MINIMAL
+
+  !define SETUP_EXE ${MinimalExeFile}
+!else if ${SETUPTYPE} == STANDARD
+
+  !define SETUP_EXE ${ExeFile}
+  !define BUNDLE_IMAGEMAGICK
+  !define BUNDLE_GHOSTSCRIPT
+
+!else if ${SETUPTYPE} == BUNDLE
+
+  !define SETUP_EXE ${BundleExeFile}
+  !define BUNDLE_IMAGEMAGICK
+  !define BUNDLE_GHOSTSCRIPT
+  !define BUNDLESETUP_LATEX
+
+!endif
+
+!define SETUP_ICON "${FILES_ICONS}\lyx.ico"
+!define SETUP_HEADERIMAGE "graphics\header.bmp"
+!define SETUP_WIZARDIMAGE "graphics\wizard.bmp"
+!define SETUP_UNINSTALLER "Uninstall-${APP_NAME}.exe"
+!define SETUP_UNINSTALLER_KEY "${APP_NAME}"
+
+#--------------------------------
+# Names of binaries to identify compontents
+
+!define BIN_LATEX "tex.exe"
+!define BIN_IMAGEMAGICK "convert.exe"
+!define BIN_GHOSTSCRIPT "gswin32c.exe"
+!define BIN_BIBTEXEDITOR "JabRef.exe"
+
+#--------------------------------
+# Custom NSIS plug-ins
+
+!addplugindir "${FILES_NSISPLUGINS}"