From 82f01669222f056b38e646c5e74f2d3bd82502d1 Mon Sep 17 00:00:00 2001 From: Martchus Date: Thu, 17 Aug 2023 15:44:05 +0200 Subject: [PATCH] Add PKGBUILDs for additional Qt 6 modules These haven't been tested yet and I'm not sure whether it makes sense to add them by default to the build yet. However, they might be useful in the future. --- qt6-grpc/android-aarch64/PKGBUILD | 51 +++++++++++++++++ qt6-grpc/android-aarch64/PKGBUILD.sh.ep | 11 ++++ qt6-grpc/mingw-w64-static/PKGBUILD | 50 ++++++++++++++++ qt6-grpc/mingw-w64-static/PKGBUILD.sh.ep | 1 + qt6-grpc/mingw-w64/PKGBUILD | 56 ++++++++++++++++++ qt6-grpc/mingw-w64/PKGBUILD.sh.ep | 11 ++++ qt6-grpc/static-compat/PKGBUILD | 50 ++++++++++++++++ qt6-grpc/static-compat/PKGBUILD.sh.ep | 11 ++++ qt6-httpserver/android-aarch64/PKGBUILD | 52 +++++++++++++++++ qt6-httpserver/android-aarch64/PKGBUILD.sh.ep | 12 ++++ qt6-httpserver/mingw-w64-static/PKGBUILD | 51 +++++++++++++++++ .../mingw-w64-static/PKGBUILD.sh.ep | 1 + qt6-httpserver/mingw-w64/PKGBUILD | 57 +++++++++++++++++++ qt6-httpserver/mingw-w64/PKGBUILD.sh.ep | 12 ++++ qt6-httpserver/static-compat/PKGBUILD | 51 +++++++++++++++++ qt6-httpserver/static-compat/PKGBUILD.sh.ep | 12 ++++ qt6-websockets/static-compat/PKGBUILD | 51 +++++++++++++++++ qt6-websockets/static-compat/PKGBUILD.sh.ep | 12 ++++ 18 files changed, 552 insertions(+) create mode 100644 qt6-grpc/android-aarch64/PKGBUILD create mode 100644 qt6-grpc/android-aarch64/PKGBUILD.sh.ep create mode 100644 qt6-grpc/mingw-w64-static/PKGBUILD create mode 100644 qt6-grpc/mingw-w64-static/PKGBUILD.sh.ep create mode 100644 qt6-grpc/mingw-w64/PKGBUILD create mode 100644 qt6-grpc/mingw-w64/PKGBUILD.sh.ep create mode 100644 qt6-grpc/static-compat/PKGBUILD create mode 100644 qt6-grpc/static-compat/PKGBUILD.sh.ep create mode 100644 qt6-httpserver/android-aarch64/PKGBUILD create mode 100644 qt6-httpserver/android-aarch64/PKGBUILD.sh.ep create mode 100644 qt6-httpserver/mingw-w64-static/PKGBUILD create mode 100644 qt6-httpserver/mingw-w64-static/PKGBUILD.sh.ep create mode 100644 qt6-httpserver/mingw-w64/PKGBUILD create mode 100644 qt6-httpserver/mingw-w64/PKGBUILD.sh.ep create mode 100644 qt6-httpserver/static-compat/PKGBUILD create mode 100644 qt6-httpserver/static-compat/PKGBUILD.sh.ep create mode 100644 qt6-websockets/static-compat/PKGBUILD create mode 100644 qt6-websockets/static-compat/PKGBUILD.sh.ep diff --git a/qt6-grpc/android-aarch64/PKGBUILD b/qt6-grpc/android-aarch64/PKGBUILD new file mode 100644 index 00000000..9419edf6 --- /dev/null +++ b/qt6-grpc/android-aarch64/PKGBUILD @@ -0,0 +1,51 @@ +# Maintainer: Martchus + +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + +_android_arch=aarch64 +pkgname=android-$_android_arch-qt6-grpc +_qtver=6.5.2 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(any) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Provides the modules QtGrpc and QtProtobuf (android)' +depends=('android-aarch64-qt6-base') +makedepends=('android-cmake' 'protobuf' 'qt6-base' 'ninja' 'java-environment-openjdk>=11') +options=('!strip' '!buildflags' 'staticlibs' '!emptydirs') +groups=(android-${_android_arch}-qt6) +_pkgfqn="qtgrpc-everywhere-src-${_qtver}" +source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz") +sha256sums=('qtgrpc-sha256.txt missing') + +build() { + source android-env ${_android_arch} + android-${_android_arch}-cmake -G Ninja -B build-$_android_arch -S $_pkgfqn \ + -DCMAKE_FIND_ROOT_PATH="${ANDROID_PREFIX}" \ + -DQT_BINARY_DIR=${ANDROID_PREFIX_BIN} \ + -DQT_INCLUDE_DIRS_NO_SYSTEM=ON \ + -DQT_HOST_PATH=/usr \ + -DANDROID_SDK_ROOT=${ANDROID_HOME} \ + -DANDROID_NDK_ROOT=${ANDROID_NDK_HOME} \ + -DANDROID_STL="c++_shared" \ + -DFEATURE_pkg_config=ON + cmake --build build-$_android_arch +} + +package() { + DESTDIR="$pkgdir" cmake --install build-$_android_arch + + # Drop QMAKE_PRL_BUILD_DIR because reference the build dir + find "$pkgdir/${ANDROID_PREFIX}" -type f -name '*.prl' \ + -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \; + + find ${pkgdir}/${ANDROID_PREFIX} -type f -name 'lib*.so' -exec ${ANDROID_STRIP} -g --strip-unneeded {} \; + find ${pkgdir}/${ANDROID_PREFIX} -type f -name 'lib*.a' -exec ${ANDROID_STRIP} -g {} \; + [[ -d "${pkgdir}/${ANDROID_PREFIX}/share/doc" ]] && rm -r "${pkgdir}/${ANDROID_PREFIX}/share/doc" || true + + install -d "$pkgdir"/usr/share/licenses + ln -s /usr/share/licenses/android-$_android_arch-qt6-base "$pkgdir"/usr/share/licenses/$pkgname + +} diff --git a/qt6-grpc/android-aarch64/PKGBUILD.sh.ep b/qt6-grpc/android-aarch64/PKGBUILD.sh.ep new file mode 100644 index 00000000..6a488144 --- /dev/null +++ b/qt6-grpc/android-aarch64/PKGBUILD.sh.ep @@ -0,0 +1,11 @@ +% layout 'android-qt6-module'; +\ +_qtver=6.5.2 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(any) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Provides the modules QtGrpc and QtProtobuf (android)' +depends=(<%== qt6deps qw(base) %>) +makedepends=('android-cmake<%== $static_suffix %>' 'protobuf' 'qt6-base' 'ninja' 'java-environment-openjdk>=11') diff --git a/qt6-grpc/mingw-w64-static/PKGBUILD b/qt6-grpc/mingw-w64-static/PKGBUILD new file mode 100644 index 00000000..fe7ed9cf --- /dev/null +++ b/qt6-grpc/mingw-w64-static/PKGBUILD @@ -0,0 +1,50 @@ +# Maintainer: Martchus + +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + +pkgname=mingw-w64-qt6-grpc-static +_qtver=6.5.2 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(any) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Provides the modules QtGrpc and QtProtobuf (mingw-w64)' +depends=('mingw-w64-qt6-base-static' 'mingw-w64-grpc') +makedepends=('mingw-w64-cmake-static' 'mingw-w64-protobuf' 'protobuf' 'qt6-base' 'ninja') +options=('!strip' '!buildflags' 'staticlibs' '!emptydirs') +groups=(mingw-w64-qt6) +_pkgfqn="qtgrpc-everywhere-src-${_qtver}" +source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz") +sha256sums=('qtgrpc-sha256.txt missing') + +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' + +build() { + for _arch in ${_architectures}; do + export PKG_CONFIG=/usr/bin/$_arch-pkg-config + $_arch-cmake-static -G Ninja -B build-$_arch -S $_pkgfqn \ + -DCMAKE_INSTALL_PREFIX:PATH="/usr/$_arch/static" \ + -DCMAKE_DISABLE_FIND_PACKAGE_harfbuzz=TRUE \ + -DFEATURE_static_runtime=ON \ + -DFEATURE_pkg_config=ON + cmake --build build-$_arch + done +} + +package() { + for _arch in ${_architectures}; do + DESTDIR="$pkgdir" cmake --install build-$_arch + + find "$pkgdir/usr/$_arch" -iname '*.exe' -exec $_arch-strip --strip-all {} \; + find "$pkgdir/usr/$_arch" -iname '*.dll' -exec $_arch-strip --strip-unneeded {} \; + find "$pkgdir/usr/$_arch" -iname '*.a' -exec $_arch-strip -g {} \; + [[ -d "$pkgdir/usr/$_arch/static/share/doc" ]] && rm -r "$pkgdir/usr/$_arch/static/share/doc" + done + + install -d "$pkgdir"/usr/share/licenses + ln -s /usr/share/licenses/mingw-w64-qt6-base-static "$pkgdir"/usr/share/licenses/$pkgname + +} + diff --git a/qt6-grpc/mingw-w64-static/PKGBUILD.sh.ep b/qt6-grpc/mingw-w64-static/PKGBUILD.sh.ep new file mode 100644 index 00000000..87756da4 --- /dev/null +++ b/qt6-grpc/mingw-w64-static/PKGBUILD.sh.ep @@ -0,0 +1 @@ +%= include "$default_package_name/mingw-w64/PKGBUILD"; diff --git a/qt6-grpc/mingw-w64/PKGBUILD b/qt6-grpc/mingw-w64/PKGBUILD new file mode 100644 index 00000000..f18fd56d --- /dev/null +++ b/qt6-grpc/mingw-w64/PKGBUILD @@ -0,0 +1,56 @@ +# Maintainer: Martchus + +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + +pkgname=mingw-w64-qt6-grpc +_qtver=6.5.2 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(any) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Provides the modules QtGrpc and QtProtobuf (mingw-w64)' +depends=('mingw-w64-qt6-base' 'mingw-w64-grpc') +makedepends=('mingw-w64-cmake' 'mingw-w64-protobuf' 'protobuf' 'qt6-base' 'ninja') +options=('!strip' '!buildflags' 'staticlibs' '!emptydirs') +groups=(mingw-w64-qt6) +_pkgfqn="qtgrpc-everywhere-src-${_qtver}" +source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz") +sha256sums=('qtgrpc-sha256.txt missing') + +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' + +build() { + for _arch in ${_architectures}; do + export PKG_CONFIG=/usr/bin/$_arch-pkg-config + $_arch-cmake -G Ninja -B build-$_arch -S $_pkgfqn \ + -DFEATURE_pkg_config=ON + cmake --build build-$_arch + done +} + +package() { + for _arch in ${_architectures}; do + DESTDIR="$pkgdir" cmake --install build-$_arch + + # Add symlinks of DLLs in usual bin directory + mkdir -p "$pkgdir/usr/bin" "$pkgdir/usr/$_arch/bin" + for dll in "$pkgdir"/usr/$_arch/lib/qt6/bin/*.dll; do + ln -rs "$dll" "$pkgdir/usr/$_arch/bin/${dll##*/}" + done + + # Drop QMAKE_PRL_BUILD_DIR because reference the build dir + find "$pkgdir/usr/$_arch/lib" -type f -name '*.prl' \ + -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \; + + find "$pkgdir/usr/$_arch" -iname '*.exe' -exec $_arch-strip --strip-all {} \; + find "$pkgdir/usr/$_arch" -iname '*.dll' -exec $_arch-strip --strip-unneeded {} \; + find "$pkgdir/usr/$_arch" -iname '*.a' -exec $_arch-strip -g {} \; + [[ -d "$pkgdir/usr/$_arch/share/doc" ]] && rm -r "$pkgdir/usr/$_arch/share/doc" + done + + install -d "$pkgdir"/usr/share/licenses + ln -s /usr/share/licenses/mingw-w64-qt6-base "$pkgdir"/usr/share/licenses/$pkgname + +} diff --git a/qt6-grpc/mingw-w64/PKGBUILD.sh.ep b/qt6-grpc/mingw-w64/PKGBUILD.sh.ep new file mode 100644 index 00000000..7b17c263 --- /dev/null +++ b/qt6-grpc/mingw-w64/PKGBUILD.sh.ep @@ -0,0 +1,11 @@ +% layout 'mingw-w64-qt6-module'; +\ +_qtver=6.5.2 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(any) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Provides the modules QtGrpc and QtProtobuf (mingw-w64)' +depends=(<%== qt6deps qw(base) %> 'mingw-w64-grpc') +makedepends=('mingw-w64-cmake<%== $static_suffix %>' 'mingw-w64-protobuf' 'protobuf' 'qt6-base' 'ninja') diff --git a/qt6-grpc/static-compat/PKGBUILD b/qt6-grpc/static-compat/PKGBUILD new file mode 100644 index 00000000..2f1338e2 --- /dev/null +++ b/qt6-grpc/static-compat/PKGBUILD @@ -0,0 +1,50 @@ +# Maintainer: Martchus + +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + +pkgname=static-compat-qt6-grpc +_qtver=6.5.2 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(x86_64) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Provides the modules QtGrpc and QtProtobuf' +depends=(static-compat-qt6-base) +makedepends=(static-compat-cmake protobuf ninja) +options=('!strip' '!buildflags' 'staticlibs' '!emptydirs') +_pkgfqn="qtgrpc-everywhere-src-${_qtver}" +source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz") +sha256sums=('qtgrpc-sha256.txt missing') + +build() { + check_buildoption ccache y && ccache_args=' + -DCMAKE_C_COMPILER_LAUNCHER=ccache + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache' + source static-compat-environment + export PATH=$PWD:$PATH + printf '#!/usr/bin/bash\nexec /usr/bin/pkg-config --static "$@"\n' > pkg-config + chmod +x pkg-config + static-compat-cmake -G Ninja -B build -S $_pkgfqn \ + $ccache_args \ + -DCMAKE_SKIP_INSTALL_RPATH=ON \ + -DGLIB2_USE_PKG_CONFIG=ON \ + -DWAYLAND_USE_PKG_CONFIG=ON \ + -DCMAKE_DISABLE_FIND_PACKAGE_harfbuzz=TRUE \ + -DQT_FEATURE_static_runtime=ON \ + -DFEATURE_pkg_config=ON + VERBOSE=1 cmake --build build +} + +package() { + source static-compat-environment + DESTDIR="$pkgdir" cmake --install build + + # Drop QMAKE_PRL_BUILD_DIR because reference the build dir + find "$pkgdir/$static_compat_prefix/lib" -type f -name '*.prl' \ + -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \; + + install -d "$pkgdir"/usr/share/licenses + ln -s /usr/share/licenses/static-compat-qt6-base "$pkgdir"/usr/share/licenses/$pkgname +} diff --git a/qt6-grpc/static-compat/PKGBUILD.sh.ep b/qt6-grpc/static-compat/PKGBUILD.sh.ep new file mode 100644 index 00000000..0e969666 --- /dev/null +++ b/qt6-grpc/static-compat/PKGBUILD.sh.ep @@ -0,0 +1,11 @@ +% layout 'static-compat-qt6-module'; +\ +_qtver=6.5.2 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(x86_64) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Provides the modules QtGrpc and QtProtobuf' +depends=(<%== qt6deps qw(base) %>) +makedepends=(static-compat-cmake protobuf ninja) diff --git a/qt6-httpserver/android-aarch64/PKGBUILD b/qt6-httpserver/android-aarch64/PKGBUILD new file mode 100644 index 00000000..3e04bb63 --- /dev/null +++ b/qt6-httpserver/android-aarch64/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer: Martchus + +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + +_android_arch=aarch64 +pkgname=android-$_android_arch-qt6-httpserver +_qtver=6.5.2 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(any) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Qt HTTP Server (android)' +depends=('android-aarch64-qt6-base') +optdepends=('android-aarch64-qt6-declarative: QML bindings') +makedepends=('android-cmake' 'android-aarch64-qt6-declarative' 'qt6-base' 'qt6-declarative' 'ninja' 'java-environment-openjdk>=11') +options=('!strip' '!buildflags' 'staticlibs' '!emptydirs') +groups=(android-${_android_arch}-qt6) +_pkgfqn="qthttpserver-everywhere-src-${_qtver}" +source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz") +sha256sums=('qthttpserver-sha256.txt missing') + +build() { + source android-env ${_android_arch} + android-${_android_arch}-cmake -G Ninja -B build-$_android_arch -S $_pkgfqn \ + -DCMAKE_FIND_ROOT_PATH="${ANDROID_PREFIX}" \ + -DQT_BINARY_DIR=${ANDROID_PREFIX_BIN} \ + -DQT_INCLUDE_DIRS_NO_SYSTEM=ON \ + -DQT_HOST_PATH=/usr \ + -DANDROID_SDK_ROOT=${ANDROID_HOME} \ + -DANDROID_NDK_ROOT=${ANDROID_NDK_HOME} \ + -DANDROID_STL="c++_shared" \ + -DFEATURE_pkg_config=ON + cmake --build build-$_android_arch +} + +package() { + DESTDIR="$pkgdir" cmake --install build-$_android_arch + + # Drop QMAKE_PRL_BUILD_DIR because reference the build dir + find "$pkgdir/${ANDROID_PREFIX}" -type f -name '*.prl' \ + -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \; + + find ${pkgdir}/${ANDROID_PREFIX} -type f -name 'lib*.so' -exec ${ANDROID_STRIP} -g --strip-unneeded {} \; + find ${pkgdir}/${ANDROID_PREFIX} -type f -name 'lib*.a' -exec ${ANDROID_STRIP} -g {} \; + [[ -d "${pkgdir}/${ANDROID_PREFIX}/share/doc" ]] && rm -r "${pkgdir}/${ANDROID_PREFIX}/share/doc" || true + + install -d "$pkgdir"/usr/share/licenses + ln -s /usr/share/licenses/android-$_android_arch-qt6-base "$pkgdir"/usr/share/licenses/$pkgname + +} diff --git a/qt6-httpserver/android-aarch64/PKGBUILD.sh.ep b/qt6-httpserver/android-aarch64/PKGBUILD.sh.ep new file mode 100644 index 00000000..3ccf329c --- /dev/null +++ b/qt6-httpserver/android-aarch64/PKGBUILD.sh.ep @@ -0,0 +1,12 @@ +% layout 'android-qt6-module'; +\ +_qtver=6.5.2 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(any) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Qt HTTP Server (android)' +depends=(<%== qt6deps qw(base) %>) +optdepends=(<%== qt6optdeps declarative => 'QML bindings' %>) +makedepends=('android-cmake<%== $static_suffix %>' <%== qt6deps qw(declarative) %> 'qt6-base' 'qt6-declarative' 'ninja' 'java-environment-openjdk>=11') diff --git a/qt6-httpserver/mingw-w64-static/PKGBUILD b/qt6-httpserver/mingw-w64-static/PKGBUILD new file mode 100644 index 00000000..a2892d57 --- /dev/null +++ b/qt6-httpserver/mingw-w64-static/PKGBUILD @@ -0,0 +1,51 @@ +# Maintainer: Martchus + +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + +pkgname=mingw-w64-qt6-httpserver-static +_qtver=6.5.2 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(any) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Qt HTTP Server (mingw-w64)' +depends=('mingw-w64-qt6-websockets-static') +optdepends=('mingw-w64-qt6-declarative-static: QML bindings') +makedepends=('mingw-w64-cmake-static' 'qt6-base' 'qt6-declarative' 'ninja') +options=('!strip' '!buildflags' 'staticlibs' '!emptydirs') +groups=(mingw-w64-qt6) +_pkgfqn="qthttpserver-everywhere-src-${_qtver}" +source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz") +sha256sums=('qthttpserver-sha256.txt missing') + +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' + +build() { + for _arch in ${_architectures}; do + export PKG_CONFIG=/usr/bin/$_arch-pkg-config + $_arch-cmake-static -G Ninja -B build-$_arch -S $_pkgfqn \ + -DCMAKE_INSTALL_PREFIX:PATH="/usr/$_arch/static" \ + -DCMAKE_DISABLE_FIND_PACKAGE_harfbuzz=TRUE \ + -DFEATURE_static_runtime=ON \ + -DFEATURE_pkg_config=ON + cmake --build build-$_arch + done +} + +package() { + for _arch in ${_architectures}; do + DESTDIR="$pkgdir" cmake --install build-$_arch + + find "$pkgdir/usr/$_arch" -iname '*.exe' -exec $_arch-strip --strip-all {} \; + find "$pkgdir/usr/$_arch" -iname '*.dll' -exec $_arch-strip --strip-unneeded {} \; + find "$pkgdir/usr/$_arch" -iname '*.a' -exec $_arch-strip -g {} \; + [[ -d "$pkgdir/usr/$_arch/static/share/doc" ]] && rm -r "$pkgdir/usr/$_arch/static/share/doc" + done + + install -d "$pkgdir"/usr/share/licenses + ln -s /usr/share/licenses/mingw-w64-qt6-base-static "$pkgdir"/usr/share/licenses/$pkgname + +} + diff --git a/qt6-httpserver/mingw-w64-static/PKGBUILD.sh.ep b/qt6-httpserver/mingw-w64-static/PKGBUILD.sh.ep new file mode 100644 index 00000000..87756da4 --- /dev/null +++ b/qt6-httpserver/mingw-w64-static/PKGBUILD.sh.ep @@ -0,0 +1 @@ +%= include "$default_package_name/mingw-w64/PKGBUILD"; diff --git a/qt6-httpserver/mingw-w64/PKGBUILD b/qt6-httpserver/mingw-w64/PKGBUILD new file mode 100644 index 00000000..6ada54ed --- /dev/null +++ b/qt6-httpserver/mingw-w64/PKGBUILD @@ -0,0 +1,57 @@ +# Maintainer: Martchus + +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + +pkgname=mingw-w64-qt6-httpserver +_qtver=6.5.2 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(any) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Qt HTTP Server (mingw-w64)' +depends=('mingw-w64-qt6-websockets') +optdepends=('mingw-w64-qt6-declarative: QML bindings') +makedepends=('mingw-w64-cmake' 'qt6-base' 'qt6-declarative' 'ninja') +options=('!strip' '!buildflags' 'staticlibs' '!emptydirs') +groups=(mingw-w64-qt6) +_pkgfqn="qthttpserver-everywhere-src-${_qtver}" +source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz") +sha256sums=('qthttpserver-sha256.txt missing') + +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' + +build() { + for _arch in ${_architectures}; do + export PKG_CONFIG=/usr/bin/$_arch-pkg-config + $_arch-cmake -G Ninja -B build-$_arch -S $_pkgfqn \ + -DFEATURE_pkg_config=ON + cmake --build build-$_arch + done +} + +package() { + for _arch in ${_architectures}; do + DESTDIR="$pkgdir" cmake --install build-$_arch + + # Add symlinks of DLLs in usual bin directory + mkdir -p "$pkgdir/usr/bin" "$pkgdir/usr/$_arch/bin" + for dll in "$pkgdir"/usr/$_arch/lib/qt6/bin/*.dll; do + ln -rs "$dll" "$pkgdir/usr/$_arch/bin/${dll##*/}" + done + + # Drop QMAKE_PRL_BUILD_DIR because reference the build dir + find "$pkgdir/usr/$_arch/lib" -type f -name '*.prl' \ + -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \; + + find "$pkgdir/usr/$_arch" -iname '*.exe' -exec $_arch-strip --strip-all {} \; + find "$pkgdir/usr/$_arch" -iname '*.dll' -exec $_arch-strip --strip-unneeded {} \; + find "$pkgdir/usr/$_arch" -iname '*.a' -exec $_arch-strip -g {} \; + [[ -d "$pkgdir/usr/$_arch/share/doc" ]] && rm -r "$pkgdir/usr/$_arch/share/doc" + done + + install -d "$pkgdir"/usr/share/licenses + ln -s /usr/share/licenses/mingw-w64-qt6-base "$pkgdir"/usr/share/licenses/$pkgname + +} diff --git a/qt6-httpserver/mingw-w64/PKGBUILD.sh.ep b/qt6-httpserver/mingw-w64/PKGBUILD.sh.ep new file mode 100644 index 00000000..d55d8d4d --- /dev/null +++ b/qt6-httpserver/mingw-w64/PKGBUILD.sh.ep @@ -0,0 +1,12 @@ +% layout 'mingw-w64-qt6-module'; +\ +_qtver=6.5.2 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(any) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Qt HTTP Server (mingw-w64)' +depends=(<%== qt6deps qw(websockets) %>) +optdepends=(<%== qt6optdeps declarative => 'QML bindings' %>) +makedepends=('mingw-w64-cmake<%== $static_suffix %>' 'qt6-base' 'qt6-declarative' 'ninja') diff --git a/qt6-httpserver/static-compat/PKGBUILD b/qt6-httpserver/static-compat/PKGBUILD new file mode 100644 index 00000000..a9f2fbe7 --- /dev/null +++ b/qt6-httpserver/static-compat/PKGBUILD @@ -0,0 +1,51 @@ +# Maintainer: Martchus + +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + +pkgname=static-compat-qt6-httpserver +_qtver=6.5.2 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(x86_64) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Qt HTTP Server' +depends=(static-compat-qt6-websockets) +optdepends=('static-compat-qt6-declarative: QML bindings') +makedepends=(static-compat-cmake ninja) +options=('!strip' '!buildflags' 'staticlibs' '!emptydirs') +_pkgfqn="qthttpserver-everywhere-src-${_qtver}" +source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz") +sha256sums=('qthttpserver-sha256.txt missing') + +build() { + check_buildoption ccache y && ccache_args=' + -DCMAKE_C_COMPILER_LAUNCHER=ccache + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache' + source static-compat-environment + export PATH=$PWD:$PATH + printf '#!/usr/bin/bash\nexec /usr/bin/pkg-config --static "$@"\n' > pkg-config + chmod +x pkg-config + static-compat-cmake -G Ninja -B build -S $_pkgfqn \ + $ccache_args \ + -DCMAKE_SKIP_INSTALL_RPATH=ON \ + -DGLIB2_USE_PKG_CONFIG=ON \ + -DWAYLAND_USE_PKG_CONFIG=ON \ + -DCMAKE_DISABLE_FIND_PACKAGE_harfbuzz=TRUE \ + -DQT_FEATURE_static_runtime=ON \ + -DFEATURE_pkg_config=ON + VERBOSE=1 cmake --build build +} + +package() { + source static-compat-environment + DESTDIR="$pkgdir" cmake --install build + + # Drop QMAKE_PRL_BUILD_DIR because reference the build dir + find "$pkgdir/$static_compat_prefix/lib" -type f -name '*.prl' \ + -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \; + + install -d "$pkgdir"/usr/share/licenses + ln -s /usr/share/licenses/static-compat-qt6-base "$pkgdir"/usr/share/licenses/$pkgname +} diff --git a/qt6-httpserver/static-compat/PKGBUILD.sh.ep b/qt6-httpserver/static-compat/PKGBUILD.sh.ep new file mode 100644 index 00000000..3ed6bf4f --- /dev/null +++ b/qt6-httpserver/static-compat/PKGBUILD.sh.ep @@ -0,0 +1,12 @@ +% layout 'static-compat-qt6-module'; +\ +_qtver=6.5.2 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(x86_64) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Qt HTTP Server' +depends=(<%== qt6deps qw(websockets) %>) +optdepends=(<%== qt6optdeps declarative => 'QML bindings' %>) +makedepends=(static-compat-cmake ninja) diff --git a/qt6-websockets/static-compat/PKGBUILD b/qt6-websockets/static-compat/PKGBUILD new file mode 100644 index 00000000..8d6f8259 --- /dev/null +++ b/qt6-websockets/static-compat/PKGBUILD @@ -0,0 +1,51 @@ +# Maintainer: Martchus + +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + +pkgname=static-compat-qt6-websockets +_qtver=6.5.2 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(x86_64) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Provides WebSocket communication compliant with RFC 6455' +depends=(static-compat-qt6-base) +optdepends=('static-compat-qt6-declarative: QML bindings') +makedepends=(static-compat-cmake ninja) +options=('!strip' '!buildflags' 'staticlibs' '!emptydirs') +_pkgfqn="qtwebsockets-everywhere-src-${_qtver}" +source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz") +sha256sums=('qtwebsockets-sha256.txt missing') + +build() { + check_buildoption ccache y && ccache_args=' + -DCMAKE_C_COMPILER_LAUNCHER=ccache + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache' + source static-compat-environment + export PATH=$PWD:$PATH + printf '#!/usr/bin/bash\nexec /usr/bin/pkg-config --static "$@"\n' > pkg-config + chmod +x pkg-config + static-compat-cmake -G Ninja -B build -S $_pkgfqn \ + $ccache_args \ + -DCMAKE_SKIP_INSTALL_RPATH=ON \ + -DGLIB2_USE_PKG_CONFIG=ON \ + -DWAYLAND_USE_PKG_CONFIG=ON \ + -DCMAKE_DISABLE_FIND_PACKAGE_harfbuzz=TRUE \ + -DQT_FEATURE_static_runtime=ON \ + -DFEATURE_pkg_config=ON + VERBOSE=1 cmake --build build +} + +package() { + source static-compat-environment + DESTDIR="$pkgdir" cmake --install build + + # Drop QMAKE_PRL_BUILD_DIR because reference the build dir + find "$pkgdir/$static_compat_prefix/lib" -type f -name '*.prl' \ + -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \; + + install -d "$pkgdir"/usr/share/licenses + ln -s /usr/share/licenses/static-compat-qt6-base "$pkgdir"/usr/share/licenses/$pkgname +} diff --git a/qt6-websockets/static-compat/PKGBUILD.sh.ep b/qt6-websockets/static-compat/PKGBUILD.sh.ep new file mode 100644 index 00000000..5d631a73 --- /dev/null +++ b/qt6-websockets/static-compat/PKGBUILD.sh.ep @@ -0,0 +1,12 @@ +% layout 'static-compat-qt6-module'; +\ +_qtver=6.5.2 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(x86_64) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Provides WebSocket communication compliant with RFC 6455' +depends=(<%== qt6deps qw(base) %>) +optdepends=(<%== qt6optdeps declarative => 'QML bindings' %>) +makedepends=(static-compat-cmake ninja)