#! /bin/bash # qt6-base # Source: https://download.qt.io/official_releases/qt/6.5/6.5.2/submodules/qtbase-everywhere-src-6.5.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/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/ && sudo mv -v opt/qt6 opt/qt6-6.5.2 && sudo ln -sv qt6-6.5.2 opt/qt6 && sudo -S makepkg -l y -c n $PKGS/qt6-qtbase-6.5.2-$PSUFFIX && sudo -S rm -rf ${BUILD}/*