# Compiling Time: 64.56 SBU
# Maintainer: crazy <crazy@frugalware.org>

pkgname=qt5-base
pkgver=5.15.17
pkgrel=1
Finclude qt5
pkgdesc="The Qt5 GUI toolkit."
depends=('libxkbcommon>=0.6.1-2' 'xcb-util-image>=0.4.0-3' 'xcb-util-wm>=0.4.1-3' \
	'dbus>=1.10.10-3' 'harfbuzz>=1.3.3-4' 'libcups>=2.2.0-2' 'libpng>=1.6.25' \
	'libjpeg-turbo' 'libinput>=1.4.0-2' 'sqlite3>=3.14.2-3' 'libsystemd>=231-6' \
	'glib2>=2.50.0' 'libevdev>=1.5.4-2' 'libxcursor>=1.1.14-3' 'libxcb>=1.12-4' 'md4c' \
	'libxi>=1.7.6-2' 'pcre>=8.39-3' 'libxrender>=0.9.9-5' 'mtdev>=1.1.5-4' 'fontconfig '\
	'mesa-libegl>=18.2.0-2' 'mesa-libglx>=18.2.0-2' 'libglvnd' 'libproxy>=0.5.7' \
	'libsm>=1.2.2-3' 'icu4c>=77.1' 'openssl>=3.1.0' 'zstd' 'tslib' 'double-conversion')
makedepends=('cups>=2.2.0-2' 'x11-protos' 'mariadb>=10.3.14' 'postgresql>=9.5.4' 'systemd-devel' \
	'gst1-plugins-base>=1.9.2-2' 'alsa-lib>=1.1.2-2' 'pulseaudio>=9.0-2' 'gperf' 'gtk+3')
source+=(find-libpropxy.patch)
sha1sums=('c7c0bd0df81f2bdc26f556d38406ca9a35828872' \
          '7d9199a6033caf0547f1808c04e6e7d36ff2f65c')

Fconfopts+=" \
		-prefix /usr \
		-bindir /usr/lib/qt5/bin \
		-libexecdir /usr/lib/qt5 \
		-headerdir /usr/include/qt5 \
		-archdatadir /usr/share/qt5 \
		-plugindir /usr/lib/qt5/plugins \
		-datadir /usr/share/qt5 \
		-docdir /usr/share/doc/qt5 \
		-examplesdir /usr/share/qt5/examples \
		-testsdir /usr/share/qt5/tests \
		-sysconfdir /etc/qt5 \
		-release \
		-opensource \
		-confirm-license \
		-verbose \
		-openssl-linked \
		-optimized-qmake \
		-dbus-linked \
		-nomake examples \
		-cups \
		-pch \
		-opengl desktop \
		-system-libpng \
		-system-libjpeg \
		-system-zlib \
		-system-pcre \
		-system-harfbuzz \
		-system-proxies \
		-system-sqlite \
		-libproxy \
		-libinput \
		-gtk \
		-journald \
		-no-static \
		-no-strip \
		-no-rpath \
		-no-use-gold-linker \
		-no-mimetype-database \
		-reduce-relocations \
		-reduce-exports \
		-ltcg"

## DO NOT remove -no-use-gold-linker

options+=('ofast')

subpkgs=("$pkgname-mysql")
subdescs=('Mysql support for qt5')
subdepends=("mariadb-libs>=10.3.14")
subrodepends=("$pkgname>=$pkgver $pkgname-sql-common")
subgroups=('xlib-extra')
subarchs=("x86_64")
subreplaces=('qt5-plugin-mysql')
subprovides=('qt5-plugin-mysql')
subconflicts=('qt5-plugin-mysql')

subpkgs+=("$pkgname-postgresql")
subdescs+=('Postgresql support for qt5')
subdepends+=("libpq>=11.2-2")
subrodepends+=("$pkgname>=$pkgver $pkgname-sql-common")
subgroups+=('xlib-extra')
subarchs+=('x86_64')
subreplaces+=('qt5-plugin-psql')
subprovides+=('qt5-plugin-psql')
subconflicts+=('qt5-plugin-psql')

subpkgs+=("$pkgname-sql-common")
subdescs+=('Development files for SQL plugins')
subdepends+=("")
subrodepends+=("")
subgroups+=('devel-extra')
subarchs+=('x86_64')
subreplaces+=('')
subprovides+=('')
subconflicts+=('')

