Files
BMLFS/build-scripts/qt6-qtbase.build
dslm4515 0e180b2d52 Upgraded Qt6 from 6.6.1 to 6.7.2
Upgrades QtBase, QtDeclarative, QtShaderTools, QtSVG, QtTools, and Qt6-Qt5-compat
2024-08-09 12:14:28 -05:00

99 lines
3.8 KiB
Bash

#! /bin/bash
# qt6-base
# Source: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtbase-everywhere-src-6.7.2.tar.xz
#
# $BUILD = Directory to temporarily install
# $PKGS = Directory to store built packages
#
# DEPS
# Required: double-conversion dbus libxcb xcb-util-image xcb-util-keysym
# Required: xcb-util-renderutil xcb-util-wm cb-util-cursor mesa glib pcre2
# Required: mtdev icu harfbuzz libpng libinput brotli sqlite wayland
# Required: vulkan-headers vulkan-loader
# Recommended: NONE
# Optional: libproxy tslib
# Apply patches from Chimera Linux
patch -Np1 -i ../patches/qt6-base-chimera/foortify.patch
patch -Np1 -i ../patches/qt6-base-chimera/lfs64.patch
patch -Np1 -i ../patches/qt6-base-chimera/musl-usr-path-hack.patch
# Set paths
export CMO="-DINSTALL_DATADIR=/opt/qt6/share "
export CMO+="-DINSTALL_ARCHDATADIR=/opt/qt6/lib "
export CMO+="-DINSTALL_BINDIR=/opt/qt6/bin "
export CMO+="-DINSTALL_DOCDIR=/opt/qt6/share/doc "
export CMO+="-DINSTALL_MKSPECSDIR=/opt/qt6/lib/mkspecs "
export CMO+="-DINSTALL_INCLUDEDIR=/opt/qt6/include "
export CMO+="-DINSTALL_EXAMPLESDIR=/opt/qt6/lib/examples "
export CMO+="-DINSTALL_TESTSDIR=/opt/qt6/lib/tests "
export CMO+="-DINSTALL_SYSCONFDIR=/opt/qt6/etc/xdg "
# Turn on features
export CMO+="-DQT_FEATURE_journald=OFF "
export CMO+="-DQT_FEATURE_reduce_relocations=OFF "
export CMO+="-DQT_FEATURE_openssl_linked=ON "
export CMO+="-DQT_FEATURE_system_xcb_xinput=ON "
export CMO+="-DQT_FEATURE_system_sqlite=ON "
export CMO+="-DQT_FEATURE_libproxy=ON "
export CMO+="-DQT_FEATURE_syslog=ON "
export CMO+="-DQT_FEATURE_vulkan=ON "
export CMO+="-DQT_FEATURE_qmake=ON "
export CMO+="-DQT_FEATURE_xcb=ON "
export CMO+="-DBUILD_WITH_PCH=OFF "
export CMO+="-DQT_BUILD_TESTS=OF "
export CMO+="-DQT_FEATURE_opengles2=ON "
export CMO+="-DQT_FEATURE_opengles3=ON "
export CMO+="-DQT_FEATURE_opengles31=ON "
export CMO+="-DQT_FEATURE_opengles32=ON "
# LibreSSL is not supported.
# Set the paths for OpenSSL headers and libraries:
export CMO+="-DOPENSSL_CRYPTO_LIBRARY=/opt/openssl/lib/libcrypto.so "
export CMO+="-DOPENSSL_INCLUDE_DIR=/opt/openssl/include "
export CMO+="-DOPENSSL_SSL_LIBRARY=/opt/openssl/lib/libssl.so "
export CMO+="-DCMAKE_BUILD_RPATH=/opt/openssl/lib:/opt/Xorg/lib "
export CMO+="-DCMAKE_INSTALL_RPATH=/opt/openssl/lib:/opt/Xorg/lib "
# Configure source
cmake -B OUT -DCMAKE_INSTALL_PREFIX=/opt/qt6 \
-DCMAKE_BUILD_TYPE="Release" \
-DCMAKE_FIND_ROOT_PATH=/opt/Xorg $CMO -G Ninja
# Compile
#read -p "Compile?" && ninja -C OUT -j2 &&
cmake --build OUT --parallel
# Install
#sudo -S DESTDIR=$BUILD ninja -C OUT install &&
sudo -E DESTDIR=$BUILD cmake --install OUT
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
find "$BUILD/opt/qt6/lib" -type f -name '*.prl' \
-exec sudo sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
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------------------------------------------------------|
qt6-qtbase: qt6-qtbase - QtBase module
qt6-qtbase:
qt6-qtbase: A cross-platform application and UI framework callled Qt (6.x)
qt6-qtbase:
qt6-qtbase: https://download.qt.io
qt6-qtbase:
EOF
sudo -S mv -v /tmp/slack-desc install/ &&
# Will likely not install different Qt6 versions
#sudo mv -v opt/qt6 opt/qt6-6.6.1 &&
#sudo ln -sv qt6-6.6.1 opt/qt6 &&
sudo -S makepkg -l y -c n $PKGS/qt6-qtbase-6.7.2-$PSUFFIX &&
sudo -S rm -rf ${BUILD}/*