1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00
qTox/buildscripts/build_qt_windows.sh
Anthony Bilinski 9bf17acca6
chore(CI): Handle build scripts called with relative paths with spaces
foo=dirname "$0" only works if the script is called with an absolute path and
that path contains no spaces. Add quotes everywhere to contain spaces in
directory names or file names, and add realpath to get the absolute path
regardless of call path.

Not necessarily needed, but like in e405868037
it can avoid some annoying issues when e.g. that script was called with a
relative path in CI.
2022-03-13 06:20:44 -07:00

99 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# SPDX-License-Identifier: GPL-3.0-or-later AND MIT
# Copyright (c) 2017-2021 Maxim Biro <nurupo.contributions@gmail.com>
# Copyright (c) 2021 by The qTox Project Contributors
set -euo pipefail
usage()
{
echo "Download and build qt for the windows cross compiling environment"
echo "Usage: $0 --arch {win64|win32}"
}
ARCH=""
while (( $# > 0 )); do
case $1 in
--arch) ARCH=$2; shift 2 ;;
-h|--help) usage; exit 1 ;;
*) echo "Unexpected argument $1"; usage; exit 1;;
esac
done
if [[ "$ARCH" == "win64" ]]; then
CROSS="x86_64-w64-mingw32-"
elif [[ "$ARCH" == "win32" ]]; then
CROSS="i686-w64-mingw32-"
else
echo "Unexpected arch $ARCH"
usage
exit 1
fi
"$(dirname "$(realpath "$0")")/download/download_qt.sh"
OPENSSL_LIBS=$(pkg-config --libs openssl)
export OPENSSL_LIBS
./configure -prefix /windows/ \
-release \
-shared \
-device-option CROSS_COMPILE=${CROSS} \
-xplatform win32-g++ \
-openssl \
"$(pkg-config --cflags openssl)" \
-opensource -confirm-license \
-pch \
-nomake examples \
-nomake tools \
-nomake tests \
-skip 3d \
-skip activeqt \
-skip androidextras \
-skip canvas3d \
-skip charts \
-skip connectivity \
-skip datavis3d \
-skip declarative \
-skip doc \
-skip gamepad \
-skip graphicaleffects \
-skip imageformats \
-skip location \
-skip macextras \
-skip multimedia \
-skip networkauth \
-skip purchasing \
-skip quickcontrols \
-skip quickcontrols2 \
-skip remoteobjects \
-skip script \
-skip scxml \
-skip sensors \
-skip serialbus \
-skip serialport \
-skip speech \
-skip translations \
-skip virtualkeyboard \
-skip wayland \
-skip webchannel \
-skip webengine \
-skip webglplugin \
-skip websockets \
-skip webview \
-skip x11extras \
-skip xmlpatterns \
-no-dbus \
-no-icu \
-no-compile-examples \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-qt-pcre \
-opengl desktop
make -j $(nproc)
make install