termux-packages/x11-packages/qt5-qtbase/termux-build-qmake.sh

124 lines
3.0 KiB
Bash
Raw Normal View History

#!/data/data/com.termux/files/usr/bin/bash
##
## A script for building qmake on device.
## Use in Termux only !
##
## Usage:
##
## ./termux-build-qmake.sh
set -e
TERMUX_PREFIX=/data/data/com.termux/files/usr
if [ $(uname -o) != Android ]; then
echo "This script should be run in Termux !"
exit 1
fi
if [ -e "build.sh" ]; then
source ./build.sh
fi
apt update
apt upgrade -y
apt install -y coreutils clang curl debianutils make
hash -r
## Override function from build.sh since we are
## building for host.
termux_step_configure () {
export PKG_CONFIG_SYSROOT_DIR="${TERMUX_PREFIX}"
./configure -v \
-opensource \
-confirm-license \
-release \
-platform termux \
-shared \
-no-rpath \
-no-use-gold-linker \
-prefix "${TERMUX_PREFIX}" \
-docdir "${TERMUX_PREFIX}/share/doc/qt" \
-archdatadir "${TERMUX_PREFIX}/lib/qt" \
-datadir "${TERMUX_PREFIX}/share/qt" \
-plugindir "${TERMUX_PREFIX}/libexec/qt" \
-nomake examples \
-no-pch \
-no-accessibility \
-no-glib \
-icu \
-system-pcre \
-system-zlib \
-system-freetype \
-ssl \
-openssl-linked \
-no-system-proxies \
-no-cups \
-system-harfbuzz \
-no-opengl \
-no-vulkan \
-qpa xcb \
-no-eglfs \
-no-gbm \
-no-kms \
-no-linuxfb \
-no-mirclient \
-no-libudev \
-no-evdev \
-no-libinput \
-no-mtdev \
-no-tslib \
-system-xcb \
-no-xcb-xinput \
-gif \
-system-libpng \
-system-libjpeg \
-system-sqlite \
-sql-sqlite \
-no-feature-systemsemaphore
}
if [ ! -e "qtbase-everywhere-src-${TERMUX_PKG_VERSION}.tar.xz" ]; then
echo "[*] Downloading Qt sources..."
curl -L --output "qtbase-everywhere-src-${TERMUX_PKG_VERSION}.tar.xz" "${TERMUX_PKG_SRCURL}"
fi
echo "[*] Unpacking Qt sources..."
rm -rf "qtbase-everywhere-src-${TERMUX_PKG_VERSION}"
tar xf "qtbase-everywhere-src-${TERMUX_PKG_VERSION}.tar.xz"
cd "qtbase-everywhere-src-${TERMUX_PKG_VERSION}" && {
## Patch the source
for i in `ls ../*.patch`; do
patch -p1 -Ni "${i}"
done
unset i
## We need only qmake generated by configure, so ignoring
## errors here.
set +e
echo "[*] Running ./configure..."
termux_step_configure
set -e
cd qmake && {
## Bootstrap qmake.
echo "[*] Bootstrapping qmake..."
../bin/qmake -spec termux -o Makefile.qmake-aux qmake-aux.pro
make -f Makefile.qmake-aux
## Just verify.
echo "[*] Verifying..."
./qmake -spec termux -o Makefile.qmake-aux qmake-aux.pro
make -f Makefile.qmake-aux
cd -
}
cd ../
}
echo "[*] Done. Check file './qmake-$(uname -m)-linux-android'."
cp "qtbase-everywhere-src-${TERMUX_PKG_VERSION}/qmake/qmake" "./qmake-$(uname -m)-linux-android"