# Template file for 'python3-PyQt5'
pkgname=python3-PyQt5
version=5.15.4
revision=1
_sipver=12.8.0
wrksrc="PyQt5-${version}"
build_helper="qemu qmake"
hostmakedepends="pkg-config python3-PyQt-builder qt5-qmake qt5-host-tools
 python3-dbus"
makedepends="qscintilla-qt5-devel python3-sip-PyQt5
 python3-devel python3-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 pulseaudio-devel"
depends="python3-sip-PyQt5>=${_sipver}"
short_desc="Python 3 bindings for the Qt5 toolkit"
maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
license="GPL-3.0-only"
homepage="https://riverbankcomputing.com/software/pyqt/intro"
distfiles="${PYPI_SITE}/P/PyQt5/PyQt5-${version}.tar.gz"
checksum=2a69597e0dd11caabe75fae133feca66387819fc9bc050f547e5551bce97e5be
lib32disabled=yes
CFLAGS=-I$XBPS_CROSS_BASE/usr/include/python$py3_ver
CXXFLAGS="$CFLAGS"

export INCPATH=$XBPS_CROSS_BASE/usr/include/python$py3_ver

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

do_configure() {
	mkdir -p build
	sip-build --confirm-license --no-make \
		--api-dir /usr/share/qt5/qsci/api/python \
		--build-dir build

	if [ "$CROSS_BUILD" ]; then
		# -I/usr/include/python$py3_ver is set by sip-build :(
		find build -name Makefile |
		xargs sed -i "s,-I\\(/usr/include\\),-I$XBPS_CROSS_BASE\\1,g"
	fi
}

do_build() {
	make -C build ${makejobs}
}

do_install() {
	make -C build DESTDIR=${DESTDIR} INSTALL_ROOT=${DESTDIR} install
	for f in pylupdate5 pyrcc5 pyuic5; do
		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
		vmove "${py3_sitelib}/PyQt5/pylupdate*"
		vmove "${py3_sitelib}/PyQt5/pyrcc*"
	}
}
python3-PyQt5-devel_package() {
	depends="sip>=6.0.0 python3-PyQt5>=${version}_${revision}"
	short_desc+=" - development files"
	pkg_install() {
		vmove ${py3_sitelib}/PyQt5/bindings
	}
}
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
	}
}
python3-PyQt5-connectivity_package() {
	lib32disabled=yes
	depends="python3-PyQt5>=${version}_${revision}"
	short_desc="${short_desc} - connectivity module"
	pkg_install() {
		vmove "${py3_sitelib}/PyQt5/QtBluetooth.*"
		vmove "${py3_sitelib}/PyQt5/QtNfc.*"
	}
}
python3-PyQt5-multimedia_package() {
	lib32disabled=yes
	depends="python3-PyQt5>=${version}_${revision}"
	short_desc="${short_desc} - multimedia module"
	pkg_install() {
		vmove "${py3_sitelib}/PyQt5/QtMultimedia.*"
		vmove "${py3_sitelib}/PyQt5/QtMultimediaWidgets.*"
	}
}
python3-PyQt5-opengl_package() {
	lib32disabled=yes
	depends="python3-PyQt5>=${version}_${revision}"
	short_desc="${short_desc} - opengl module"
	pkg_install() {
		vmove "${py3_sitelib}/PyQt5/QtOpenGL.*"
		if [ -z "$CROSS_BUILD" ]; then
			vmove "${py3_sitelib}/PyQt5/_QOpenGLFunctions_*"
		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.*"
		vmove "${py3_sitelib}/PyQt5/QtPositioning.*"
	}
}
python3-PyQt5-quick_package() {
	lib32disabled=yes
	depends="python3-PyQt5>=${version}_${revision}"
	short_desc="${short_desc} - quick module"
	pkg_install() {
		vmove "${py3_sitelib}/PyQt5/QtQml.*"
		vmove "${py3_sitelib}/PyQt5/QtQuick.*"
		vmove "${py3_sitelib}/PyQt5/QtQuickWidgets.*"
		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.*"
	}
}
python3-PyQt5-serialport_package() {
	lib32disabled=yes
	depends="python3-PyQt5>=${version}_${revision}"
	short_desc="${short_desc} - serialport module"
	pkg_install() {
		vmove "${py3_sitelib}/PyQt5/QtSerialPort.*"
	}
}
python3-PyQt5-sql_package() {
	lib32disabled=yes
	depends="python3-PyQt5>=${version}_${revision}"
	short_desc="${short_desc} - sql module"
	pkg_install() {
		vmove "${py3_sitelib}/PyQt5/QtSql.*"
	}
}
python3-PyQt5-svg_package() {
	lib32disabled=yes
	depends="python3-PyQt5>=${version}_${revision}"
	short_desc="${short_desc} - svg module"
	pkg_install() {
		vmove "${py3_sitelib}/PyQt5/QtSvg.*"
	}
}
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.*"
		vmove "${py3_sitelib}/PyQt5/QtDesigner.*"
		vmove usr/lib/qt5/plugins/designer
	}
}
python3-PyQt5-webchannel_package() {
	lib32disabled=yes
	depends="python3-PyQt5>=${version}_${revision}"
	short_desc="${short_desc} - webchannel module"
	pkg_install() {
		vmove "${py3_sitelib}/PyQt5/QtWebChannel.*"
	}
}
python3-PyQt5-webkit_package() {
	lib32disabled=yes
	depends="python3-PyQt5>=${version}_${revision}"
	short_desc="${short_desc} - webkit module"
	pkg_install() {
		vmove "${py3_sitelib}/PyQt5/QtWebKit.*"
		vmove "${py3_sitelib}/PyQt5/QtWebKitWidgets.*"
	}
}
python3-PyQt5-websockets_package() {
	lib32disabled=yes
	depends="python3-PyQt5>=${version}_${revision}"
	short_desc="${short_desc} - websockets module"
	pkg_install() {
		vmove "${py3_sitelib}/PyQt5/QtWebSockets.*"
	}
}
python3-PyQt5-x11extras_package() {
	lib32disabled=yes
	depends="python3-PyQt5>=${version}_${revision}"
	short_desc="${short_desc} - x11extras module"
	pkg_install() {
		vmove "${py3_sitelib}/PyQt5/QtX11Extras.*"
	}
}
python3-PyQt5-xmlpatterns_package() {
	lib32disabled=yes
	depends="python3-PyQt5>=${version}_${revision}"
	short_desc="${short_desc} - xmlpatterns module"
	pkg_install() {
		vmove "${py3_sitelib}/PyQt5/QtXmlPatterns.*"
	}
}
