mirror of
https://invent.kde.org/network/falkon.git
synced 2024-12-19 18:26:34 +01:00
CI for Windows and macOS (#2245)
This commit is contained in:
parent
f14668330e
commit
cedf1b6b24
75
.travis.yml
75
.travis.yml
@ -3,21 +3,82 @@ dist: trusty
|
||||
language: cpp
|
||||
cache: ccache
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8.2
|
||||
|
||||
env:
|
||||
- QT=qt58
|
||||
|
||||
before_install:
|
||||
- export DISPLAY=:99.0
|
||||
- sh -e /etc/init.d/xvfb start
|
||||
- export QZ_VER=2.1.99
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
||||
export DISPLAY=:99.0;
|
||||
sh -e /etc/init.d/xvfb start;
|
||||
fi
|
||||
|
||||
install:
|
||||
- sudo apt-get -qq update
|
||||
- sudo apt-get -qq install libssl-dev pkg-config libxcb-util0-dev
|
||||
- if [[ "$QT" == "qt58" ]]; then sudo apt-add-repository -y ppa:beineri/opt-qt58-trusty; sudo apt-get update -qq; sudo apt-get install -qq qt58tools qt58script qt58webengine qt58webchannel qt58declarative qt58x11extras; fi
|
||||
- export QZ_DIR=$PWD
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
||||
sudo apt-get -qq update;
|
||||
sudo apt-get -qq install libssl-dev pkg-config libxcb-util0-dev;
|
||||
if [[ "$QT" == "qt58" ]]; then
|
||||
sudo apt-add-repository -y ppa:beineri/opt-qt58-trusty;
|
||||
sudo apt-get update -qq;
|
||||
sudo apt-get install -qq qt58tools qt58script qt58webengine qt58webchannel qt58declarative qt58x11extras;
|
||||
fi
|
||||
fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
if [[ "$QT" == "qt58" ]]; then
|
||||
QT_VER=5.8;
|
||||
export QTDIR="$HOME/Qt/$QT_VER/clang_64";
|
||||
echo "Calling brew update...";
|
||||
brew update;
|
||||
brew outdated openssl || brew upgrade openssl;
|
||||
QT_INSTALLER_FILE_NAME=qt-opensource-mac-x64-clang-$QT_VER.0;
|
||||
wget "http://download.qt.io/official_releases/qt/$QT_VER/$QT_VER.0/$QT_INSTALLER_FILE_NAME.dmg";
|
||||
hdiutil attach -noverify $QT_INSTALLER_FILE_NAME.dmg;
|
||||
QT_INSTALLER=/Volumes/$QT_INSTALLER_FILE_NAME/$QT_INSTALLER_FILE_NAME.app/Contents/MacOS/$QT_INSTALLER_FILE_NAME;
|
||||
echo "Silently installing Qt...";
|
||||
$QT_INSTALLER --script $QZ_DIR/mac/qt-mac-silent-install.qs;
|
||||
fi
|
||||
fi
|
||||
|
||||
script:
|
||||
- QMAKE="qmake"
|
||||
- if [[ "$QT" == "qt58" ]]; then QMAKE="/opt/qt58/bin/qmake"; fi
|
||||
- $QMAKE QMAKE_CXXFLAGS+="-Wextra -Werror"
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
||||
CXXFLAGS="-Wextra -Werror";
|
||||
if [[ "$QT" == "qt58" ]]; then QMAKE="/opt/qt58/bin/qmake"; fi
|
||||
fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
MACDEPLOYQT="macdeployqt";
|
||||
CXXFLAGS="-Wextra -Werror -Wno-inconsistent-missing-override -Wno-deprecated-declarations";
|
||||
if [[ "$QT" == "qt58" ]]; then
|
||||
MACDEPLOYQT=$QTDIR/bin/macdeployqt;
|
||||
QMAKE=$QTDIR/bin/qmake;
|
||||
fi
|
||||
fi
|
||||
- $QMAKE QMAKE_CXXFLAGS+="$CXXFLAGS"
|
||||
- make -j2 || exit 1
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
cp -v bin/libQupZilla*.dylib tests/autotests;
|
||||
fi
|
||||
- cd scripts && ./run_tests.sh $QMAKE
|
||||
|
||||
before_deploy:
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
cd $QZ_DIR;
|
||||
./mac/macdeploy.sh $MACDEPLOYQT;
|
||||
mv bin/QupZilla.dmg bin/QupZilla-${QZ_VER}.dmg;
|
||||
fi
|
||||
|
||||
deploy:
|
||||
provider: releases
|
||||
api_key:
|
||||
secure: "bGGHyeMXF3nrFIaJCzA5zicH3TfdcMNY6+DT+84veBoCAsBMIjp+1t//mkEBnyAYZHKV/6XDhgztwinX1yEylvOeXxQXG5J0fYj96UzZmjBY+QmgDc31XgVeKKIbEi0Ab2bkgW3qHyQJ5ao/lZwSPCt1stOnjz0WuGgrjGWoAgEoHBXzRlsGzU2LrF/bXnmjyPL/qe7AaV0neE9mD+FmeQwiBPoP+/cQCyz5veOdjuzCy4I57HLCvNH4y28z1p6qotS+V1jGRj8PgMWWQP/VXVp9glTV0+gGkOLKL91SPKvLkS76f5bgn6K3+vdDASf+ZCNajIsh1YpwiabX4tQKwnCd80Ps9PR5dXcQVPMBRy1lFr6u2ps0ZTTfiBpI6vqyvLtyv2QbrfGZfT5bWtwdqpSRPJhp6b/ieHHduuRkZ0aU3JuTpLeoob+rLlkvYQmpvmDgyTx44/q+UOOetkoSCD276sMxYxsd3DJKyeG320UcQvwU+dR8uv9NDdv9wpUi13mfGqaRdcSXXgUQWpZlzCGvQYwLozcNnFfbtyrY9BlJsH7Sf97b3313qHO1lrz92z4IhagY1eQqyTwUrtdH8VeeWNx3INdnd7/u1bSdTSLerzMOG/xds96XW/kVbB1SO8bG9IEel7kC5oTiEQfWXAvFw54P6F3eRjDCZvXGaZA="
|
||||
file: $QZ_DIR/bin/QupZilla-$QZ_VER.dmg
|
||||
skip_cleanup: true
|
||||
on:
|
||||
tags: true
|
||||
condition: "$TRAVIS_OS_NAME = osx"
|
||||
|
138
appveyor.yml
Normal file
138
appveyor.yml
Normal file
@ -0,0 +1,138 @@
|
||||
version: 2.1.99.{build}-{branch}
|
||||
|
||||
cache:
|
||||
- windows/dependencies
|
||||
|
||||
build:
|
||||
parallel: true
|
||||
verbosity: detailed
|
||||
|
||||
configuration:
|
||||
- release
|
||||
# - debug
|
||||
|
||||
branches:
|
||||
except:
|
||||
- v1.4
|
||||
- v1.6
|
||||
- v1.8
|
||||
|
||||
environment:
|
||||
global:
|
||||
QZ_VER: 2.1.99
|
||||
VSVER: 14
|
||||
ARCH: x86
|
||||
QMAKESPEC: win32-msvc2015
|
||||
MAKETOOL: jom
|
||||
TOOLSDIR: C:\Qt\Tools\QtCreator
|
||||
|
||||
matrix:
|
||||
- QTDIR: C:\Qt\5.8\msvc2015
|
||||
- ARCH: x64
|
||||
QTDIR: C:\Qt\5.8\msvc2015_64
|
||||
- PORTABLE_BUILD: "true"
|
||||
QTDIR: C:\Qt\5.8\msvc2015
|
||||
|
||||
install:
|
||||
- set QZ_DIR=%CD%
|
||||
- set CPU=32
|
||||
- IF /I "%ARCH%" == "x64" (set CPU=64)
|
||||
- set OPENSSL_DIR="C:\OpenSSL-Win%CPU%"
|
||||
- set ICU_DIR_NAME=icu4c-54_1-Win%CPU%-msvc10
|
||||
- set ICU_DOWNLOAD_URL="http://download.icu-project.org/files/icu4c/54.1/%ICU_DIR_NAME%.zip"
|
||||
- call "C:\Program Files (x86)\Microsoft Visual Studio "%VSVER%".0\VC\vcvarsall.bat" %ARCH%
|
||||
- set PATH=%QTDIR%\bin;%TOOLSDIR%\bin;%OPENSSL_DIR%\bin;%CD%\bin;%PATH%
|
||||
|
||||
build_script:
|
||||
- echo "QupZilla BUILD %APPVEYOR_BUILD_VERSION%_%QMAKESPEC%_%CONFIGURATION%_%ARCH%"
|
||||
- qmake -v
|
||||
- qmake CONFIG+=%CONFIGURATION% INCLUDEPATH+="%OPENSSL_DIR%\include" LIBS+=-L%OPENSSL_DIR%\lib QupZilla.pro
|
||||
- call %MAKETOOL%
|
||||
|
||||
test_script:
|
||||
- cd %QZ_DIR%\tests\autotests
|
||||
- qmake CONFIG+=%CONFIGURATION% INCLUDEPATH+="%OPENSSL_DIR%\include" LIBS+=-L%OPENSSL_DIR%\lib
|
||||
- call %MAKETOOL%
|
||||
- call %CONFIGURATION%\autotests.exe
|
||||
|
||||
after_build:
|
||||
# prepare dependencies
|
||||
- echo [Paths] > %QZ_DIR%\bin\qt.conf && echo Plugins="." >> %QZ_DIR%\bin\qt.conf
|
||||
- copy %QZ_DIR%\COPYRIGHT %QZ_DIR%\bin\COPYRIGHT.txt
|
||||
- cd %QZ_DIR%\windows
|
||||
- IF NOT EXIST "dependencies" ( mkdir dependencies )
|
||||
- cd dependencies
|
||||
- IF NOT EXIST "%ICU_DIR_NAME%.zip" ( appveyor DownloadFile %ICU_DOWNLOAD_URL% ) else ( echo "Use cached %ICU_DIR_NAME%.zip")
|
||||
# see: https://github.com/appveyor/ci/issues/1347
|
||||
- ps: If (![System.IO.File]::Exists("$env:APPVEYOR_BUILD_FOLDER\windows\dependencies\KillProcDll&FindProcDll.zip")) { (New-Object Net.WebClient).DownloadFile("http://nsis.sourceforge.net/mediawiki/images/5/53/KillProcDll%26FindProcDll.zip", "$env:APPVEYOR_BUILD_FOLDER\windows\dependencies\KillProcDll&FindProcDll.zip") } ELse { echo "Use cached KillProcDll&FindProcDll.zip" }
|
||||
- IF NOT EXIST "Registry.zip" (
|
||||
appveyor DownloadFile "http://nsis.sourceforge.net/mediawiki/images/4/47/Registry.zip" ) else (echo "Use cached Registry.zip")
|
||||
- IF NOT EXIST "AppAssocReg-0.4.zip" (
|
||||
appveyor DownloadFile "http://nsis.sourceforge.net/mediawiki/images/d/d4/AppAssocReg-0.4.zip" ) else (echo "Use cached AppAssocReg-0.4.zip")
|
||||
- IF NOT EXIST "master.tar.gz" (
|
||||
appveyor DownloadFile "http://chromium.googlesource.com/chromium/deps/hunspell_dictionaries/+archive/master.tar.gz" ) else (echo "Use cached master.tar.gz")
|
||||
- mkdir ..\wininstall
|
||||
- cd ..\wininstall
|
||||
- copy ..\*.nsh .\
|
||||
- copy ..\*.ico .\
|
||||
- copy ..\*.bmp .\
|
||||
# prepare nsis plugins
|
||||
- 7z x "..\dependencies\KillProcDll&FindProcDll.zip"
|
||||
- 7z x ..\dependencies\Registry.zip
|
||||
- 7z x ..\dependencies\AppAssocReg-0.4.zip
|
||||
- copy Desktop\Plugin\*.dll .\
|
||||
- copy Plugins\Unicode\*.dll .\
|
||||
# prepare icu
|
||||
- 7z x "..\dependencies\%ICU_DIR_NAME%.zip"
|
||||
# prepare qtwebengine_dictionaries
|
||||
- mkdir qtwebengine_dictionaries
|
||||
- cd qtwebengine_dictionaries
|
||||
- 7z x ..\..\dependencies\master.tar.gz
|
||||
- 7z x master.tar
|
||||
- mkdir doc
|
||||
- move README* doc\
|
||||
- move COPYING* doc\
|
||||
- cd %QZ_DIR%\windows
|
||||
# set paths
|
||||
- set OPENSSL_BIN_DIR="%OPENSSL_DIR%\bin"
|
||||
- set MSVC_REDIST_DIR="C:\Program Files (x86)\Microsoft Visual Studio "%VSVER%".0\VC\redist\%ARCH%\Microsoft.VC%VSVER%0.CRT"
|
||||
- set ICU_BIN_DIR="%QZ_DIR%\windows\wininstall\icu\bin"
|
||||
- IF /I "%ARCH%" == "x64" (set INSTALLER_VERSION="%QZ_VER% x64" && set ICU_BIN_DIR="%QZ_DIR%\windows\wininstall\icu\bin64") else (set INSTALLER_VERSION="%QZ_VER%")
|
||||
- set QTWEBENGINE_DICTIONARIES_DIR="%QZ_DIR%\windows\wininstall\qtwebengine_dictionaries"
|
||||
# make installer
|
||||
- IF /I "%PORTABLE_BUILD%" == "true" (
|
||||
call "C:\Program Files (x86)\NSIS\makensis.exe" /X"Unicode true" /DCUSTOM=1 /DPORTABLE=1 /DVERSION="%QZ_VER% Portable" /DARCH=%ARCH% /DMSVC_VER=%VSVER%0 /DOPENSSL_BIN_DIR=%OPENSSL_BIN_DIR% /DMSVC_REDIST_DIR=%MSVC_REDIST_DIR% /DQZ_BIN_DIR=%QZ_DIR%\bin /DICU_BIN_DIR=%ICU_BIN_DIR% /DQT_DIR=%QTDIR% /DQT_BIN_DIR=%QTDIR%\bin /DQT_PLUGINS_DIR=%QTDIR%\plugins /DQTWEBENGINE_DICTIONARIES_DIR=%QTWEBENGINE_DICTIONARIES_DIR% installer.nsi
|
||||
) else (
|
||||
call "C:\Program Files (x86)\NSIS\makensis.exe" /X"Unicode true" /DCUSTOM=1 /DVERSION=%INSTALLER_VERSION% /DARCH=%ARCH% /DMSVC_VER=%VSVER%0 /DOPENSSL_BIN_DIR=%OPENSSL_BIN_DIR% /DMSVC_REDIST_DIR=%MSVC_REDIST_DIR% /DQZ_BIN_DIR=%QZ_DIR%\bin /DICU_BIN_DIR=%ICU_BIN_DIR% /DQT_DIR=%QTDIR% /DQT_BIN_DIR=%QTDIR%\bin /DQT_PLUGINS_DIR=%QTDIR%\plugins /DQTWEBENGINE_DICTIONARIES_DIR=%QTWEBENGINE_DICTIONARIES_DIR% installer.nsi
|
||||
)
|
||||
|
||||
artifacts:
|
||||
- path: windows\QupZilla*Installer*.exe
|
||||
name: QupZilla Installer (%ARCH%)
|
||||
- path: bin\*.exe
|
||||
name: QupZilla Executable (%ARCH%)
|
||||
- path: bin\*.dll
|
||||
name: QupZilla DLL (%ARCH%)
|
||||
|
||||
|
||||
deploy:
|
||||
release: 'Version $(qz_ver)'
|
||||
tag: $(appveyor_repo_tag_name) # don't remove or modify tag field
|
||||
description: 'QupZilla $(qz_ver) Windows Installer Released'
|
||||
provider: GitHub
|
||||
auth_token:
|
||||
secure: BumEo5ic9KIrhc8RxwsKFd/L6WwC0s5LpSef9uH+PtUKICZBZAcyqnPewKUqzEFi # your encrypted token from GitHub
|
||||
artifact: /QupZilla.*Installer.*\.exe/ # QupZilla Installer
|
||||
draft: false
|
||||
prerelease: false
|
||||
on:
|
||||
appveyor_repo_tag: true # deploy on tag push only
|
||||
|
||||
# notifications:
|
||||
# - provider: Email
|
||||
# to:
|
||||
# - nowrep@gmail.com
|
||||
# - s.r.alavizadeh@gmail.com
|
||||
# on_build_success: false
|
||||
# on_build_failure: false
|
||||
# on_build_status_changed: true
|
@ -34,34 +34,22 @@ do
|
||||
install_name_tool -change $LIBRARY_NAME @executable_path/$LIBRARY_NAME $plugin
|
||||
done
|
||||
|
||||
# prompt and optionally copy additional Qt native plugin(s) into bundle
|
||||
echo -n "Do you wish to redistribute known, missing, Qt Library plugins (y/n)? "
|
||||
old_stty_cfg=$(stty -g)
|
||||
stty raw -echo
|
||||
answer=$( while ! head -c 1 | grep -i '[yn]'; do true; done )
|
||||
stty $old_stty_cfg
|
||||
if echo "$answer" | grep -iq "^y"; then
|
||||
if [ -z ${QTDIR+x} ]; then
|
||||
printf '\nPlease set the environment variable for the Qt platform folder.\n\texample:\n\t$ export QTDIR="$HOME/Qt/5.8/clang_64"\n'
|
||||
exit 1
|
||||
else
|
||||
printf '\nCopying known, missing, Qt native library plugins to target bundle...\n'
|
||||
|
||||
mkdir -p $QTPLUGINS
|
||||
|
||||
FILE="$QTDIR/plugins/iconengines/libqsvgicon.dylib"
|
||||
if [ -f "$FILE" ]; then
|
||||
cp $FILE $QTPLUGINS/
|
||||
else
|
||||
echo "$FILE: No such file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
fi
|
||||
if [ -z ${QTDIR+x} ]; then
|
||||
printf '\nPlease set the environment variable for the Qt platform folder.\n\texample:\n\t$ export QTDIR="$HOME/Qt/5.8/clang_64"\n'
|
||||
exit 1
|
||||
else
|
||||
printf '\nChecking for prior deploy image Qt native library plugins at target bundle...\n'
|
||||
printf '\nCopying known, missing, Qt native library plugins to target bundle...\n'
|
||||
|
||||
mkdir -p $QTPLUGINS
|
||||
|
||||
FILE="$QTDIR/plugins/iconengines/libqsvgicon.dylib"
|
||||
if [ -f "$FILE" ]; then
|
||||
cp $FILE $QTPLUGINS/
|
||||
else
|
||||
echo "$FILE: No such file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -Rf $QTPLUGINS
|
||||
fi
|
||||
|
||||
# run macdeployqt
|
||||
|
55
mac/qt-mac-silent-install.qs
Normal file
55
mac/qt-mac-silent-install.qs
Normal file
@ -0,0 +1,55 @@
|
||||
function Controller() {
|
||||
installer.autoRejectMessageBoxes();
|
||||
installer.installationFinished.connect(function() {
|
||||
gui.clickButton(buttons.NextButton);
|
||||
})
|
||||
}
|
||||
|
||||
Controller.prototype.WelcomePageCallback = function() {
|
||||
gui.clickButton(buttons.NextButton);
|
||||
}
|
||||
|
||||
Controller.prototype.CredentialsPageCallback = function() {
|
||||
gui.clickButton(buttons.NextButton);
|
||||
}
|
||||
|
||||
Controller.prototype.IntroductionPageCallback = function() {
|
||||
gui.clickButton(buttons.NextButton);
|
||||
}
|
||||
|
||||
Controller.prototype.TargetDirectoryPageCallback = function() {
|
||||
gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.value("HomeDir") + "/Qt");
|
||||
gui.clickButton(buttons.NextButton);
|
||||
}
|
||||
|
||||
Controller.prototype.ComponentSelectionPageCallback = function() {
|
||||
var widget = gui.currentPageWidget();
|
||||
|
||||
widget.deselectAll();
|
||||
widget.selectComponent("qt.58.clang_64");
|
||||
widget.selectComponent("qt.58.qtwebengine");
|
||||
widget.selectComponent("qt.58.qtscript");
|
||||
|
||||
gui.clickButton(buttons.NextButton);
|
||||
}
|
||||
|
||||
Controller.prototype.LicenseAgreementPageCallback = function() {
|
||||
gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
|
||||
gui.clickButton(buttons.NextButton);
|
||||
}
|
||||
|
||||
Controller.prototype.StartMenuDirectoryPageCallback = function() {
|
||||
gui.clickButton(buttons.NextButton);
|
||||
}
|
||||
|
||||
Controller.prototype.ReadyForInstallationPageCallback = function() {
|
||||
gui.clickButton(buttons.NextButton);
|
||||
}
|
||||
|
||||
Controller.prototype.FinishedPageCallback = function() {
|
||||
var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm
|
||||
if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox) {
|
||||
checkBoxForm.launchQtCreatorCheckBox.checked = false;
|
||||
}
|
||||
gui.clickButton(buttons.FinishButton);
|
||||
}
|
@ -4,6 +4,8 @@ QT += webenginewidgets network widgets printsupport sql script dbus testlib
|
||||
|
||||
TARGET = autotests
|
||||
|
||||
CONFIG -= app_bundle
|
||||
|
||||
!unix|mac: LIBS += -L$$PWD/../../bin -lQupZilla
|
||||
!mac:unix: LIBS += $$PWD/../../bin/libQupZilla.so
|
||||
|
||||
@ -21,6 +23,15 @@ exists($$PWD/../../bin/plugins/libGnomeKeyringPasswords.so) {
|
||||
DEFINES += HAVE_GNOME_PASSWORDS_PLUGIN
|
||||
}
|
||||
|
||||
mac {
|
||||
# homebrew openssl
|
||||
BREW_OPENSSL = $$system("brew --prefix openssl")
|
||||
INCLUDEPATH += $$BREW_OPENSSL/include
|
||||
LIBS += -L$$BREW_OPENSSL/lib
|
||||
|
||||
LIBS += -lcrypto -framework CoreServices
|
||||
}
|
||||
|
||||
DESTDIR =
|
||||
OBJECTS_DIR = build
|
||||
MOC_DIR = build
|
||||
|
@ -1,6 +1,6 @@
|
||||
; QupZilla Windows Installer NSIS Script
|
||||
; Copyright (C) 2010-2014 David Rosca <nowrep@gmail.com>
|
||||
; 2012-2013 S. Razi Alavizadeh <s.r.alavizadeh@gmail.com>
|
||||
; Copyright (C) 2010-2017 David Rosca <nowrep@gmail.com>
|
||||
; 2012-2017 S. Razi Alavizadeh <s.r.alavizadeh@gmail.com>
|
||||
;
|
||||
; For compiling this script you need following plugins:
|
||||
; FindProcDLL_plug-in, KillProcDLL_plug-in and 'AllAssociation.nsh' needs
|
||||
@ -10,12 +10,32 @@
|
||||
; http://nsis.sourceforge.net/Application_Association_Registration_plug-in
|
||||
; http://nsis.sourceforge.net/Registry_plug-in
|
||||
|
||||
RequestExecutionLevel admin
|
||||
!ifndef CUSTOM
|
||||
!define VERSION 2.1.2
|
||||
!define ARCH x86
|
||||
!define MSVC_VER 140
|
||||
!define OPENSSL_BIN_DIR .
|
||||
!define MSVC_REDIST_DIR .
|
||||
!define QZ_BIN_DIR .
|
||||
!define ICU_BIN_DIR .
|
||||
!define QT_DIR .
|
||||
!define QT_BIN_DIR .
|
||||
!define QT_PLUGINS_DIR .
|
||||
!define QTWEBENGINE_DICTIONARIES_DIR qtwebengine_dictionaries
|
||||
!undef PORTABLE
|
||||
!endif
|
||||
|
||||
; WinVer.nsh was added in the same release that RequestExecutionLevel so check
|
||||
; if ___WINVER__NSH___ is defined to determine if RequestExecutionLevel is
|
||||
; available.
|
||||
!include /NONFATAL WinVer.nsh
|
||||
!include x64.nsh
|
||||
|
||||
!ifndef PORTABLE
|
||||
RequestExecutionLevel admin
|
||||
!else
|
||||
RequestExecutionLevel user
|
||||
!endif
|
||||
|
||||
!addplugindir "wininstall\"
|
||||
|
||||
@ -24,7 +44,7 @@ RequestExecutionLevel admin
|
||||
SetCompressor /SOLID /FINAL lzma
|
||||
|
||||
!define PRODUCT_NAME "QupZilla"
|
||||
!define /date PRODUCT_VERSION "2.1.2"
|
||||
!define /date PRODUCT_VERSION "${VERSION}"
|
||||
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\qupzilla.exe"
|
||||
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
|
||||
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
|
||||
@ -38,7 +58,7 @@ SetCompressor /SOLID /FINAL lzma
|
||||
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "wininstall\welcome.bmp"
|
||||
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_LICENSE COPYRIGHT.txt
|
||||
!insertmacro MUI_PAGE_LICENSE ${QZ_BIN_DIR}\COPYRIGHT.txt
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
@ -105,75 +125,76 @@ notRunning:
|
||||
SetOverwrite on
|
||||
|
||||
SetOutPath "$INSTDIR"
|
||||
File "COPYRIGHT.txt"
|
||||
File "qupzilla.exe"
|
||||
File "qupzilla.dll"
|
||||
File "libeay32.dll"
|
||||
File "ssleay32.dll"
|
||||
File "qt.conf"
|
||||
File "concrt140.dll"
|
||||
File "msvcp140.dll"
|
||||
File "vccorlib140.dll"
|
||||
File "vcruntime140.dll"
|
||||
File "icudt54.dll"
|
||||
File "icuin54.dll"
|
||||
File "icuuc54.dll"
|
||||
File "libEGL.dll"
|
||||
File "libGLESv2.dll"
|
||||
File "opengl32sw.dll"
|
||||
File "D3Dcompiler_47.dll"
|
||||
File "Qt5Core.dll"
|
||||
File "Qt5Gui.dll"
|
||||
File "Qt5Network.dll"
|
||||
File "Qt5Positioning.dll"
|
||||
File "Qt5PrintSupport.dll"
|
||||
File "Qt5Qml.dll"
|
||||
File "Qt5Quick.dll"
|
||||
File "Qt5QuickWidgets.dll"
|
||||
File "Qt5Sql.dll"
|
||||
File "Qt5Svg.dll"
|
||||
File "Qt5WinExtras.dll"
|
||||
File "Qt5WebEngine.dll"
|
||||
File "Qt5WebEngineCore.dll"
|
||||
File "Qt5WebEngineWidgets.dll"
|
||||
File "Qt5WebChannel.dll"
|
||||
File "Qt5Widgets.dll"
|
||||
File "QtWebEngineProcess.exe"
|
||||
File "${QZ_BIN_DIR}\COPYRIGHT.txt"
|
||||
File "${QZ_BIN_DIR}\qupzilla.exe"
|
||||
File "${QZ_BIN_DIR}\qupzilla.dll"
|
||||
File "${QZ_BIN_DIR}\qt.conf"
|
||||
File "${OPENSSL_BIN_DIR}\libeay32.dll"
|
||||
File "${OPENSSL_BIN_DIR}\ssleay32.dll"
|
||||
File "${MSVC_REDIST_DIR}\*"
|
||||
File "${ICU_BIN_DIR}\icudt54.dll"
|
||||
File "${ICU_BIN_DIR}\icuin54.dll"
|
||||
File "${ICU_BIN_DIR}\icuuc54.dll"
|
||||
File "${QT_BIN_DIR}\libEGL.dll"
|
||||
File "${QT_BIN_DIR}\libGLESv2.dll"
|
||||
File "${QT_BIN_DIR}\opengl32sw.dll"
|
||||
File "${QT_BIN_DIR}\D3Dcompiler_47.dll"
|
||||
File "${QT_BIN_DIR}\Qt5Core.dll"
|
||||
File "${QT_BIN_DIR}\Qt5Gui.dll"
|
||||
File "${QT_BIN_DIR}\Qt5Network.dll"
|
||||
File "${QT_BIN_DIR}\Qt5Positioning.dll"
|
||||
File "${QT_BIN_DIR}\Qt5PrintSupport.dll"
|
||||
File "${QT_BIN_DIR}\Qt5Qml.dll"
|
||||
File "${QT_BIN_DIR}\Qt5Quick.dll"
|
||||
File "${QT_BIN_DIR}\Qt5QuickWidgets.dll"
|
||||
File "${QT_BIN_DIR}\Qt5Sql.dll"
|
||||
File "${QT_BIN_DIR}\Qt5Svg.dll"
|
||||
File "${QT_BIN_DIR}\Qt5WinExtras.dll"
|
||||
File "${QT_BIN_DIR}\Qt5WebEngine.dll"
|
||||
File "${QT_BIN_DIR}\Qt5WebEngineCore.dll"
|
||||
File "${QT_BIN_DIR}\Qt5WebEngineWidgets.dll"
|
||||
File "${QT_BIN_DIR}\Qt5WebChannel.dll"
|
||||
File "${QT_BIN_DIR}\Qt5Widgets.dll"
|
||||
File "${QT_BIN_DIR}\QtWebEngineProcess.exe"
|
||||
|
||||
SetOutPath "$INSTDIR\iconengines"
|
||||
File "iconengines\qsvgicon.dll"
|
||||
File "${QT_PLUGINS_DIR}\iconengines\qsvgicon.dll"
|
||||
|
||||
SetOutPath "$INSTDIR\imageformats"
|
||||
File "imageformats\*.dll"
|
||||
File "${QT_PLUGINS_DIR}\imageformats\*.dll"
|
||||
|
||||
SetOutPath "$INSTDIR\platforms"
|
||||
File "platforms\qwindows.dll"
|
||||
File "${QT_PLUGINS_DIR}\platforms\qwindows.dll"
|
||||
|
||||
SetOutPath "$INSTDIR\printsupport"
|
||||
File "printsupport\windowsprintersupport.dll"
|
||||
File "${QT_PLUGINS_DIR}\printsupport\windowsprintersupport.dll"
|
||||
|
||||
SetOutPath "$INSTDIR\qml\QtQuick.2"
|
||||
File "qml\QtQuick.2\*"
|
||||
File "${QT_DIR}\qml\QtQuick.2\*"
|
||||
|
||||
SetOutPath "$INSTDIR\qml\QtWebEngine"
|
||||
File "qml\QtWebEngine\*"
|
||||
File "${QT_DIR}\qml\QtWebEngine\*"
|
||||
|
||||
SetOutPath "$INSTDIR\resources"
|
||||
File "resources\*"
|
||||
File "${QT_DIR}\resources\*"
|
||||
|
||||
SetOutPath "$INSTDIR\sqldrivers"
|
||||
File "sqldrivers\qsqlite.dll"
|
||||
File "${QT_PLUGINS_DIR}\sqldrivers\qsqlite.dll"
|
||||
|
||||
SetOutPath "$INSTDIR\translations\qtwebengine_locales"
|
||||
File "translations\qtwebengine_locales\*"
|
||||
File "${QT_DIR}\translations\qtwebengine_locales\*"
|
||||
|
||||
SetOutPath "$INSTDIR\qtwebengine_dictionaries\doc"
|
||||
File "qtwebengine_dictionaries\doc\README-en-US.txt"
|
||||
; In some packages underline '_' is used and in some other packages dash '-' is used so we use wildcard
|
||||
File "${QTWEBENGINE_DICTIONARIES_DIR}\doc\README*en*US.txt"
|
||||
|
||||
SetOutPath "$INSTDIR\qtwebengine_dictionaries"
|
||||
File "qtwebengine_dictionaries\en_US.bdic"
|
||||
; in some packages *.bdic files use dash '-' instead of underline '_' followed by a version number. e.g. en-US-3-0.bdic
|
||||
File "${QTWEBENGINE_DICTIONARIES_DIR}\en*US*.bdic"
|
||||
|
||||
call RegisterCapabilities
|
||||
!ifndef PORTABLE
|
||||
call RegisterCapabilities
|
||||
!endif
|
||||
SectionEnd
|
||||
|
||||
SectionGroup $(TITLE_SecThemes) SecThemes
|
||||
@ -181,146 +202,166 @@ SectionGroup $(TITLE_SecThemes) SecThemes
|
||||
Section Default SecDefault
|
||||
SectionIn RO
|
||||
SetOutPath "$INSTDIR\themes\windows"
|
||||
File "themes\windows\*"
|
||||
File "${QZ_BIN_DIR}\themes\windows\*"
|
||||
SetOutPath "$INSTDIR\themes\windows\images"
|
||||
File "themes\windows\images\*"
|
||||
File "${QZ_BIN_DIR}\themes\windows\images\*"
|
||||
SectionEnd
|
||||
|
||||
Section Chrome SecChrome
|
||||
SetOutPath "$INSTDIR\themes\chrome"
|
||||
File "themes\chrome\*"
|
||||
File "${QZ_BIN_DIR}\themes\chrome\*"
|
||||
SetOutPath "$INSTDIR\themes\chrome\images"
|
||||
File "themes\chrome\images\*"
|
||||
File "${QZ_BIN_DIR}\themes\chrome\images\*"
|
||||
SectionEnd
|
||||
|
||||
Section Mac SecMac
|
||||
SetOutPath "$INSTDIR\themes\mac"
|
||||
File "themes\mac\*"
|
||||
File "${QZ_BIN_DIR}\themes\mac\*"
|
||||
SetOutPath "$INSTDIR\themes\mac\images"
|
||||
File "themes\mac\images\*"
|
||||
File "${QZ_BIN_DIR}\themes\mac\images\*"
|
||||
SectionEnd
|
||||
|
||||
Section Breathe SecBreathe
|
||||
SetOutPath "$INSTDIR\themes\breathe"
|
||||
File "themes\breathe\*"
|
||||
File "${QZ_BIN_DIR}\themes\breathe\*"
|
||||
SetOutPath "$INSTDIR\themes\breathe\images"
|
||||
File "themes\breathe\images\*"
|
||||
File "${QZ_BIN_DIR}\themes\breathe\images\*"
|
||||
SectionEnd
|
||||
|
||||
Section Old SecOld
|
||||
SetOutPath "$INSTDIR\themes\default"
|
||||
File "themes\default\*"
|
||||
SetOutPath "$INSTDIR\themes\default\images"
|
||||
File "themes\default\images\*"
|
||||
SectionEnd
|
||||
|
||||
SectionGroupEnd
|
||||
|
||||
Section $(TITLE_SecTranslations) SecTranslations
|
||||
SetOutPath "$INSTDIR\locale"
|
||||
File "locale\*.qm"
|
||||
File "${QZ_BIN_DIR}\locale\*.qm"
|
||||
SetOutPath "$INSTDIR\qtwebengine_dictionaries\doc"
|
||||
File "qtwebengine_dictionaries\doc\*"
|
||||
File "${QTWEBENGINE_DICTIONARIES_DIR}\doc\*"
|
||||
SetOutPath "$INSTDIR\qtwebengine_dictionaries"
|
||||
File "qtwebengine_dictionaries\*.bdic"
|
||||
File "${QTWEBENGINE_DICTIONARIES_DIR}\*.bdic"
|
||||
SectionEnd
|
||||
|
||||
Section $(TITLE_SecPlugins) SecPlugins
|
||||
SetOutPath "$INSTDIR\plugins"
|
||||
File "plugins\*.dll"
|
||||
File "${QZ_BIN_DIR}\plugins\*.dll"
|
||||
SectionEnd
|
||||
|
||||
SectionGroup $(TITLE_SecSetASDefault) SecSetASDefault
|
||||
Section $(TITLE_SecExtensions) SecExtensions
|
||||
SetOutPath "$INSTDIR"
|
||||
${RegisterAssociation} ".htm" "$INSTDIR\qupzilla.exe" "QupZilla.HTM" $(FILE_Htm) "$INSTDIR\qupzilla.exe,1" "file"
|
||||
${RegisterAssociation} ".html" "$INSTDIR\qupzilla.exe" "QupZilla.HTML" $(FILE_Html) "$INSTDIR\qupzilla.exe,1" "file"
|
||||
${UpdateSystemIcons}
|
||||
SectionEnd
|
||||
|
||||
Section $(TITLE_SecProtocols) SecProtocols
|
||||
${RegisterAssociation} "http" "$INSTDIR\qupzilla.exe" "QupZilla.HTTP" "URL:HyperText Transfer Protocol" "$INSTDIR\qupzilla.exe,0" "protocol"
|
||||
${RegisterAssociation} "https" "$INSTDIR\qupzilla.exe" "QupZilla.HTTPS" "URL:HyperText Transfer Protocol with Privacy" "$INSTDIR\qupzilla.exe,0" "protocol"
|
||||
${RegisterAssociation} "ftp" "$INSTDIR\qupzilla.exe" "QupZilla.FTP" "URL:File Transfer Protocol" "$INSTDIR\qupzilla.exe,0" "protocol"
|
||||
${UpdateSystemIcons}
|
||||
SectionEnd
|
||||
SectionGroupEnd
|
||||
|
||||
Section -StartMenu
|
||||
SetOutPath "$INSTDIR"
|
||||
SetShellVarContext all
|
||||
CreateDirectory "$SMPROGRAMS\QupZilla"
|
||||
CreateShortCut "$SMPROGRAMS\QupZilla\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
|
||||
CreateShortCut "$SMPROGRAMS\QupZilla\QupZilla.lnk" "$INSTDIR\qupzilla.exe"
|
||||
CreateShortCut "$SMPROGRAMS\QupZilla\License.lnk" "$INSTDIR\COPYRIGHT.txt"
|
||||
SectionEnd
|
||||
|
||||
Section $(TITLE_SecDesktop) SecDesktop
|
||||
SetOutPath "$INSTDIR"
|
||||
CreateShortCut "$DESKTOP\QupZilla.lnk" "$INSTDIR\qupzilla.exe" ""
|
||||
SectionEnd
|
||||
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecMain} $(DESC_SecMain)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecTranslations} $(DESC_SecTranslations)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecPlugins} $(DESC_SecPlugins)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecDesktop} $(DESC_SecDesktop)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecExtensions} $(DESC_SecExtensions)
|
||||
!ifndef PORTABLE
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecDesktop} $(DESC_SecDesktop)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecExtensions} $(DESC_SecExtensions)
|
||||
!endif
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecThemes} $(DESC_SecThemes)
|
||||
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecSetASDefault} $(DESC_SecSetASDefault)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecProtocols} $(DESC_SecProtocols)
|
||||
!ifndef PORTABLE
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecSetASDefault} $(DESC_SecSetASDefault)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecProtocols} $(DESC_SecProtocols)
|
||||
!endif
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
Section -Uninstaller
|
||||
WriteUninstaller "$INSTDIR\uninstall.exe"
|
||||
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\qupzilla.exe"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\Uninstall.exe"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\qupzilla.exe"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "QupZilla Team"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "HelpLink" "https://github.com/QupZilla/qupzilla/wiki"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallLocation" "$INSTDIR"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallSource" "$EXEDIR"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "http://www.qupzilla.com"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLUpdateInfo" "http://blog.qupzilla.com/"
|
||||
${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
|
||||
WriteRegDWORD ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "EstimatedSize" "$0"
|
||||
SectionEnd
|
||||
|
||||
Section Uninstall
|
||||
FindProcDLL::FindProc "qupzilla.exe"
|
||||
IntCmp $R0 1 0 notRunning
|
||||
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "$(MSG_RunningInstance)" /SD IDOK IDCANCEL AbortInstallation
|
||||
KillProcDLL::KillProc "qupzilla.exe"
|
||||
Sleep 100
|
||||
Goto notRunning
|
||||
AbortInstallation:
|
||||
Abort "$(MSG_InstallationCanceled)"
|
||||
!ifndef PORTABLE
|
||||
SectionGroup $(TITLE_SecSetASDefault) SecSetASDefault
|
||||
Section $(TITLE_SecExtensions) SecExtensions
|
||||
SetOutPath "$INSTDIR"
|
||||
${RegisterAssociation} ".htm" "$INSTDIR\qupzilla.exe" "QupZilla.HTM" $(FILE_Htm) "$INSTDIR\qupzilla.exe,1" "file"
|
||||
${RegisterAssociation} ".html" "$INSTDIR\qupzilla.exe" "QupZilla.HTML" $(FILE_Html) "$INSTDIR\qupzilla.exe,1" "file"
|
||||
${UpdateSystemIcons}
|
||||
SectionEnd
|
||||
|
||||
notRunning:
|
||||
SetShellVarContext all
|
||||
Delete "$DESKTOP\QupZilla.lnk"
|
||||
RMDir /r "$INSTDIR"
|
||||
RMDir /r "$SMPROGRAMS\QupZilla"
|
||||
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
|
||||
DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
|
||||
Section $(TITLE_SecProtocols) SecProtocols
|
||||
${RegisterAssociation} "http" "$INSTDIR\qupzilla.exe" "QupZilla.HTTP" "URL:HyperText Transfer Protocol" "$INSTDIR\qupzilla.exe,0" "protocol"
|
||||
${RegisterAssociation} "https" "$INSTDIR\qupzilla.exe" "QupZilla.HTTPS" "URL:HyperText Transfer Protocol with Privacy" "$INSTDIR\qupzilla.exe,0" "protocol"
|
||||
${RegisterAssociation} "ftp" "$INSTDIR\qupzilla.exe" "QupZilla.FTP" "URL:File Transfer Protocol" "$INSTDIR\qupzilla.exe,0" "protocol"
|
||||
${UpdateSystemIcons}
|
||||
SectionEnd
|
||||
SectionGroupEnd
|
||||
|
||||
DeleteRegKey HKLM "Software\${PRODUCT_NAME}"
|
||||
DeleteRegValue HKLM "SOFTWARE\RegisteredApplications" "${PRODUCT_NAME}"
|
||||
Section -StartMenu
|
||||
SetOutPath "$INSTDIR"
|
||||
SetShellVarContext all
|
||||
CreateDirectory "$SMPROGRAMS\QupZilla"
|
||||
CreateShortCut "$SMPROGRAMS\QupZilla\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
|
||||
CreateShortCut "$SMPROGRAMS\QupZilla\QupZilla.lnk" "$INSTDIR\qupzilla.exe"
|
||||
CreateShortCut "$SMPROGRAMS\QupZilla\License.lnk" "$INSTDIR\COPYRIGHT.txt"
|
||||
SectionEnd
|
||||
|
||||
${UnRegisterAssociation} ".htm" "QupZilla.HTM" "$INSTDIR\qupzilla.exe" "file"
|
||||
${UnRegisterAssociation} ".html" "QupZilla.HTML" "$INSTDIR\qupzilla.exe" "file"
|
||||
${UnRegisterAssociation} "http" "QupZilla.HTTP" "$INSTDIR\qupzilla.exe" "protocol"
|
||||
${UnRegisterAssociation} "https" "QupZilla.HTTPS" "$INSTDIR\qupzilla.exe" "protocol"
|
||||
${UnRegisterAssociation} "ftp" "QupZilla.FTP" "$INSTDIR\qupzilla.exe" "protocol"
|
||||
${UpdateSystemIcons}
|
||||
SectionEnd
|
||||
Section $(TITLE_SecDesktop) SecDesktop
|
||||
SetOutPath "$INSTDIR"
|
||||
CreateShortCut "$DESKTOP\QupZilla.lnk" "$INSTDIR\qupzilla.exe" ""
|
||||
SectionEnd
|
||||
|
||||
Section -Uninstaller
|
||||
WriteUninstaller "$INSTDIR\uninstall.exe"
|
||||
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\qupzilla.exe"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\Uninstall.exe"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\qupzilla.exe"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "QupZilla Team"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "HelpLink" "https://github.com/QupZilla/qupzilla/wiki"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallLocation" "$INSTDIR"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallSource" "$EXEDIR"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "http://www.qupzilla.com"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLUpdateInfo" "http://blog.qupzilla.com/"
|
||||
${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
|
||||
WriteRegDWORD ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "EstimatedSize" "$0"
|
||||
SectionEnd
|
||||
|
||||
Section Uninstall
|
||||
FindProcDLL::FindProc "qupzilla.exe"
|
||||
IntCmp $R0 1 0 notRunning
|
||||
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "$(MSG_RunningInstance)" /SD IDOK IDCANCEL AbortInstallation
|
||||
KillProcDLL::KillProc "qupzilla.exe"
|
||||
Sleep 100
|
||||
Goto notRunning
|
||||
AbortInstallation:
|
||||
Abort "$(MSG_InstallationCanceled)"
|
||||
|
||||
notRunning:
|
||||
SetShellVarContext all
|
||||
Delete "$DESKTOP\QupZilla.lnk"
|
||||
RMDir /r "$INSTDIR"
|
||||
RMDir /r "$SMPROGRAMS\QupZilla"
|
||||
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
|
||||
DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
|
||||
|
||||
DeleteRegKey HKLM "Software\${PRODUCT_NAME}"
|
||||
DeleteRegValue HKLM "SOFTWARE\RegisteredApplications" "${PRODUCT_NAME}"
|
||||
|
||||
${UnRegisterAssociation} ".htm" "QupZilla.HTM" "$INSTDIR\qupzilla.exe" "file"
|
||||
${UnRegisterAssociation} ".html" "QupZilla.HTML" "$INSTDIR\qupzilla.exe" "file"
|
||||
${UnRegisterAssociation} "http" "QupZilla.HTTP" "$INSTDIR\qupzilla.exe" "protocol"
|
||||
${UnRegisterAssociation} "https" "QupZilla.HTTPS" "$INSTDIR\qupzilla.exe" "protocol"
|
||||
${UnRegisterAssociation} "ftp" "QupZilla.FTP" "$INSTDIR\qupzilla.exe" "protocol"
|
||||
${UpdateSystemIcons}
|
||||
SectionEnd
|
||||
!endif
|
||||
|
||||
BrandingText "${PRODUCT_NAME} ${PRODUCT_VERSION} Installer"
|
||||
|
||||
Function .onInit
|
||||
;Prevent running installer of 64-bit QupZilla on 32-bit Windows
|
||||
${If} ${RunningX64}
|
||||
${If} ${ARCH} == "x64"
|
||||
StrCpy $InstDir "$PROGRAMFILES64\${PRODUCT_NAME}\"
|
||||
${Else}
|
||||
StrCpy $InstDir "$PROGRAMFILES32\${PRODUCT_NAME}\"
|
||||
${Endif}
|
||||
${Else}
|
||||
${If} ${ARCH} == "x64"
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "This installation requiers Windows x64!"
|
||||
Quit
|
||||
${Else}
|
||||
StrCpy $InstDir "$PROGRAMFILES\${PRODUCT_NAME}\"
|
||||
${Endif}
|
||||
${EndIf}
|
||||
|
||||
!ifdef PORTABLE
|
||||
StrCpy $InstDir "$DESKTOP\${PRODUCT_NAME} Portable\"
|
||||
!endif
|
||||
|
||||
;Prevent Multiple Instances
|
||||
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "QupZillaInstaller-4ECB4694-2C39-4f93-9122-A986344C4E7B") i .r1 ?e'
|
||||
Pop $R0
|
||||
|
Loading…
Reference in New Issue
Block a user