176 lines
7.9 KiB
Plaintext
Executable File
176 lines
7.9 KiB
Plaintext
Executable File
# Copyright 2018 Florian Bruhin (The Compiler) <mail@qutebrowser.org>
|
|
# encoding: iso-8859-1
|
|
#
|
|
# This file is part of qutebrowser.
|
|
#
|
|
# qutebrowser is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# qutebrowser is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with qutebrowser. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
# NSIS installer script. Uses NsisMultiUser plugin and contains portions of
|
|
# its demo code, copyright 2017 Richard Drizin, Alex Mitev.
|
|
|
|
# Includes modified graphics from the NSIS distribution.
|
|
|
|
# Requires:
|
|
# - NsisMultiUser plugin https://github.com/Drizin/NsisMultiUser
|
|
# - UAC plugin https://nsis.sourceforge.net/UAC_plug-in
|
|
# - StdUtils plugin https://nsis.sourceforge.io/StdUtils_plug-in
|
|
|
|
|
|
; Installer Attributes
|
|
Unicode true
|
|
XPStyle on
|
|
ManifestSupportedOS all
|
|
SetDatablockOptimize on
|
|
SetCompressor /SOLID /FINAL lzma
|
|
SetCompressorDictSize 32
|
|
CRCCheck on
|
|
AllowSkipFiles off
|
|
SetOverwrite on
|
|
ShowInstDetails hide
|
|
ShowUninstDetails hide
|
|
|
|
!addplugindir /x86-unicode ".\plugins\x86-unicode"
|
|
!addincludedir ".\include"
|
|
|
|
!include MUI2.nsh
|
|
!include NsisMultiUser.nsh
|
|
!include StdUtils.nsh
|
|
|
|
; Installer defines
|
|
!define PRODUCT_NAME "qutebrowser" ; name of the application as displayed to the user
|
|
!define PROGEXE "qutebrowser.exe" ; main application filename
|
|
!define COMPANY_NAME "qutebrowser.org" ; company, used for registry tree hierarchy
|
|
!define COPYRIGHT "© 2014-2018 Florian Bruhin (The Compiler)"
|
|
!define TM "qutebrowser is free software under the GNU General Public License"
|
|
!define URL_ABOUT "https://qutebrowser.org/"
|
|
!define URL_UPDATE "https://qutebrowser.org/doc/install.html"
|
|
!define HELP_LINK "https://qutebrowser.org/doc/help/"
|
|
!define CONTACT "mail@qutebrowser.org"
|
|
!define COMMENTS "A keyboard-driven, vim-like browser based on PyQt5."
|
|
!define LANGID "1033" ; U.S. English
|
|
!define MIN_WIN_VER "XP"
|
|
!define SETUP_MUTEX "${PRODUCT_NAME} Setup Mutex" ; do not change this between program versions!
|
|
!define APP_MUTEX "${PRODUCT_NAME} App Mutex" ; do not change this between program versions!
|
|
!define REG_UN "Software\Microsoft\Windows\CurrentVersion\Uninstall"
|
|
!define SETTINGS_REG_KEY "${REG_UN}\${PRODUCT_NAME}"
|
|
!define CONFIG_DIR "$APPDATA\${PRODUCT_NAME}"
|
|
!define CACHE_DIR "$LOCALAPPDATA\${PRODUCT_NAME}"
|
|
!define LICENSE_FILE ".\..\..\LICENSE"
|
|
!define MUI_ICON ".\graphics\install.ico"
|
|
!define MUI_UNICON ".\graphics\uninstall.ico"
|
|
!define MUI_WELCOMEFINISHPAGE_BITMAP ".\graphics\wizard.bmp"
|
|
; The old MSI installers had a different Product Code on every release by mistake
|
|
!define MSI_COUNT 24
|
|
!define MSI32_010 "{50691080-E51F-4F1A-AEEA-ACA8C64DB98B}"
|
|
!define MSI32_011 "{B6FE0FC1-3754-4FF6-A5E5-A305B1EDC8CB}"
|
|
!define MSI32_012 "{B1341894-8D82-40C6-B0D0-A5ECEFB997BE}"
|
|
!define MSI32_013 "{22EEF3C7-4D72-4F7E-B35B-1F2A22B5E64A}"
|
|
!define MSI32_014 "{29C7D770-EBFE-465A-8354-C6A4EA3D8BAF}"
|
|
!define MSI32_020 "{061B339B-ABBC-4D89-BE0D-A843FEA48DA7}"
|
|
!define MSI32_021 "{0228BB7C-8D7C-4763-A1C6-AAE0B1902AF9}"
|
|
!define MSI32_030 "{F514C234-DB31-4158-9D96-53412B431F81}"
|
|
!define MSI32_040 "{895E71DC-41D6-4FC3-A0F8-2EC5FE19ACB8}"
|
|
!define MSI32_041 "{66F9576D-0DB5-475D-9C25-E0511580C897}"
|
|
!define MSI32_050 "{EDB54F4D-7A00-47AE-9808-E59FF5E79136}"
|
|
!define MSI32_051 "{EEF03487-BC9F-4EA4-A5A1-E9CF5F9E1FB6}"
|
|
!define MSI32_060 "{F9FECA24-95DA-4E46-83E3-A805E5B1CE06}"
|
|
!define MSI32_061 "{F1A0F4B9-CCA3-4B07-8ADB-16BC81530440}"
|
|
!define MSI32_062 "{43F5E4C5-FF96-4676-B027-5AD63D3871AB}"
|
|
!define MSI32_070 "{558FF39C-CA5F-4E2A-87D2-90963FCBC424}"
|
|
!define MSI32_080 "{9DF540E2-4F8C-46A4-A27F-43BD0558CC42}"
|
|
!define MSI32_081 "{EA0FB6B1-83AF-4F16-8B89-645B587D90FD}"
|
|
!define MSI32_082 "{F849A0B2-301C-435D-9CC0-9651938FCA6F}"
|
|
!define MSI32_084 "{9331D947-AC86-4542-A755-A833429C6E69}"
|
|
!define MSI32_090 "{AD967987-7777-4095-A03A-3F2EE8968D9E}"
|
|
!define MSI32_091 "{87F05B8A-2238-4D86-82BB-EC8B4CE97E78}"
|
|
!define MSI32_100 "{07B85A0B-D025-4B4B-B46D-BC9B02912835}"
|
|
!define MSI32_101 "{9F05D9E4-D049-445E-A489-A7DC0256C774}"
|
|
!define MSI64_010 "{A8191862-28A7-4BB0-9532-49AD5CFFFE66}"
|
|
!define MSI64_011 "{1C476CC1-A171-48B7-A883-0F00F4D301D3}"
|
|
!define MSI64_012 "{ADA727AC-9DDD-4F03-93B7-BAFE950757BE}"
|
|
!define MSI64_013 "{64949BFF-287A-4C16-A5F3-84A38A6703F1}"
|
|
!define MSI64_014 "{63F22761-D886-4FDD-93F4-7543265E9FF7}"
|
|
!define MSI64_020 "{80BE09C6-347F-4121-98D3-1E4363C3CE6B}"
|
|
!define MSI64_021 "{2D86F472-DD52-40A1-8FE0-90550D674554}"
|
|
!define MSI64_030 "{53DED10D-C609-406F-959E-C1B52A518561}"
|
|
!define MSI64_040 "{B9535FDF-7A9E-4AED-BA1E-BEE5FFCBC311}"
|
|
!define MSI64_041 "{DAE1309A-FE7D-46E5-B488-B437CC509DF9}"
|
|
!define MSI64_050 "{DC9ECE64-F8E5-4BCB-BCFF-BE4ADCEF2655}"
|
|
!define MSI64_051 "{26AED286-23BD-49FF-BD9C-7C0DC4467BD7}"
|
|
!define MSI64_060 "{3035744D-2390-4D5E-ACAD-905E72B9EBEC}"
|
|
!define MSI64_061 "{0223F48F-93A8-4985-BCFF-328E5A9D97D5}"
|
|
!define MSI64_062 "{95835A82-A9C2-4924-87DF-E03D910E3400}"
|
|
!define MSI64_070 "{61D1AC75-7ECD-45FF-B42B-454C056DB178}"
|
|
!define MSI64_080 "{92D1C65C-1338-4B11-B515-6BD5B1FF92D9}"
|
|
!define MSI64_081 "{AF7AC009-FB82-48F6-9439-6E46AEB60DBF}"
|
|
!define MSI64_082 "{CC316D68-5742-4C2B-98EC-4ADF06A19B84}"
|
|
!define MSI64_084 "{633F41F9-FE9B-42D1-9CC4-718CBD01EE11}"
|
|
!define MSI64_090 "{5E3E7404-D6D7-4FF1-846A-F9BBFE2F841A}"
|
|
!define MSI64_091 "{3190D3F6-7B24-47DC-88E7-99280905FACF}"
|
|
!define MSI64_100 "{7AA6530C-3812-4DC5-9A30-E762BBDDF55E}"
|
|
!define MSI64_101 "{B0104B85-8229-49FB-8606-275A90ACC024}"
|
|
|
|
; Set PLATFORM - default x64
|
|
!ifdef X86
|
|
!define PLATFORM "Win32"
|
|
!define ARCH "x86"
|
|
!define SUFFIX "win32"
|
|
!else
|
|
!define PLATFORM "Win64"
|
|
!define ARCH "x64"
|
|
!define SUFFIX "amd64"
|
|
!endif
|
|
|
|
; If not defined, get VERSION from PROGEXE. Set DIST_DIR accordingly.
|
|
!ifndef VERSION
|
|
!define /ifndef DIST_DIR ".\..\..\dist\${PRODUCT_NAME}-${ARCH}"
|
|
!getdllversion "${DIST_DIR}\${PROGEXE}" expv_
|
|
!define VERSION "${expv_1}.${expv_2}.${expv_3}"
|
|
!else
|
|
!define /ifndef DIST_DIR ".\..\..\dist\${PRODUCT_NAME}-${VERSION}-${ARCH}"
|
|
!endif
|
|
|
|
; Pack the exe header with upx if UPX is defined.
|
|
!ifdef UPX
|
|
!packhdr "$%TEMP%\exehead.tmp" '"upx" "--ultra-brute" "$%TEMP%\exehead.tmp"'
|
|
!endif
|
|
|
|
; Version Information
|
|
VIFileVersion "${VERSION}.0"
|
|
VIProductVersion "${VERSION}.0"
|
|
VIAddVersionKey /LANG=${LANGID} "Comments" "Built with NSIS ${NSIS_VERSION}"
|
|
VIAddVersionKey /LANG=${LANGID} "CompanyName" "${COMPANY_NAME}"
|
|
VIAddVersionKey /LANG=${LANGID} "FileVersion" "${VERSION}"
|
|
VIAddVersionKey /LANG=${LANGID} "InternalName" "${PRODUCT_NAME}-${VERSION}-${SUFFIX}"
|
|
VIAddVersionKey /LANG=${LANGID} "LegalTrademarks" "${TM}"
|
|
VIAddVersionKey /LANG=${LANGID} "LegalCopyright" "${COPYRIGHT}"
|
|
VIAddVersionKey /LANG=${LANGID} "FileDescription" "${PRODUCT_NAME} ${ARCH} Setup"
|
|
VIAddVersionKey /LANG=${LANGID} "OriginalFilename" "${PRODUCT_NAME}-${VERSION}-${SUFFIX}.exe"
|
|
VIAddVersionKey /LANG=${LANGID} "ProductName" "${PRODUCT_NAME}"
|
|
VIAddVersionKey /LANG=${LANGID} "ProductVersion" "${VERSION}"
|
|
|
|
; Final Attributes
|
|
Name "${PRODUCT_NAME}"
|
|
BrandingText "${PRODUCT_NAME} v${VERSION} Installer (${ARCH})"
|
|
OutFile "${DIST_DIR}\..\${PRODUCT_NAME}-${VERSION}-${SUFFIX}.exe"
|
|
|
|
; installer/uninstaller pages and actions
|
|
!include "Utils.nsh"
|
|
!include "install_pages.nsh"
|
|
; remove next line if you're using signing after the uninstaller is extracted from the initially compiled setup
|
|
!include "uninstall_pages.nsh"
|
|
!include "install.nsh"
|
|
; remove next line if you're using signing after the uninstaller is extracted from the initially compiled setup
|
|
!include "uninstall.nsh"
|