mirror of
https://github.com/dslm4515/BMLFS.git
synced 2025-08-20 14:31:47 +00:00
122 lines
5.7 KiB
Bash
122 lines
5.7 KiB
Bash
#! /bin/bash
|
|
|
|
# QT5
|
|
# Source: https://download.qt.io/archive/qt/5.15/5.15.1/single/qt-everywhere-src-5.15.1.tar.xz
|
|
#
|
|
# $BUILD = Directory to temporarily install
|
|
# $PKGS = Directory to store built packages
|
|
#
|
|
# DEPS
|
|
# Required: Xorg-Libs
|
|
# Recommended: alsa-lib, ca-certificates, Cups, GLib, gst-plugins-base, HarfBuzz, ICU, JasPer,
|
|
# Recommended: libjpeg-turbo, libmng, libpng, LibTIFF, libwebp, libxkbcommon, Mesa, MIT Kerberos,
|
|
# Recommended: mtdev, pcre2, SQLite, Wayland, xcb-util-image, xcb-util-keysyms, xcb-util, xcb-util-wm
|
|
# Optional: BlueZ, ibus, libinput, MariaDB or MySQL, pciutils, PostgreSQL, Python 2, PulseAudio,
|
|
# Optional: SDL2, unixODBC, assimp, Flite, Firebird, FreeTDS, libproxy, OpenAL, speech-dispatcher,
|
|
# Optional: tslib, and Vulkan
|
|
|
|
patch -Np0 -i ../patches/qt5-5.15.1-void/0001-addlr.patch
|
|
patch -Np0 -i ../patches/qt5-5.15.1-void/0002-gl-lib-dir.patch
|
|
patch -Np0 -i ../patches/qt5-5.15.1-void/0007-musl-iconv-no-bom.patch
|
|
patch -Np0 -i ../patches/qt5-5.15.1-void/0014-musl-set_thread_name_np.patch
|
|
patch -Np0 -i ../patches/qt5-5.15.1-void/0016-musl-stackbottom.patch
|
|
patch -Np0 -i ../patches/qt5-5.15.1-void/0018-musl-timeval.patch
|
|
patch -Np0 -i ../patches/qt5-5.15.1-void/0048-big-endian-qtquick-software.patch
|
|
patch -Np0 -i ../patches/qt5-5.15.1-void/0049-big-endian-scroll.patch
|
|
patch -Np0 -i ../patches/qt5-5.15.1-void/0050-qmake-mkspecs.patch
|
|
patch -Np0 -i ../patches/qt5-5.15.1-void/0060-upstream-65243ad7.patch
|
|
patch -Np0 -i ../patches/qt5-5.15.1-void/qtnetwork-5.15.0-libressl.patch
|
|
|
|
export CFLAGS="-DOPENSSL_NO_PSK -DOPENSSL_NO_NEXTPROTONEG"
|
|
export CXXFLAGS="${CFLAGS} -Wno-deprecated-declarations -Wno-class-memaccess -Wno-packed-not-aligned"
|
|
export LDFLAGS="-pthread -ldl -fPIE -Wl,-z,stack-size=2097152 -Wl,--no-keep-memory"
|
|
export QT5PREFIX=/opt/qt5 &&
|
|
export LD_LIBRARY_PATH=${PWD}/qtbase/lib:${PWD}/qttools/lib:${LD_LIBRARY_PATH} &&
|
|
sudo -S mkdir -pv ${BUILD}/opt/qt-5.15.1 &&
|
|
sudo -S ln -sfnv qt-5.15.1 ${BUILD}/opt/qt5 &&
|
|
|
|
# Allows using Python 3 instead of Python 2. This command destroys the build for QtWebEngine
|
|
sed -i 's/python /python3 /' qtdeclarative/qtdeclarative.pro \
|
|
qtdeclarative/src/3rdparty/masm/masm.pri &&
|
|
MAKE=/usr/bin/make \
|
|
CC="cc" CXX="c++" CPP="cpp" LD="c++" AR="ar" AS="as" NM="nm" \
|
|
OBJDUMP="objdump" STRIP="strip" RANLIB="ranlib" \
|
|
CFLAGS=$CFLAGS \
|
|
CXXFLAGS=$CXXFLAGS \
|
|
LDFLAGS=$LDFLAGS \
|
|
./configure -prefix $QT5PREFIX \
|
|
-sysconfdir /etc/xdg \
|
|
-confirm-license \
|
|
-opensource \
|
|
-dbus-linked \
|
|
-openssl-linked \
|
|
-system-harfbuzz \
|
|
-system-sqlite \
|
|
-nomake examples \
|
|
-no-rpath \
|
|
-fontconfig -icu \
|
|
-no-pch -no-strip \
|
|
-optimized-qmake -no-feature-eglfs_brcm \
|
|
-no-use-gold-linker -system-libjpeg \
|
|
-system-libpng -system-zlib \
|
|
-system-pcre -no-separate-debug-info \
|
|
-opengl -no-reduce-relocations \
|
|
-skip qtwebengine &&
|
|
|
|
read -p "Compile?" && make -j2 &&
|
|
|
|
sudo -S make INSTALL_ROOT=$BUILD install &&
|
|
unset CFLAGS CXXFLAGS LDFLAGS LD_LIBRARY_PATH &&
|
|
sudo -S -E find ${BUILD}/opt/qt5/ -name \*.prl \
|
|
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \; &&
|
|
sudo -S install -v -dm755 ${BUILD}/usr/share/pixmaps/ &&
|
|
sudo -S install -v -Dm644 qttools/src/assistant/assistant/images/assistant-128.png \
|
|
${BUILD}/usr/share/pixmaps/assistant-qt5.png &&
|
|
|
|
sudo -S install -v -Dm644 qttools/src/designer/src/designer/images/designer.png \
|
|
${BUILD}/usr/share/pixmaps/designer-qt5.png &&
|
|
|
|
sudo -S install -v -Dm644 qttools/src/linguist/linguist/images/icons/linguist-128-32.png \
|
|
${BUILD}/usr/share/pixmaps/linguist-qt5.png &&
|
|
|
|
sudo -S install -v -Dm644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
|
|
${BUILD}/usr/share/pixmaps/qdbusviewer-qt5.png &&
|
|
sudo -S install -dm755 ${BUILD}/usr/share/applications &&
|
|
for d in assistant-qt5.desktop designer-qt5.desktop \
|
|
linguist-qt5.desktop qdbusviewer-qt5.desktop; do
|
|
sudo -S cp -v ../files/qt5-lfs/$d ${BUILD}/usr/share/applications/
|
|
done &&
|
|
sudo -S mkdir -pv ${BUILD}/usr/bin &&
|
|
for file in moc uic rcc qmake lconvert lrelease lupdate; do
|
|
sudo -S ln -sv /opt/qt5/bin/$file ${BUILD}/usr/bin/$file-qt5
|
|
done
|
|
sudo -S mkdir -pv ${BUILD}/etc/profile.d/ &&
|
|
sudo -S cp -v ../files/qt5-lfs/qt5.sh ${BUILD}/etc/profile.d/ &&
|
|
sudo -S chmod -v +x ${BUILD}/etc/profile.d/qt5.sh &&
|
|
|
|
cd $BUILD && sudo -S mkdir -v ${BUILD}/install &&
|
|
cat > /tmp/slack-desc << "EOF"
|
|
# HOW TO EDIT THIS FILE:
|
|
# The "handy ruler" below makes it easier to edit a package description. Line
|
|
# up the first '|' above the ':' following the base package name, and the '|'
|
|
# on the right side marks the last column you can put a character in. You must
|
|
# make exactly 11 lines for the formatting to be correct. It's also
|
|
# customary to leave one space after the ':' except on otherwise blank lines.
|
|
|
|
|-----handy-ruler------------------------------------------------------|
|
|
qt5: qt5 (a multi-platform C++ graphical user interface toolkit)
|
|
qt5:
|
|
qt5: Qt is a cross-platform C++ application framework. Qt's primary feature
|
|
qt5: is its rich set of widgets that provide standard GUI functionality.
|
|
qt5:
|
|
qt5: Homepage: http://qt-project.org
|
|
qt5:
|
|
qt5:
|
|
qt5:
|
|
qt5:
|
|
qt5:
|
|
EOF
|
|
sudo -S mv -v /tmp/slack-desc install/ &&
|
|
sudo -S makepkg -l y -c n $PKGS/qt5-5.15.1-$(uname -m)-mlfs.txz &&
|
|
sudo -S rm -rf ${BUILD}/*
|