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 +}