124 lines
3.0 KiB
Bash
124 lines
3.0 KiB
Bash
|
#!/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"
|