Move buildscripts.
This commit is contained in:
		
							
								
								
									
										73
									
								
								buildscripts/build_macos.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										73
									
								
								buildscripts/build_macos.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,73 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -eu
 | 
			
		||||
 | 
			
		||||
show_usage() {
 | 
			
		||||
    echo -e "Usage: $0 <host> <branch> [config]"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if [ $# -lt 1 ]
 | 
			
		||||
then
 | 
			
		||||
    show_usage
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
SERVER_HOST=$1
 | 
			
		||||
BRANCH=$2
 | 
			
		||||
 | 
			
		||||
QT_VERSION=5.7
 | 
			
		||||
QT_REVISION=${QT_VERSION}.0
 | 
			
		||||
QCMA_SOURCES=~/projects/qcma
 | 
			
		||||
 | 
			
		||||
VERSION=$(git -C "${QCMA_SOURCES}" describe --tags --abbrev=8)
 | 
			
		||||
VERSION=${VERSION#v*}
 | 
			
		||||
 | 
			
		||||
if [ $# -ge 3 ]; then
 | 
			
		||||
    CONFIG=$3
 | 
			
		||||
else
 | 
			
		||||
    CONFIG=
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
case "$CONFIG" in
 | 
			
		||||
  *DISABLE_FFMPEG*)
 | 
			
		||||
    BUILD_MODE=_noffmpeg
 | 
			
		||||
    ;;
 | 
			
		||||
  *)
 | 
			
		||||
    BUILD_MODE=
 | 
			
		||||
    ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
git -C "${QCMA_SOURCES}" bundle create qcma.bundle --all
 | 
			
		||||
scp "${QCMA_SOURCES}/qcma.bundle" $SERVER_HOST:qcma.bundle
 | 
			
		||||
 | 
			
		||||
ssh -T "${SERVER_HOST}" << EOSSH
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -eu
 | 
			
		||||
QCMA_DIR="\$HOME/qcma"
 | 
			
		||||
rm -rf "\${QCMA_DIR}"
 | 
			
		||||
git clone -b ${BRANCH} qcma.bundle "\${QCMA_DIR}"
 | 
			
		||||
 | 
			
		||||
rm -rf qcma_build
 | 
			
		||||
mkdir qcma_build
 | 
			
		||||
 | 
			
		||||
pushd qcma_build
 | 
			
		||||
PATH=~/Qt${QT_REVISION}/${QT_VERSION}/clang_64/bin:/usr/local/bin:\$PATH
 | 
			
		||||
lrelease "\${QCMA_DIR}/qcma.pro"
 | 
			
		||||
qmake "\${QCMA_DIR}/qcma.pro" $CONFIG
 | 
			
		||||
make -j2
 | 
			
		||||
popd
 | 
			
		||||
 | 
			
		||||
rm -rf \${HOME}/qcma_output
 | 
			
		||||
mkdir \${HOME}/qcma_output
 | 
			
		||||
mv qcma_build/gui/qcma.app \${HOME}/qcma_output/Qcma.app
 | 
			
		||||
cp \${QCMA_DIR}/buildscripts/macos/* \${HOME}/qcma_output/
 | 
			
		||||
 | 
			
		||||
pushd \${HOME}/qcma_output/
 | 
			
		||||
macdeployqt Qcma.app -appstore-compliant
 | 
			
		||||
appdmg appdmg.json Qcma_${VERSION}${BUILD_MODE}.dmg
 | 
			
		||||
echo "Created Qcma_${VERSION}${BUILD_MODE}.dmg"
 | 
			
		||||
popd
 | 
			
		||||
EOSSH
 | 
			
		||||
 | 
			
		||||
scp ${SERVER_HOST}:qcma_output/Qcma_${VERSION}${BUILD_MODE}.dmg .
 | 
			
		||||
							
								
								
									
										91
									
								
								buildscripts/build_windows.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										91
									
								
								buildscripts/build_windows.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,91 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -ex
 | 
			
		||||
 | 
			
		||||
SERVER_HOST=$1
 | 
			
		||||
 | 
			
		||||
VERSION=$(git describe --tags --abbrev=8)
 | 
			
		||||
 | 
			
		||||
scp windows/driver/*.exe ${SERVER_HOST}:
 | 
			
		||||
scp windows/qcma.nsi ${SERVER_HOST}:qcma.nsi
 | 
			
		||||
scp COPYING ${SERVER_HOST}:COPYING.rtf
 | 
			
		||||
scp gui/resources/images/qcma.ico ${SERVER_HOST}:qcma.ico
 | 
			
		||||
 | 
			
		||||
ssh -T "${SERVER_HOST}" << EOSSH
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
set -ex
 | 
			
		||||
 | 
			
		||||
for arch in i686 x86_64; do
 | 
			
		||||
  if [ "\$arch" == "i686" ]; then
 | 
			
		||||
    bits=32
 | 
			
		||||
    seh=libgcc_s_dw2-1.dll
 | 
			
		||||
  else
 | 
			
		||||
    bits=64
 | 
			
		||||
    seh=libgcc_s_seh-1.dll
 | 
			
		||||
  fi
 | 
			
		||||
  rm -rf win_\${arch}
 | 
			
		||||
  mkdir win_\${arch}
 | 
			
		||||
  OUT=\$(pwd)
 | 
			
		||||
 | 
			
		||||
  pushd /cygdrive/c/ffmpeg-3.1.4-win\${bits}-shared/bin
 | 
			
		||||
  cp avcodec-57.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp avformat-57.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp avutil-55.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp swscale-4.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp swresample-2.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
 | 
			
		||||
  pushd /cygdrive/c/msys64/mingw\${bits}/bin
 | 
			
		||||
  cp libfreetype-6.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp \${seh} "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libglib-2.0-0.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libgraphite2.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libharfbuzz-0.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libiconv-2.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libicudt57.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libicuin57.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libicuuc57.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libjpeg-8.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libpcre-1.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libpcre16-0.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libpng16-16.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libsqlite3-0.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libstdc++-6.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libtiff-5.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libusb-1.0.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libvitamtp-5.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libwinpthread-1.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libxml2-2.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp Qt5Core.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp Qt5Gui.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp Qt5Sql.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp Qt5Network.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp Qt5Widgets.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp zlib1.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp liblzma-5.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libbz2-1.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp libintl-8.dll "\${OUT}/win_\${arch}/"
 | 
			
		||||
 | 
			
		||||
  cp qcma.exe "\${OUT}/win_\${arch}/"
 | 
			
		||||
  cp qcma_console.exe "\${OUT}/win_\${arch}/"
 | 
			
		||||
 | 
			
		||||
  pushd /cygdrive/c/msys64/mingw\${bits}/share/qt5/plugins
 | 
			
		||||
  mkdir "\${OUT}/win_\${arch}/platforms"
 | 
			
		||||
  mkdir "\${OUT}/win_\${arch}/imageformats"
 | 
			
		||||
  mkdir "\${OUT}/win_\${arch}/sqldrivers"
 | 
			
		||||
  cp platforms/qwindows.dll "\${OUT}/win_\${arch}/platforms"
 | 
			
		||||
  cp imageformats/qgif.dll "\${OUT}/win_\${arch}/imageformats"
 | 
			
		||||
  cp imageformats/qjpeg.dll "\${OUT}/win_\${arch}/imageformats"
 | 
			
		||||
  cp imageformats/qtiff.dll "\${OUT}/win_\${arch}/imageformats"
 | 
			
		||||
  cp sqldrivers/qsqlite.dll "\${OUT}/win_\${arch}/sqldrivers"
 | 
			
		||||
 | 
			
		||||
  pushd /cygdrive/c/msys64/mingw\${bits}/share/qt5/translations
 | 
			
		||||
  mkdir "\${OUT}/win_\${arch}/"translations
 | 
			
		||||
  cp qt_*.qm "\${OUT}/win_\${arch}/"translations
 | 
			
		||||
  popd
 | 
			
		||||
  popd
 | 
			
		||||
  popd
 | 
			
		||||
  popd
 | 
			
		||||
done
 | 
			
		||||
"/cygdrive/c/Program Files (x86)/NSIS/makensis" qcma.nsi
 | 
			
		||||
EOSSH
 | 
			
		||||
scp ${SERVER_HOST}:Qcma_setup.exe Qcma_setup-${VERSION}.exe
 | 
			
		||||
							
								
								
									
										10
									
								
								buildscripts/macos/appdmg.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								buildscripts/macos/appdmg.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
{
 | 
			
		||||
  "title": "Qcma Installer",
 | 
			
		||||
  "icon": "installer.icns",
 | 
			
		||||
  "background": "installer-bg.png",
 | 
			
		||||
  "icon-size": 80,
 | 
			
		||||
  "contents": [
 | 
			
		||||
    { "x": 456, "y": 344, "type": "link", "path": "/Applications" },
 | 
			
		||||
    { "x": 182, "y": 344, "type": "file", "path": "Qcma.app" }
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								buildscripts/macos/installer-bg.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								buildscripts/macos/installer-bg.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 17 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								buildscripts/macos/installer-bg@2x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								buildscripts/macos/installer-bg@2x.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 43 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								buildscripts/macos/installer.icns
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								buildscripts/macos/installer.icns
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										80
									
								
								buildscripts/rpmbuild/qcma.spec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								buildscripts/rpmbuild/qcma.spec
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,80 @@
 | 
			
		||||
# 
 | 
			
		||||
# qcma spec file
 | 
			
		||||
# 
 | 
			
		||||
 | 
			
		||||
%define _version 0.3.13
 | 
			
		||||
 | 
			
		||||
%if "%{_version}" == "testing" || "%{_version}" == "master"
 | 
			
		||||
%define _verprefix %{_version}
 | 
			
		||||
%else
 | 
			
		||||
%define _verprefix v%{_version}
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
%if 0%{?fedora}
 | 
			
		||||
%define _qt5base qt5-qtbase
 | 
			
		||||
%define _qt5imageformats qt5-qtimageformats
 | 
			
		||||
%define _pkgconfig pkgconfig
 | 
			
		||||
%define _qt5linguist qt5-linguist
 | 
			
		||||
%define _qt5basedevel qt5-qtbase-devel
 | 
			
		||||
%else
 | 
			
		||||
%define qmake_qt5 qmake-qt5
 | 
			
		||||
%define _qt5base libqt5-qtbase
 | 
			
		||||
%define _qt5imageformats libqt5-qtimageformats
 | 
			
		||||
%define _pkgconfig pkg-config
 | 
			
		||||
%define _qt5linguist  libqt5-linguist
 | 
			
		||||
%define _qt5basedevel libqt5-qtbase-devel
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
Name:           qcma
 | 
			
		||||
Summary:        PSVita Content Manager Assistant
 | 
			
		||||
License:        GPL-3.0
 | 
			
		||||
Release:        1
 | 
			
		||||
Version:        %{_version}
 | 
			
		||||
URL:            https://github.com/codestation/qcma
 | 
			
		||||
Source:         https://github.com/codestation/qcma/archive/%{_verprefix}/qcma-%{_version}.tar.gz
 | 
			
		||||
Group:          Productivity/File utilities
 | 
			
		||||
Requires:       libnotify
 | 
			
		||||
Requires:       ffmpeg
 | 
			
		||||
Requires:       %{_qt5base}
 | 
			
		||||
Requires:       %{_qt5imageformats}
 | 
			
		||||
Requires:       libvitamtp5 >= 2.5.9
 | 
			
		||||
BuildRequires:  gcc-c++ 
 | 
			
		||||
BuildRequires:  %{_pkgconfig}
 | 
			
		||||
BuildRequires:  libnotify-devel
 | 
			
		||||
BuildRequires:  ffmpeg-devel
 | 
			
		||||
BuildRequires:  libvitamtp-devel
 | 
			
		||||
BuildRequires:  %{_qt5linguist}
 | 
			
		||||
BuildRequires:  %{_qt5basedevel}
 | 
			
		||||
 | 
			
		||||
%description
 | 
			
		||||
QCMA is an cross-platform application to provide a Open Source implementation
 | 
			
		||||
of the original Content Manager Assistant that comes with the PS Vita. QCMA
 | 
			
		||||
is meant to be compatible with Linux, Windows and MAC OS X.
 | 
			
		||||
 | 
			
		||||
%prep
 | 
			
		||||
%setup -n %{name}-%{version}
 | 
			
		||||
 | 
			
		||||
%build
 | 
			
		||||
lrelease-qt5 common/resources/translations/*.ts
 | 
			
		||||
%{qmake_qt5} PREFIX=/usr qcma.pro CONFIG+="QT5_SUFFIX"
 | 
			
		||||
make %{?_smp_mflags}
 | 
			
		||||
 | 
			
		||||
%install
 | 
			
		||||
make install INSTALL_ROOT=%{buildroot}
 | 
			
		||||
 | 
			
		||||
%files
 | 
			
		||||
%defattr(-,root,root)
 | 
			
		||||
%{_bindir}/qcma
 | 
			
		||||
%{_prefix}/share/applications/qcma.desktop
 | 
			
		||||
%{_prefix}/share/icons/hicolor/64x64/apps/qcma.png
 | 
			
		||||
%{_prefix}/share/man/man1/qcma.1.gz
 | 
			
		||||
 | 
			
		||||
%changelog
 | 
			
		||||
 | 
			
		||||
%package cli
 | 
			
		||||
Summary: Content Manager Assistant for the PS Vita (headless version)
 | 
			
		||||
%description cli
 | 
			
		||||
Headless version of Qcma
 | 
			
		||||
%files cli
 | 
			
		||||
%{_bindir}/qcma_cli
 | 
			
		||||
%{_prefix}/share/man/man1/qcma_cli.1.gz
 | 
			
		||||
							
								
								
									
										43
									
								
								buildscripts/windows/PKGBUILD
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								buildscripts/windows/PKGBUILD
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
_realname=qcma
 | 
			
		||||
pkgbase=mingw-w64-${_realname}
 | 
			
		||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
 | 
			
		||||
pkgver=v0.3.13.13.g5236770
 | 
			
		||||
pkgrel=1
 | 
			
		||||
pkgdesc="Content Manager Assistant for the PS Vita"
 | 
			
		||||
arch=(any)
 | 
			
		||||
url="https://github.com/codestation/qcma"
 | 
			
		||||
license=("GPL")
 | 
			
		||||
makedepends=(${MINGW_PACKAGE_PREFIX}-pkg-config)
 | 
			
		||||
depends=(${MINGW_PACKAGE_PREFIX}-crt ${MINGW_PACKAGE_PREFIX}-qt5 ${MINGW_PACKAGE_PREFIX}-ffmpeg ${MINGW_PACKAGE_PREFIX}-vitamtp)
 | 
			
		||||
options=(strip staticlibs)
 | 
			
		||||
source=('git+https://github.com/codestation/qcma.git#branch=testing')
 | 
			
		||||
sha256sums=('SKIP')
 | 
			
		||||
 | 
			
		||||
pkgver() {
 | 
			
		||||
  cd qcma
 | 
			
		||||
  echo "$(git describe --long --tags | tr - .)"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
build() {
 | 
			
		||||
  unset LDFLAGS
 | 
			
		||||
 | 
			
		||||
  for opt in gui console; do
 | 
			
		||||
    [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST}_${opt}
 | 
			
		||||
    mkdir -p ${srcdir}/build-${MINGW_CHOST}_${opt} && cd ${srcdir}/build-${MINGW_CHOST}_${opt}
 | 
			
		||||
    lrelease ../qcma/qcma.pro
 | 
			
		||||
    qmake ../qcma/qcma.pro CONFIG+=${opt}
 | 
			
		||||
    make
 | 
			
		||||
  done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
package() {
 | 
			
		||||
 | 
			
		||||
  for opt in gui console; do
 | 
			
		||||
    cd ${srcdir}/build-${MINGW_CHOST}_${opt}
 | 
			
		||||
    if [ $opt == "console" ]; then
 | 
			
		||||
      install -D gui/qcma.exe "${pkgdir}${MINGW_PREFIX}/bin/qcma_console.exe"
 | 
			
		||||
    else
 | 
			
		||||
      install -D gui/qcma.exe "${pkgdir}${MINGW_PREFIX}/bin/qcma.exe"
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										299
									
								
								buildscripts/windows/qcma.nsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										299
									
								
								buildscripts/windows/qcma.nsi
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,299 @@
 | 
			
		||||
#### QCMA NSIS Install Script
 | 
			
		||||
 | 
			
		||||
### Includes
 | 
			
		||||
!include LogicLib.nsh
 | 
			
		||||
!include MUI.nsh
 | 
			
		||||
!include x64.nsh
 | 
			
		||||
!include Sections.nsh
 | 
			
		||||
 | 
			
		||||
### General information
 | 
			
		||||
!define PRODUCT_NAME "Qcma"
 | 
			
		||||
!define PRODUCT_EXE_NAME "qcma.exe"
 | 
			
		||||
!define PRODUCT_VERSION_MAJOR 0
 | 
			
		||||
!define PRODUCT_VERSION_MINOR 3
 | 
			
		||||
!define PRODUCT_VERSION_BUILD 13
 | 
			
		||||
!define PRODUCT_PUBLISHER "codestation"
 | 
			
		||||
!define PRODUCT_WEB_SITE "https://github.com/codestation/qcma"
 | 
			
		||||
 | 
			
		||||
### Macros
 | 
			
		||||
!macro VerifyUserIsAdmin
 | 
			
		||||
UserInfo::GetAccountType
 | 
			
		||||
pop $0
 | 
			
		||||
${If} $0 != "admin" ;Require admin rights on NT4+
 | 
			
		||||
    MessageBox mb_iconstop "Administrator rights required!"
 | 
			
		||||
    SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
 | 
			
		||||
    Quit
 | 
			
		||||
${EndIf}
 | 
			
		||||
!macroend
 | 
			
		||||
 | 
			
		||||
### Functions
 | 
			
		||||
Function finishPageRunFunction
 | 
			
		||||
    ExecShell "" "$INSTDIR\${PRODUCT_EXE_NAME}"
 | 
			
		||||
FunctionEnd
 | 
			
		||||
 | 
			
		||||
Function finishpageaction
 | 
			
		||||
    CreateShortcut "$desktop\Qcma.lnk" "$instdir\qcma.exe"
 | 
			
		||||
FunctionEnd
 | 
			
		||||
 | 
			
		||||
### Variables
 | 
			
		||||
Var StartMenuFolder
 | 
			
		||||
 | 
			
		||||
### Installer settings
 | 
			
		||||
 | 
			
		||||
# Set compression
 | 
			
		||||
SetCompressor /solid lzma
 | 
			
		||||
 | 
			
		||||
# Require admin rights on NT6+ (When UAC is turned on)
 | 
			
		||||
RequestExecutionLevel admin
 | 
			
		||||
 | 
			
		||||
# This will be in the installer/uninstaller title bar
 | 
			
		||||
Name "${PRODUCT_NAME}"
 | 
			
		||||
OutFile "${PRODUCT_NAME}_setup.exe"
 | 
			
		||||
InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"
 | 
			
		||||
 | 
			
		||||
!define MUI_LANGDLL_ALLLANGUAGES
 | 
			
		||||
!define MUI_ABORTWARNING
 | 
			
		||||
 | 
			
		||||
!define MUI_ICON "qcma.ico"
 | 
			
		||||
!define MUI_UNICON "qcma.ico"
 | 
			
		||||
 | 
			
		||||
## Add installer pages
 | 
			
		||||
!insertmacro MUI_PAGE_WELCOME
 | 
			
		||||
!insertmacro MUI_PAGE_LICENSE "COPYING.rtf"
 | 
			
		||||
!insertmacro MUI_PAGE_DIRECTORY
 | 
			
		||||
!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder
 | 
			
		||||
!insertmacro MUI_PAGE_COMPONENTS
 | 
			
		||||
!insertmacro MUI_PAGE_INSTFILES
 | 
			
		||||
 | 
			
		||||
!define MUI_FINISHPAGE_SHOWREADME ""
 | 
			
		||||
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
 | 
			
		||||
!define MUI_FINISHPAGE_SHOWREADME_TEXT "Create Desktop Shortcut"
 | 
			
		||||
!define MUI_FINISHPAGE_SHOWREADME_FUNCTION finishpageaction
 | 
			
		||||
 | 
			
		||||
!define MUI_FINISHPAGE_RUN ""
 | 
			
		||||
!define MUI_FINISHPAGE_RUN_NOTCHECKED
 | 
			
		||||
!define MUI_FINISHPAGE_RUN_FUNCTION finishPageRunFunction
 | 
			
		||||
!insertmacro MUI_PAGE_FINISH
 | 
			
		||||
 | 
			
		||||
## Add uninstaller pages
 | 
			
		||||
!insertmacro MUI_UNPAGE_CONFIRM
 | 
			
		||||
!insertmacro MUI_UNPAGE_INSTFILES
 | 
			
		||||
!insertmacro MUI_UNPAGE_FINISH
 | 
			
		||||
 | 
			
		||||
## Define languages
 | 
			
		||||
!insertmacro MUI_LANGUAGE "English"
 | 
			
		||||
!insertmacro MUI_LANGUAGE "Spanish"
 | 
			
		||||
!insertmacro MUI_LANGUAGE "Japanese"
 | 
			
		||||
 | 
			
		||||
### Installer
 | 
			
		||||
 
 | 
			
		||||
section "Qcma (required)"
 | 
			
		||||
    SectionIn RO
 | 
			
		||||
 | 
			
		||||
    # Files for the install directory - to build the installer, these should be in the same directory as the install script (this file)
 | 
			
		||||
    SetOutPath $InstDir
 | 
			
		||||
 | 
			
		||||
    # Files added here should be removed by the uninstaller (see section "uninstall")
 | 
			
		||||
 | 
			
		||||
    ${If} ${RunningX64}
 | 
			
		||||
        File "win_x86_64\qcma.exe"
 | 
			
		||||
        File "win_x86_64\qcma_console.exe"
 | 
			
		||||
        File "win_x86_64\avcodec-57.dll"
 | 
			
		||||
        File "win_x86_64\avformat-57.dll"
 | 
			
		||||
        File "win_x86_64\avutil-55.dll"
 | 
			
		||||
        File "win_x86_64\libfreetype-6.dll"
 | 
			
		||||
        File "win_x86_64\libgcc_s_seh-1.dll"
 | 
			
		||||
        File "win_x86_64\libglib-2.0-0.dll"
 | 
			
		||||
        File "win_x86_64\libgraphite2.dll"
 | 
			
		||||
        File "win_x86_64\libharfbuzz-0.dll"
 | 
			
		||||
        File "win_x86_64\libiconv-2.dll"
 | 
			
		||||
        File "win_x86_64\libicudt57.dll"
 | 
			
		||||
        File "win_x86_64\libicuin57.dll"
 | 
			
		||||
        File "win_x86_64\libicuuc57.dll"
 | 
			
		||||
        File "win_x86_64\libjpeg-8.dll"
 | 
			
		||||
        File "win_x86_64\libpcre-1.dll"
 | 
			
		||||
        File "win_x86_64\libpcre16-0.dll"
 | 
			
		||||
        File "win_x86_64\libpng16-16.dll"
 | 
			
		||||
        File "win_x86_64\libsqlite3-0.dll"
 | 
			
		||||
        File "win_x86_64\libstdc++-6.dll"
 | 
			
		||||
        File "win_x86_64\libtiff-5.dll"
 | 
			
		||||
        File "win_x86_64\libusb-1.0.dll"
 | 
			
		||||
        File "win_x86_64\libvitamtp-5.dll"
 | 
			
		||||
        File "win_x86_64\libwinpthread-1.dll"
 | 
			
		||||
        File "win_x86_64\libxml2-2.dll"
 | 
			
		||||
        File "win_x86_64\Qt5Core.dll"
 | 
			
		||||
        File "win_x86_64\Qt5Gui.dll"
 | 
			
		||||
        File "win_x86_64\Qt5Network.dll"
 | 
			
		||||
        File "win_x86_64\Qt5Sql.dll"
 | 
			
		||||
        File "win_x86_64\Qt5Widgets.dll"
 | 
			
		||||
        File "win_x86_64\swresample-2.dll"
 | 
			
		||||
        File "win_x86_64\swscale-4.dll"
 | 
			
		||||
        File "win_x86_64\zlib1.dll"
 | 
			
		||||
        File "win_x86_64\liblzma-5.dll"
 | 
			
		||||
        File "win_x86_64\libbz2-1.dll"
 | 
			
		||||
        File "win_x86_64\libintl-8.dll"
 | 
			
		||||
        
 | 
			
		||||
        SetOutPath "$INSTDIR\platforms"
 | 
			
		||||
        File "win_x86_64\platforms\qwindows.dll"
 | 
			
		||||
        
 | 
			
		||||
        SetOutPath "$INSTDIR\imageformats"
 | 
			
		||||
        File "win_x86_64\imageformats\qgif.dll"
 | 
			
		||||
        File "win_x86_64\imageformats\qjpeg.dll"
 | 
			
		||||
        File "win_x86_64\imageformats\qtiff.dll"
 | 
			
		||||
 | 
			
		||||
        SetOutPath "$INSTDIR\sqldrivers"
 | 
			
		||||
        File "win_x86_64\sqldrivers\qsqlite.dll"
 | 
			
		||||
 | 
			
		||||
        SetOutPath "$INSTDIR\translations"
 | 
			
		||||
        File "win_x86_64\translations\*.qm"
 | 
			
		||||
    ${Else}
 | 
			
		||||
        File "win_i686\qcma.exe"
 | 
			
		||||
        File "win_i686\qcma_console.exe"
 | 
			
		||||
        File "win_i686\avcodec-57.dll"
 | 
			
		||||
        File "win_i686\avformat-57.dll"
 | 
			
		||||
        File "win_i686\avutil-55.dll"
 | 
			
		||||
        File "win_i686\libfreetype-6.dll"
 | 
			
		||||
        File "win_i686\libgcc_s_dw2-1.dll"
 | 
			
		||||
        File "win_i686\libglib-2.0-0.dll"
 | 
			
		||||
        File "win_i686\libgraphite2.dll"
 | 
			
		||||
        File "win_i686\libharfbuzz-0.dll"
 | 
			
		||||
        File "win_i686\libiconv-2.dll"
 | 
			
		||||
        File "win_i686\libicudt57.dll"
 | 
			
		||||
        File "win_i686\libicuin57.dll"
 | 
			
		||||
        File "win_i686\libicuuc57.dll"
 | 
			
		||||
        File "win_i686\libjpeg-8.dll"
 | 
			
		||||
        File "win_i686\libpcre-1.dll"
 | 
			
		||||
        File "win_i686\libpcre16-0.dll"
 | 
			
		||||
        File "win_i686\libpng16-16.dll"
 | 
			
		||||
        File "win_i686\libsqlite3-0.dll"
 | 
			
		||||
        File "win_i686\libstdc++-6.dll"
 | 
			
		||||
        File "win_i686\libtiff-5.dll"
 | 
			
		||||
        File "win_i686\libusb-1.0.dll"
 | 
			
		||||
        File "win_i686\libvitamtp-5.dll"
 | 
			
		||||
        File "win_i686\libwinpthread-1.dll"
 | 
			
		||||
        File "win_i686\libxml2-2.dll"
 | 
			
		||||
        File "win_i686\Qt5Core.dll"
 | 
			
		||||
        File "win_i686\Qt5Gui.dll"
 | 
			
		||||
        File "win_i686\Qt5Sql.dll"
 | 
			
		||||
        File "win_i686\Qt5Network.dll"
 | 
			
		||||
        File "win_i686\Qt5Widgets.dll"
 | 
			
		||||
        File "win_i686\swresample-2.dll"
 | 
			
		||||
        File "win_i686\swscale-4.dll"
 | 
			
		||||
        File "win_i686\zlib1.dll"
 | 
			
		||||
        File "win_i686\liblzma-5.dll"
 | 
			
		||||
        File "win_i686\libbz2-1.dll"
 | 
			
		||||
        File "win_i686\libintl-8.dll"
 | 
			
		||||
        
 | 
			
		||||
        SetOutPath "$INSTDIR\platforms"
 | 
			
		||||
        File "win_i686\platforms\qwindows.dll"
 | 
			
		||||
        
 | 
			
		||||
        SetOutPath "$INSTDIR\imageformats"
 | 
			
		||||
        File "win_i686\imageformats\qgif.dll"
 | 
			
		||||
        File "win_i686\imageformats\qjpeg.dll"
 | 
			
		||||
        File "win_i686\imageformats\qtiff.dll"
 | 
			
		||||
 | 
			
		||||
        SetOutPath "$INSTDIR\sqldrivers"
 | 
			
		||||
        File "win_i686\sqldrivers\qsqlite.dll"
 | 
			
		||||
 | 
			
		||||
        SetOutPath "$INSTDIR\translations"
 | 
			
		||||
        File "win_i686\translations\*.qm"
 | 
			
		||||
 | 
			
		||||
    ${EndIf}
 | 
			
		||||
 | 
			
		||||
    SetOutPath $InstDir\driver
 | 
			
		||||
    File "QcmaDriver_winusb.exe"
 | 
			
		||||
    File "QcmaDriver_libusb0.exe"
 | 
			
		||||
    File "QcmaDriver_libusbk.exe"
 | 
			
		||||
 | 
			
		||||
    # Uninstaller - See function un.onInit and section "uninstall" for configuration
 | 
			
		||||
    WriteUninstaller "$InstDir\uninstall.exe"
 | 
			
		||||
 | 
			
		||||
    SetOutPath $InstDir
 | 
			
		||||
 | 
			
		||||
    # Start Menu
 | 
			
		||||
    !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
 | 
			
		||||
        CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
 | 
			
		||||
        CreateShortCut  "$SMPROGRAMS\$StartMenuFolder\${PRODUCT_NAME}.lnk"                 "$INSTDIR\${PRODUCT_EXE_NAME}"
 | 
			
		||||
        CreateShortCut  "$SMPROGRAMS\$StartMenuFolder\Uninstall ${PRODUCT_NAME}.lnk"     "$INSTDIR\uninstall.exe"
 | 
			
		||||
    !insertmacro MUI_STARTMENU_WRITE_END
 | 
			
		||||
 
 | 
			
		||||
    # Registry information for add/remove programs
 | 
			
		||||
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayName"          "${PRODUCT_NAME}"
 | 
			
		||||
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "UninstallString"      "$\"$INSTDIR\uninstall.exe$\""
 | 
			
		||||
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
 | 
			
		||||
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "InstallLocation"      "$\"$INSTDIR$\""
 | 
			
		||||
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayIcon"          "$\"$INSTDIR\qcma.ico$\""
 | 
			
		||||
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "Publisher"            "${PRODUCT_PUBLISHER}"
 | 
			
		||||
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "URLInfoAbout"         "$\"${PRODUCT_WEB_SITE}$\""
 | 
			
		||||
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayVersion"       "${PRODUCT_VERSION_MAJOR}.${PRODUCT_VERSION_MINOR}.${PRODUCT_VERSION_BUILD}"
 | 
			
		||||
    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "VersionMajor"       ${PRODUCT_VERSION_MAJOR}
 | 
			
		||||
    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "VersionMinor"       ${PRODUCT_VERSION_MINOR}
 | 
			
		||||
    # There is no option for modifying or repairing the install
 | 
			
		||||
    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "NoModify" 1
 | 
			
		||||
    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "NoRepair" 1
 | 
			
		||||
sectionEnd
 | 
			
		||||
 | 
			
		||||
Section "WinUSB driver" WUSB
 | 
			
		||||
   SectionIn 1
 | 
			
		||||
   ExecWait "$InstDir\driver\QcmaDriver_winusb.exe"
 | 
			
		||||
sectionEnd
 | 
			
		||||
 | 
			
		||||
Section /O "libusb0 driver" USBK
 | 
			
		||||
   SectionIn 2
 | 
			
		||||
   ExecWait "$InstDir\driver\QcmaDriver_libusb0.exe"
 | 
			
		||||
sectionEnd
 | 
			
		||||
 | 
			
		||||
Section /O "libusbK driver" USB0
 | 
			
		||||
   SectionIn 3
 | 
			
		||||
   ExecWait "$InstDir\driver\QcmaDriver_libusbk.exe"
 | 
			
		||||
sectionEnd
 | 
			
		||||
 | 
			
		||||
function .onInit
 | 
			
		||||
    setShellVarContext all
 | 
			
		||||
    !insertmacro VerifyUserIsAdmin
 | 
			
		||||
    !insertmacro MUI_LANGDLL_DISPLAY
 | 
			
		||||
 | 
			
		||||
    ${If} ${RunningX64}
 | 
			
		||||
        StrCpy $InstDir "$ProgramFiles64\${PRODUCT_NAME}"
 | 
			
		||||
        SetRegView 64
 | 
			
		||||
    ${Else}
 | 
			
		||||
        StrCpy $InstDir "$ProgramFiles32\${PRODUCT_NAME}"
 | 
			
		||||
    ${EndIf}
 | 
			
		||||
 | 
			
		||||
   StrCpy $1 ${WUSB}
 | 
			
		||||
functionEnd
 | 
			
		||||
 | 
			
		||||
Function .onSelChange
 | 
			
		||||
!insertmacro StartRadioButtons $1
 | 
			
		||||
    !insertmacro RadioButton ${WUSB}
 | 
			
		||||
    !insertmacro RadioButton ${USB0}
 | 
			
		||||
    !insertmacro RadioButton ${USBK}
 | 
			
		||||
!insertmacro EndRadioButtons
 | 
			
		||||
FunctionEnd
 | 
			
		||||
 | 
			
		||||
### Uninstaller
 | 
			
		||||
 
 | 
			
		||||
function un.onInit
 | 
			
		||||
    SetShellVarContext all
 | 
			
		||||
    !insertmacro VerifyUserIsAdmin
 | 
			
		||||
    !insertmacro MUI_LANGDLL_DISPLAY
 | 
			
		||||
functionEnd
 | 
			
		||||
 
 | 
			
		||||
section "uninstall"
 | 
			
		||||
 | 
			
		||||
    # Remove Start Menu launcher
 | 
			
		||||
    !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
 | 
			
		||||
    Delete "$SMPROGRAMS\$StartMenuFolder\${PRODUCT_NAME}.lnk"
 | 
			
		||||
    Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall ${PRODUCT_NAME}.lnk"
 | 
			
		||||
    RMDir "$SMPROGRAMS\$StartMenuFolder"
 | 
			
		||||
    
 | 
			
		||||
    # Remove Desktop launcher
 | 
			
		||||
    Delete "$DESKTOP\${PRODUCT_NAME}.lnk"
 | 
			
		||||
 
 | 
			
		||||
    # Recursively remove the contents of $INSTDIR, then $INSTDIR itself
 | 
			
		||||
    RMDir /r "$INSTDIR"
 | 
			
		||||
    RMDir "$INSTDIR"
 | 
			
		||||
 
 | 
			
		||||
    # Remove uninstaller information from the registry
 | 
			
		||||
    DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
 | 
			
		||||
sectionEnd
 | 
			
		||||
		Reference in New Issue
	
	Block a user