2023-01-06 06:53:29 +01:00

170 lines
3.7 KiB
Plaintext

# Maintainer: Bart Ribbers <bribbers@disroot.org>
pkgname=qt6-qtbase
pkgver=6.4.2
pkgrel=0
pkgdesc="A cross-platform application and UI framework"
url="https://qt.io/"
arch="all"
license="LGPL-2.1-only AND LGPL-3.0-only AND GPL-3.0-only AND Qt-GPL-exception-1.0"
_sub="
$pkgname-mysql
$pkgname-odbc
$pkgname-postgresql
$pkgname-sqlite
$pkgname-x11
"
depends_dev="$_sub
cups-dev
dbus-dev
double-conversion-dev
eudev-dev
fontconfig-dev
freetype-dev
glib-dev
gtk+3.0-dev
harfbuzz-dev
icu-dev
libb2-dev
libinput-dev
libjpeg-turbo-dev
libpng-dev
libpq-dev
libproxy-dev
libxkbcommon-dev
mariadb-dev
mesa-dev
openssl-dev>3
pcre2-dev
sqlite-dev
tslib-dev
unixodbc-dev
vulkan-headers
vulkan-loader-dev
wayland-dev
xcb-util-dev
xcb-util-image-dev
xcb-util-keysyms-dev
xcb-util-renderutil-dev
xcb-util-wm-dev
zlib-dev
"
makedepends="$depends_dev
cmake
perl
samurai
xmlstarlet
"
subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $_sub"
builddir="$srcdir/qtbase-everywhere-src-${pkgver/_/-}"
case $pkgver in
*_alpha*|*_beta*|*_rc*) _rel=development_releases;;
*) _rel=official_releases;;
esac
source="https://download.qt.io/$_rel/qt/${pkgver%.*}/${pkgver/_/-}/submodules/qtbase-everywhere-src-${pkgver/_/-}.tar.xz"
[ "$CARCH" = "riscv64" ] && options="$options textrels"
build() {
case "$CTARGET_ARCH" in
arm*|aarch64)
local opengl="-DQT_FEATURE_opengles2=ON"
;;
esac
# -g1: significantly reduce debug symbol size
export CFLAGS="$CFLAGS -g1 -flto=auto"
export CXXFLAGS="$CXXFLAGS -g1 -flto=auto"
cmake -B build -G Ninja -Wno-dev \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
-DINSTALL_BINDIR=lib/qt6/bin \
-DINSTALL_PUBLICBINDIR=usr/bin \
-DINSTALL_DOCDIR=share/doc/qt6 \
-DINSTALL_ARCHDATADIR=lib/qt6 \
-DINSTALL_DATADIR=share/qt6 \
-DINSTALL_INCLUDEDIR=include/qt6 \
-DINSTALL_MKSPECSDIR=lib/qt6/mkspecs \
-DINSTALL_EXAMPLESDIR=share/doc/qt6/examples \
-DQT_FEATURE_journald=OFF \
-DQT_FEATURE_openssl_linked=ON \
-DQT_FEATURE_system_sqlite=ON \
-DQT_FEATURE_system_xcb_xinput=ON \
-DQT_FEATURE_vulkan=ON \
$opengl
cmake --build build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
DESTDIR="$pkgdir" cmake --install build
# add symlinks for qt6 dev tools
cd "$pkgdir"
mkdir -p usr/bin
while read -r _line; do
ln -sv $_line
done < "$builddir"/build/user_facing_tool_links.txt
}
dev() {
default_dev
amove usr/bin
amove usr/lib/qt6/bin
}
sqlite() {
pkgdesc="SQLite driver for Qt6's SQL classes"
cd "$pkgdir"
amove usr/lib/qt6/plugins/sqldrivers/libqsqlite*
}
odbc() {
pkgdesc="ODBC driver for Qt6's SQL classes"
cd "$pkgdir"
amove usr/lib/qt6/plugins/sqldrivers/libqsqlodbc*
}
postgresql() {
pkgdesc="PostgreSQL driver for Qt6's SQL classes"
cd "$pkgdir"
amove usr/lib/qt6/plugins/sqldrivers/libqsqlpsql*
}
mysql() {
pkgdesc="MySQL driver for Qt6's SQL classes"
cd "$pkgdir"
amove usr/lib/qt6/plugins/sqldrivers/libqsqlmysql*
}
x11() {
pkgdesc="Qt6 GUI-related libraries"
depends="hicolor-icon-theme xdg-utils"
cd "$pkgdir"
amove \
usr/lib/libQt6EglFSDeviceIntegration.so.* \
usr/lib/libQt6EglFsKms*Support.so.* \
usr/lib/libQt6Gui.so.* \
usr/lib/libQt6OpenGL*.so.* \
usr/lib/libQt6XcbQpa.so.* \
usr/lib/libQt6PrintSupport.so.* \
usr/lib/libQt6Widgets.so.* \
usr/lib/qt6/plugins/egldeviceintegrations \
usr/lib/qt6/plugins/generic \
usr/lib/qt6/plugins/image* \
usr/lib/qt6/plugins/platform* \
usr/lib/qt6/plugins/printsupport* \
usr/lib/qt6/plugins/xcbglintegrations/libqxcb*
}
sha512sums="
b00cce7bfc29d3a34c9a2f08db147c4bfd962e178916d60033e1845b25eaeaa4fbd42f5c1d7e39453ddb412a4e91c22c8eae52745eda8a47e35a691054d5496e qtbase-everywhere-src-6.4.2.tar.xz
"