# Template file for 'python-PyQt5'
pkgname=python-PyQt5
version=5.15.0
revision=1
_sipver=4.19.23
wrksrc="PyQt5-${version}"
hostmakedepends="pkg-config
 python-devel python-sip-devel 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
 python-enum34"
makedepends="${hostmakedepends/pkg-config/}"
depends="python-sip-PyQt5>=${_sipver} python-enum34"
short_desc="Python 2 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_v3
}

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)
py_pyshlib = python%(py_major).%(py_minor).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

	python2 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() {
	# install python-pyqt5
	make DESTDIR=${DESTDIR} INSTALL_ROOT=${DESTDIR} install
	for f in pylupdate5 pyrcc5 pyuic5; do
		sed -i 's,/usr/bin/python2.7,/usr/bin/python2,' ${DESTDIR}/usr/bin/${f}
		mv ${DESTDIR}/usr/bin/{,python2-}${f}
	done
}

python-PyQt5-devel-tools_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - development tools"
	alternatives="
	 pyqt5:pylupdate5:/usr/bin/python2-pylupdate5
	 pyqt5:pyrcc5:/usr/bin/python2-pyrcc5
	 pyqt5:pyuic5:/usr/bin/python2-pyuic5"
	pkg_install() {
		vmove usr/bin/python2-*
		vmove ${py2_sitelib}/PyQt5/pylupdate.so
		vmove ${py2_sitelib}/PyQt5/pylupdate_main.py
		vmove ${py2_sitelib}/PyQt5/pyrcc.so
		vmove ${py2_sitelib}/PyQt5/pyrcc_main.py
	}
}
python-PyQt5-devel_package() {
	depends="python-sip-devel python-PyQt5-${version}_${revision}"
	short_desc+=" - development files"
	conflicts="python3-PyQt5-devel>=0"
	pkg_install() {
		vmove usr/share/sip
	}
}
python-PyQt5-dbus_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision} python-dbus"
	short_desc+=" - dbus support"
	pkg_install() {
		vmove ${py2_sitelib}/dbus/mainloop/pyqt5.so
	}
}
python-PyQt5-connectivity_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - connectivity module"
	pkg_install() {
		vmove ${py2_sitelib}/PyQt5/QtBluetooth.so
		vmove ${py2_sitelib}/PyQt5/QtNfc.so
	}
}
python-PyQt5-multimedia_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - multimedia module"
	pkg_install() {
		vmove ${py2_sitelib}/PyQt5/QtMultimedia.so
		vmove ${py2_sitelib}/PyQt5/QtMultimediaWidgets.so
	}
}
python-PyQt5-networkauth_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision} python-enum34"
	short_desc+=" - networkauth module"
	pkg_install() {
		vmove ${py2_sitelib}/PyQt5/QtNetworkAuth.so
	}
}
python-PyQt5-opengl_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - opengl module"
	pkg_install() {
		vmove ${py2_sitelib}/PyQt5/QtOpenGL.so
		if [ -z "$CROSS_BUILD" ]; then
			vmove ${py2_sitelib}/PyQt5/_QOpenGLFunctions_*.so
		fi
	}

}
python-PyQt5-location_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - location module"
	pkg_install() {
		vmove ${py2_sitelib}/PyQt5/QtLocation.so
		vmove ${py2_sitelib}/PyQt5/QtPositioning.so
	}
}
python-PyQt5-quick_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - quick module"
	pkg_install() {
		vmove ${py2_sitelib}/PyQt5/QtQml.so
		vmove ${py2_sitelib}/PyQt5/QtQuick.so
		vmove ${py2_sitelib}/PyQt5/QtQuickWidgets.so
	}
}
python-PyQt5-sensors_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - sensors module"
	pkg_install() {
		vmove ${py2_sitelib}/PyQt5/QtSensors.so
	}
}
python-PyQt5-serialport_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - serialport module"
	pkg_install() {
		vmove ${py2_sitelib}/PyQt5/QtSerialPort.so
	}
}
python-PyQt5-sql_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - sql module"
	pkg_install() {
		vmove ${py2_sitelib}/PyQt5/QtSql.so
	}
}
python-PyQt5-svg_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - svg module"
	pkg_install() {
		vmove ${py2_sitelib}/PyQt5/QtSvg.so
	}
}
python-PyQt5-tools_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - designer, help modules"
	pkg_install() {
		vmove ${py2_sitelib}/PyQt5/QtHelp.so
		vmove ${py2_sitelib}/PyQt5/QtDesigner.so
	}
}
python-PyQt5-webchannel_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - webchannel module"
	pkg_install() {
		vmove ${py2_sitelib}/PyQt5/QtWebChannel.so
	}
}
python-PyQt5-webkit_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - webkit module"
	pkg_install() {
		vmove ${py2_sitelib}/PyQt5/QtWebKit.so
		vmove ${py2_sitelib}/PyQt5/QtWebKitWidgets.so
	}
}
python-PyQt5-websockets_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - websockets module"
	pkg_install() {
		vmove ${py2_sitelib}/PyQt5/QtWebSockets.so
	}
}
python-PyQt5-x11extras_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - x11extras module"
	pkg_install() {
		vmove ${py2_sitelib}/PyQt5/QtX11Extras.so
	}
}
python-PyQt5-xmlpatterns_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - xmlpatterns module"
	pkg_install() {
		vmove ${py2_sitelib}/PyQt5/QtXmlPatterns.so
	}
}
