# Template file for 'python-PyQt5'
pkgname=python-PyQt5
version=5.4.2
revision=1
lib32disabled=yes
wrksrc="PyQt-gpl-${version}"
hostmakedepends="pkg-config"
makedepends="
 python-devel python3.4-devel python-sip-devel python3.4-sip-devel
 qt5-tools-devel qt5-connectivity-devel qt5-declarative-devel qt5-enginio-devel
 qt5-location-devel qt5-multimedia-devel qt5-sensors-devel qt5-serialport-devel
 qt5-svg-devel qt5-webchannel-devel qt5-webengine-devel qt5-webkit-devel
 qt5-websockets-devel qt5-x11extras-devel qt5-xmlpatterns-devel python-dbus-devel"
depends="python-sip"
pycompile_module="PyQt5"
short_desc="Python2 bindings for the Qt5 toolkit"
_short_desc="${short_desc/Python2/Python3.4}"
maintainer="Alessio Sergi <al3hex@gmail.com>"
homepage="http://www.riverbankcomputing.co.uk/software/pyqt/intro"
license="GPL-3"
distfiles="${SOURCEFORGE_SITE}/pyqt/PyQt-gpl-${version}.tar.gz"
checksum=4cd90580558722ef24d499700faafbdc242d930cb36f55cc1a27b5cf67b10290

_pysitedir="usr/lib/python2.7/site-packages"
_py34sitedir="usr/lib/python3.4/site-packages"

_do_pyqt5_build() {
	local pyver=${1:-2.7} tools=

	if [ "$pyver" != "2.7" ]; then
		tools="--no-tools"
	fi

	python${pyver} configure.py --confirm-license --assume-shared ${tools} \
		CC="${CC}" CFLAGS="${CFLAGS}" CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" \
		LINK="${CXX}" LINK_SHLIB="${CXX}" LFLAGS="${LDFLAGS}" STRIP=""
	make ${makejobs}
}
pre_build() {
	mkdir -p pyqt5
	mv * pyqt5 || true
	cp -a pyqt5 pyqt5-3.4
	rm -rf ${wrksrc}/pyqt5/pyuic/uic/port_v3
	rm -rf ${wrksrc}/pyqt5-3.4/pyuic/uic/port_v2
}
do_build() {
	# build python-pyqt5
	cd ${wrksrc}/pyqt5
	_do_pyqt5_build

	# build python3.4-pyqt5
	cd ${wrksrc}/pyqt5-3.4
	_do_pyqt5_build 3.4
}
do_install() {
	# install python{,3.4}-pyqt5
	make -C pyqt5 DESTDIR=${DESTDIR} INSTALL_ROOT=${DESTDIR} install
	make -C pyqt5-3.4 DESTDIR=${DESTDIR} INSTALL_ROOT=${DESTDIR} install

	cd ${wrksrc}/pyqt5
	# install python3-pyuic5 wrapper
	sed -i 's,python2.7,python3.4,g' pyuic5
	vbin pyuic5 python3-pyuic5
	# install doc
	vmkdir usr/share/doc/${pkgname}
	vcopy "doc/html examples" usr/share/doc/${pkgname}
}

