commit: b3fdca4be25199f58a147aee51c39c2d726b336c
Author: Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 5 13:24:51 2024 +0000
Commit: Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Tue Mar 5 13:27:18 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b3fdca4b
dev-python/pyotherside: support simultaneous Qt5 and Qt6 installation
Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>
dev-python/pyotherside/pyotherside-1.6.0-r1.ebuild | 106 +++++++++++++++++++++
1 file changed, 106 insertions(+)
diff --git a/dev-python/pyotherside/pyotherside-1.6.0-r1.ebuild
b/dev-python/pyotherside/pyotherside-1.6.0-r1.ebuild
new file mode 100644
index 000000000000..44c3228186f8
--- /dev/null
+++ b/dev-python/pyotherside/pyotherside-1.6.0-r1.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit multibuild qmake-utils python-single-r1
+
+DESCRIPTION="Asynchronous Python 3 Bindings for Qt"
+HOMEPAGE="https://github.com/thp/pyotherside https://thp.io/2011/pyotherside/"
+SRC_URI="https://github.com/thp/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
+IUSE="qt5 qt6"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ || ( qt5 qt6 )"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtdeclarative:5
+ dev-qt/qtgui:5
+ dev-qt/qtopengl:5
+ dev-qt/qtsvg:5
+ )
+ qt6? (
+ dev-qt/qtbase:6[opengl]
+ dev-qt/qtdeclarative:6[opengl]
+ dev-qt/qtquick3d:6[opengl]
+ dev-qt/qtsvg:6
+ )"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.6.0-qt6.5.patch
+)
+
+pkg_setup() {
+ MULTIBUILD_VARIANTS=( $(usev qt5) $(usev qt6) )
+ python_setup
+}
+
+src_prepare() {
+ default
+ sed -i -e "s/qtquicktests//" pyotherside.pro || die
+ multibuild_copy_sources
+}
+
+src_configure() {
+ myconfigure() {
+ pushd "${BUILD_DIR}" > /dev/null || die
+
+ if [[ "${MULTIBUILD_VARIANT}" == qt5 ]]; then
+ eqmake5
+ elif [[ "${MULTIBUILD_VARIANT}" == qt6 ]]; then
+ eqmake6
+ else
+ # This should never happen if REQUIRED_USE is enforced
+ die "Neither Qt5 nor Qt6 support enabled, aborting"
+ fi
+ popd > /dev/null || die
+ }
+
+ multibuild_foreach_variant myconfigure
+}
+
+src_compile() {
+ mycompile() {
+ pushd "${BUILD_DIR}" > /dev/null || die
+
+ emake
+
+ popd > /dev/null || die
+ }
+
+ multibuild_foreach_variant mycompile
+}
+
+src_test() {
+ mytest() {
+ pushd "${BUILD_DIR}" > /dev/null || die
+
+ QT_QPA_PLATFORM="offscreen" tests/tests || die
+
+ popd > /dev/null || die
+ }
+
+ multibuild_foreach_variant mytest
+}
+
+src_install() {
+ myinstall() {
+ pushd "${BUILD_DIR}" > /dev/null || die
+
+ emake install INSTALL_ROOT="${D}"
+
+ popd > /dev/null || die
+ }
+
+ multibuild_foreach_variant myinstall
+}