# Template file for 'python3-PyQt5'
pkgname=python3-PyQt5
version=5.15.0
revision=1
_sipver=4.19.23
wrksrc="PyQt5-${version}"
hostmakedepends="pkg-config
 python3-devel sip5 python-dbus-devel qt5 qt5-devel qt5-tools-devel
 qt5-connectivity-devel qt5-declarative-devel qt5-location-devel
 qt5-multimedia-devel qt5-qmake qt5-sensors-devel qt5-serialport-devel
 qt5-svg-devel qt5-webchannel-devel qt5-webkit-devel qt5-websockets-devel
 qt5-x11extras-devel qt5-xmlpatterns-devel qt5-networkauth-devel pulseaudio-devel"
makedepends="${hostmakedepends/pkg-config/}"
depends="python3-sip-PyQt5>=${_sipver}"
short_desc="Python 3 bindings for the Qt5 toolkit"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-only"
homepage="https://riverbankcomputing.com/software/pyqt/intro"
distfiles="${PYPI_SITE}/P/PyQt5/PyQt5-${version}.tar.gz"
checksum=c6f75488ffd5365a65893bc64ea82a6957db126fbfe33654bcd43ae1c30c52f9
lib32disabled=yes

post_extract() {
	rm -rf pyuic/uic/port_v2
}

do_configure() {
	local _sysroot= _configuration= qt_version
	if [ "$CROSS_BUILD" ]; then
		qt_version=$(qmake -query QT_VERSION)
		_sysroot="--sysroot $XBPS_CROSS_BASE"
		_configuration="--configuration $wrksrc/pyqt5_${XBPS_CROSS_TRIPLET}.cfg"
		cat >pyqt5_${XBPS_CROSS_TRIPLET}.cfg <<EOF
py_platform = linux
py_inc_dir = %(sysroot)/usr/include/python%(py_major).%(py_minor)${py3_abiver}
py_pyshlib = python%(py_major).%(py_minor)${py3_abiver}.so
pyqt_disabled_features = PyQt_Desktop_OpenGL

qt_shared = True

[Qt ${qt_version}]
# _QOpenGLFunctions_ES2 doesn't work
pyqt_modules = QtCore QtGui QtHelp QtMultimedia
 QtMultimediaWidgets QtNetwork QtOpenGL QtPrintSupport QtQml QtQuick
 QtSql QtSvg QtTest QtWebKit QtWebKitWidgets QtWidgets QtXml
 QtXmlPatterns QtDesigner QtDBus QtSensors QtSerialPort
 QtX11Extras QtBluetooth QtPositioning QtQuickWidgets QtWebSockets
 QtWebChannel QtLocation QtNfc QtNetworkAuth
EOF

	fi

	python3 configure.py --confirm-license --assume-shared \
		$_sysroot $_configuration \
		QMAKE_CC="${CC}" QMAKE_CFLAGS="${CFLAGS}" \
		QMAKE_CXX="${CXX}" QMAKE_CXXFLAGS="${CXXFLAGS}" \
		QMAKE_LINK="${CXX}" QMAKE_LINK_SHLIB="${CXX}" \
		QMAKE_LFLAGS="${LDFLAGS}" QMAKE_STRIP=""

	if [ "$CROSS_BUILD" ]; then
		# Fix location of libraries
		find . -name Makefile |
		xargs sed -i -E "s|(/usr/lib/libQt5[^ ]+so)|${XBPS_CROSS_BASE}\1|g"
	fi
}

do_build() {
	make ${makejobs}
}

do_install() {
	make DESTDIR=${DESTDIR} INSTALL_ROOT=${DESTDIR} install
	for f in pylupdate5 pyrcc5 pyuic5; do
		sed -i '1s,python3[.0-9]*,python3,' ${DESTDIR}/usr/bin/${f}
		mv ${DESTDIR}/usr/bin/{,python3-}${f}
	done
}