subpkgs+=("$pkgname-platformtheme-gtk3")
subdescs+=('Qt5 GTK3 Theme support')
subdepends+=("gtk+3")
subrodepends+=("$pkgname>=$pkgver")
subgroups+=('xlib-extra')
subarchs+=('x86_64')
subreplaces+=('')
subprovides+=('')
subconflicts+=('')

## well these have to be makedepens no need to have these installed
subpkgs+=("$pkgname-static")
subdescs+=('Qt5 base static libs.')
subdepends+=('libstdc++>=15.1')
subrodepends+=('')
subgroups+=('devel-extra')
subarchs+=('x86_64')
subreplaces+=('')
subprovides+=('')
subconflicts+=('')

build()
{
	Fcd
	Fpatchall
	## let qt5 own his config dir ;)
	Fmkdir /etc/qt5

	Fmessage "Fixing up CXX/LD flags.."
	Fexec sed -i -e "s|-O2|$CXXFLAGS|g" mkspecs/*/qmake.conf || Fdie
	Fexec sed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\)|\1 $LDFLAGS|" mkspecs/common/g++-unix.conf || Fdie
	Fexec sed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*\)|\1 ${CXXFLAGS}|" mkspecs/common/gcc-base.conf || Fdie
	Fexec sed -i -e 's,\$(CXX) -o,\$(CXX) \$(CXXFLAGS) -o,' qmake/Makefile.unix

	Fexec sed -i -e 's|^QMAKE_CFLAGS_OPTIMIZE .*=.*|QMAKE_CFLAGS_OPTIMIZE  +=|g' mkspecs/common/gcc-base.conf
	Fexec sed -i -e 's|^QMAKE_CFLAGS_OPTIMIZE_FULL .*=.*|QMAKE_CFLAGS_OPTIMIZE_FULL  +=|g' mkspecs/common/gcc-base.conf
	Fexec sed -i -e 's|^QMAKE_CFLAGS_OPTIMIZE_DEBUG .*=.*|QMAKE_CFLAGS_OPTIMIZE_DEBUG  +=|g' mkspecs/common/gcc-base.conf
	Fexec sed -i -e 's|^QMAKE_CFLAGS_OPTIMIZE_SIZE .*=.*|QMAKE_CFLAGS_OPTIMIZE_SIZE  +=|g' mkspecs/common/gcc-base.conf


	Fconf
	Fexec make STRIP="" || Fdie
	Fexec make STRIP="" INSTALL_ROOT=$Fdestdir install || Fdie

	local i j q5
	for i in ${Fdestdir}/usr/lib/qt5/bin/*; do
		q5=`basename ${i}`
		Fln /usr/lib/qt5/bin/${q5} /usr/bin/${q5}-qt5
		Fln /usr/lib/qt5/bin/${q5} /usr/bin/${q5}
	done


	LIB_STATIC=(
		libQt5AccessibilitySupport
		libQt5Bootstrap
		libQt5DeviceDiscoverySupport
		libQt5EdidSupport
		libQt5EglSupport
		libQt5EventDispatcherSupport
		libQt5FbSupport
		libQt5FontDatabaseSupport
		libQt5GlxSupport
		libQt5InputSupport
		libQt5KmsSupport
		libQt5LinuxAccessibilitySupport
		libQt5OpenGLExtensions
		libQt5PlatformCompositorSupport
		libQt5ServiceSupport
		libQt5ThemeSupport
		libQt5XkbCommonSupport)

	sed -i -e 's|^QMAKE_PRL_BUILD_DIR =.*||g'  $Fdestdir/usr/lib/*.prl

	for j in "${LIB_STATIC[@]}"
	do
		Fsplit $pkgname-static usr/lib/${j}.{a,la,prl}
	done

	Frm usr/lib/*.la
	Fsplit $pkgname-platformtheme-gtk3 usr/lib/qt5/plugins/platformthemes/libqgtk3.so
	Fsplit $pkgname-platformtheme-gtk3 usr/lib/cmake/Qt5Gui/Qt5Gui_QGtk3ThemePlugin.cmake

	Fsplit $pkgname-sql-common usr/include/qt5/QtSql/$pkgver/QtSql

	Fsplit $pkgname-mysql usr/lib/cmake/Qt5Sql/Qt5Sql_QMYSQLDriverPlugin.cmake usr/lib/qt5/plugins/sqldrivers/libqsqlmysql.so

	Fsplit $pkgname-postgresql usr/lib/cmake/Qt5Sql/Qt5Sql_QPSQLDriverPlugin.cmake usr/lib/qt5/plugins/sqldrivers/libqsqlpsql.so
}


# optimization OK

