mirror of
https://github.com/dslm4515/BMLFS.git
synced 2025-08-06 11:02:53 +00:00
99 lines
3.8 KiB
Bash
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}/*
|