python3-PyQt5-devel-tools_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc+=" - development tools"
	alternatives="
	 pyqt5:pylupdate5:/usr/bin/python3-pylupdate5
	 pyqt5:pyrcc5:/usr/bin/python3-pyrcc5
	 pyqt5:pyuic5:/usr/bin/python3-pyuic5"
	pkg_install() {
		vmove usr/bin/python3-*
		vmove ${py3_sitelib}/PyQt5/pylupdate.so
		vmove ${py3_sitelib}/PyQt5/pylupdate_main.py
		vmove ${py3_sitelib}/PyQt5/pyrcc.so
		vmove ${py3_sitelib}/PyQt5/pyrcc_main.py
	}
}
python3-PyQt5-devel_package() {
	depends="sip5 python3-PyQt5-${version}_${revision}"
	short_desc+=" - development files"
	conflicts="python-PyQt5-devel>=0"
	pkg_install() {
		vmove usr/share/sip
	}
}
python3-PyQt5-dbus_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision} python3-dbus"
	short_desc="${short_desc} - dbus support"
	pkg_install() {
		vmove ${py3_sitelib}/dbus/mainloop/pyqt5.so
	}
}
python3-PyQt5-connectivity_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc="${short_desc} - connectivity module"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/QtBluetooth.pyi
		vmove ${py3_sitelib}/PyQt5/QtBluetooth.so
		vmove ${py3_sitelib}/PyQt5/QtNfc.pyi
		vmove ${py3_sitelib}/PyQt5/QtNfc.so
	}
}
python3-PyQt5-multimedia_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc="${short_desc} - multimedia module"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/QtMultimedia.pyi
		vmove ${py3_sitelib}/PyQt5/QtMultimedia.so
		vmove ${py3_sitelib}/PyQt5/QtMultimediaWidgets.pyi
		vmove ${py3_sitelib}/PyQt5/QtMultimediaWidgets.so
	}
}
python3-PyQt5-networkauth_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc="${short_desc} - networkauth module"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/QtNetworkAuth.pyi
		vmove ${py3_sitelib}/PyQt5/QtNetworkAuth.so
	}
}
python3-PyQt5-opengl_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc="${short_desc} - opengl module"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/QtOpenGL.pyi
		vmove ${py3_sitelib}/PyQt5/QtOpenGL.so
		if [ -z "$CROSS_BUILD" ]; then
			vmove ${py3_sitelib}/PyQt5/_QOpenGLFunctions_*.so
		fi
	}
}
python3-PyQt5-location_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc="${short_desc} - location module"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/QtLocation.pyi
		vmove ${py3_sitelib}/PyQt5/QtLocation.so
		vmove ${py3_sitelib}/PyQt5/QtPositioning.pyi
		vmove ${py3_sitelib}/PyQt5/QtPositioning.so
	}
}
python3-PyQt5-quick_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc="${short_desc} - quick module"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/QtQml.pyi
		vmove ${py3_sitelib}/PyQt5/QtQml.so
		vmove ${py3_sitelib}/PyQt5/QtQuick.pyi
		vmove ${py3_sitelib}/PyQt5/QtQuick.so
		vmove ${py3_sitelib}/PyQt5/QtQuickWidgets.pyi
		vmove ${py3_sitelib}/PyQt5/QtQuickWidgets.so
		vmove usr/lib/qt5/plugins/PyQt5/libpyqt5qmlplugin.so
	}
}
python3-PyQt5-sensors_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc="${short_desc} - sensors module"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/QtSensors.pyi
		vmove ${py3_sitelib}/PyQt5/QtSensors.so
	}
}
python3-PyQt5-serialport_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc="${short_desc} - serialport module"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/QtSerialPort.pyi
		vmove ${py3_sitelib}/PyQt5/QtSerialPort.so
	}
}
python3-PyQt5-sql_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc="${short_desc} - sql module"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/QtSql.pyi
		vmove ${py3_sitelib}/PyQt5/QtSql.so
	}
}
python3-PyQt5-svg_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc="${short_desc} - svg module"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/QtSvg.pyi
		vmove ${py3_sitelib}/PyQt5/QtSvg.so
	}
}
python3-PyQt5-tools_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc="${short_desc} - designer, help modules"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/QtHelp.pyi
		vmove ${py3_sitelib}/PyQt5/QtHelp.so
		vmove ${py3_sitelib}/PyQt5/QtDesigner.pyi
		vmove ${py3_sitelib}/PyQt5/QtDesigner.so
		vmove usr/lib/qt5/plugins/designer/libpyqt5.so
	}
}
python3-PyQt5-webchannel_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc="${short_desc} - webchannel module"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/QtWebChannel.pyi
		vmove ${py3_sitelib}/PyQt5/QtWebChannel.so
	}
}
python3-PyQt5-webkit_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc="${short_desc} - webkit module"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/QtWebKit.pyi
		vmove ${py3_sitelib}/PyQt5/QtWebKit.so
		vmove ${py3_sitelib}/PyQt5/QtWebKitWidgets.pyi
		vmove ${py3_sitelib}/PyQt5/QtWebKitWidgets.so
	}
}
python3-PyQt5-websockets_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc="${short_desc} - websockets module"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/QtWebSockets.pyi
		vmove ${py3_sitelib}/PyQt5/QtWebSockets.so
	}
}
python3-PyQt5-x11extras_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc="${short_desc} - x11extras module"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/QtX11Extras.pyi
		vmove ${py3_sitelib}/PyQt5/QtX11Extras.so
	}
}
python3-PyQt5-xmlpatterns_package() {
	lib32disabled=yes
	depends="python3-PyQt5-${version}_${revision}"
	short_desc="${short_desc} - xmlpatterns module"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/QtXmlPatterns.pyi
		vmove ${py3_sitelib}/PyQt5/QtXmlPatterns.so
	}
}