python-PyQt5-devel-tools_package() {
	short_desc+=" - development tools"
	pkg_install() {
		vmove usr/bin/pylupdate5
		vmove usr/bin/pyrcc5
	}
}
python-PyQt5-devel_package() {
	depends="python-sip-devel>=4.16.6 python3.4-sip-devel>=4.16.6
	 python-PyQt5-${version}_${revision} python3.4-PyQt5-${version}_${revision}"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/share/sip
	}
}
python-PyQt5-doc_package() {
	noarch=yes
	short_desc+=" - documentation files"
	pkg_install() {
		vmove usr/share/doc
	}
}
python-PyQt5-dbus_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision} python-dbus"
	short_desc+=" - dbus support"
	pkg_install() {
		vmove ${_pysitedir}/dbus/mainloop/pyqt5.so
	}
}
python-PyQt5-connectivity_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - connectivity module"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/QtBluetooth.so
	}
}
python-PyQt5-enginio_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - enginio module"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/Enginio.so
	}
}
python-PyQt5-multimedia_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - multimedia module"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/QtMultimedia.so
		vmove ${_pysitedir}/PyQt5/QtMultimediaWidgets.so
	}
}
python-PyQt5-opengl_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - opengl module"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/QtOpenGL.so
		vmove ${_pysitedir}/PyQt5/_QOpenGLFunctions_2_0.so
	}
}
python-PyQt5-location_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - location module"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/QtPositioning.so
	}
}
python-PyQt5-quick_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - quick module"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/QtQml.so
		vmove ${_pysitedir}/PyQt5/QtQuick.so
		vmove ${_pysitedir}/PyQt5/QtQuickWidgets.so
	}
}
python-PyQt5-sensors_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - sensors module"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/QtSensors.so
	}
}
python-PyQt5-serialport_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - serialport module"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/QtSerialPort.so
	}
}
python-PyQt5-sql_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - sql module"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/QtSql.so
	}
}
python-PyQt5-svg_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - svg module"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/QtSvg.so
	}
}
python-PyQt5-tools_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - designer, help modules"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/QtDesigner.so
		vmove ${_pysitedir}/PyQt5/QtHelp.so
	}
}
python-PyQt5-webchannel_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - webchannel module"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/QtWebChannel.so
	}
}
python-PyQt5-webengine_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - webengine module"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/QtWebEngineWidgets.so
	}
}
python-PyQt5-webkit_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - webkit module"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/QtWebKit.so
		vmove ${_pysitedir}/PyQt5/QtWebKitWidgets.so
	}
}
python-PyQt5-websockets_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - websockets module"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/QtWebSockets.so
	}
}
python-PyQt5-x11extras_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - x11extras module"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/QtX11Extras.so
	}
}
python-PyQt5-xmlpatterns_package() {
	lib32disabled=yes
	depends="${sourcepkg}-${version}_${revision}"
	short_desc+=" - xmlpatterns module"
	pkg_install() {
		vmove ${_pysitedir}/PyQt5/QtXmlPatterns.so
	}
}
python3.4-PyQt5_package() {
	lib32disabled=yes
	depends="python3.4-sip"
	pycompile_version="3.4"
	pycompile_module="PyQt5"
	short_desc="${_short_desc}"
	pkg_install() {
		vmove usr/bin/python3-pyuic5
		vmove usr/lib/python3.4
	}
}
python3.4-PyQt5-dbus_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision} python3.4-dbus"
	short_desc="${_short_desc} - dbus support"
	pkg_install() {
		vmove ${_py34sitedir}/dbus/mainloop/pyqt5.so
	}
}
python3.4-PyQt5-connectivity_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - connectivity module"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/QtBluetooth.so
	}
}
python3.4-PyQt5-enginio_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - enginio module"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/Enginio.so
	}
}
python3.4-PyQt5-multimedia_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - multimedia module"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/QtMultimedia.so
		vmove ${_py34sitedir}/PyQt5/QtMultimediaWidgets.so
	}
}
python3.4-PyQt5-opengl_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - opengl module"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/QtOpenGL.so
		vmove ${_py34sitedir}/PyQt5/_QOpenGLFunctions_2_0.so
	}
}
python3.4-PyQt5-location_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - location module"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/QtPositioning.so
	}
}
python3.4-PyQt5-quick_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - quick module"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/QtQml.so
		vmove ${_py34sitedir}/PyQt5/QtQuick.so
		vmove ${_py34sitedir}/PyQt5/QtQuickWidgets.so
		vmove usr/lib/qt5/plugins/PyQt5/libpyqt5qmlplugin.so
	}
}
python3.4-PyQt5-sensors_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - sensors module"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/QtSensors.so
	}
}
python3.4-PyQt5-serialport_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - serialport module"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/QtSerialPort.so
	}
}
python3.4-PyQt5-sql_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - sql module"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/QtSql.so
	}
}
python3.4-PyQt5-svg_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - svg module"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/QtSvg.so
	}
}
python3.4-PyQt5-tools_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - designer, help modules"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/QtDesigner.so
		vmove ${_py34sitedir}/PyQt5/QtHelp.so
		vmove usr/lib/qt5/plugins/designer/libpyqt5.so
	}
}
python3.4-PyQt5-webchannel_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - webchannel module"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/QtWebChannel.so
	}
}
python3.4-PyQt5-webengine_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - webengine module"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/QtWebEngineWidgets.so
	}
}
python3.4-PyQt5-webkit_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - webkit module"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/QtWebKit.so
		vmove ${_py34sitedir}/PyQt5/QtWebKitWidgets.so
	}
}
python3.4-PyQt5-websockets_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - websockets module"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/QtWebSockets.so
	}
}
python3.4-PyQt5-x11extras_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - x11extras module"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/QtX11Extras.so
	}
}
python3.4-PyQt5-xmlpatterns_package() {
	lib32disabled=yes
	depends="python3.4-PyQt5-${version}_${revision}"
	short_desc="${_short_desc} - xmlpatterns module"
	pkg_install() {
		vmove ${_py34sitedir}/PyQt5/QtXmlPatterns.so
	}
}
