commit:     aecddf2e9f314168dddf8e357dce5bc26063a31e
Author:     José de Paula R. N. Assis <espinafre <AT> gmail <DOT> com>
AuthorDate: Tue Oct 24 16:13:43 2023 +0000
Commit:     Jimi Huotari <chiitoo <AT> gentoo <DOT> org>
CommitDate: Tue Apr 16 16:29:11 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aecddf2e

x11-libs/qscintilla: add USE=qt6 #916232

Adding USE=qt6 to x11-libs/qscintilla, based on previous work by @t0b3
(#31252), keeping qt5 support, via multibuild.

Closes: https://bugs.gentoo.org/916232
Signed-off-by: José P. R. N. Assis <espinafre <AT> gmail.com>
Signed-off-by: Jimi Huotari <chiitoo <AT> gentoo.org>

 x11-libs/qscintilla/qscintilla-2.14.1-r1.ebuild | 114 ++++++++++++++++++++++++
 1 file changed, 114 insertions(+)

diff --git a/x11-libs/qscintilla/qscintilla-2.14.1-r1.ebuild 
b/x11-libs/qscintilla/qscintilla-2.14.1-r1.ebuild
new file mode 100644
index 000000000000..43e36261230c
--- /dev/null
+++ b/x11-libs/qscintilla/qscintilla-2.14.1-r1.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic multibuild qmake-utils
+
+DESCRIPTION="Qt port of Neil Hodgson's Scintilla C++ editor control"
+HOMEPAGE="https://www.riverbankcomputing.com/software/qscintilla/intro";
+
+MY_PN=QScintilla
+MY_P=${MY_PN}_src-${PV/_pre/.dev}
+if [[ ${PV} == *_pre* ]]; then
+       SRC_URI="https://dev.gentoo.org/~pesa/distfiles/${MY_P}.tar.gz";
+else
+       
SRC_URI="https://www.riverbankcomputing.com/static/Downloads/${MY_PN}/${PV}/${MY_P}.tar.gz";
+fi
+S=${WORKDIR}/${MY_P}
+
+LICENSE="GPL-3"
+SLOT="0/15"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="designer doc +qt5 qt6"
+
+REQUIRED_USE="|| ( qt5 qt6 )"
+
+# no tests
+RESTRICT="test"
+
+RDEPEND="
+       qt5? (
+               dev-qt/qtcore:5
+               dev-qt/qtgui:5
+               dev-qt/qtprintsupport:5
+               dev-qt/qtwidgets:5
+               designer? ( dev-qt/designer:5 )
+       )
+       qt6? (
+               dev-qt/qtbase:6[gui,widgets]
+               designer? ( dev-qt/qttools:6[designer] )
+       )
+"
+DEPEND="${RDEPEND}"
+
+pkg_setup() {
+       MULTIBUILD_VARIANTS=( $(usev qt5) $(usev qt6) )
+}
+
+src_unpack() {
+       default
+
+       # Sub-slot sanity check
+       local subslot=${SLOT#*/}
+       local version=$(sed -nre 's:.*VERSION\s*=\s*([0-9\.]+):\1:p' 
"${S}"/src/qscintilla.pro || die)
+       local major=${version%%.*}
+       if [[ ${subslot} != ${major} ]]; then
+               eerror
+               eerror "Ebuild sub-slot (${subslot}) does not match QScintilla 
major version (${major})"
+               eerror "Please update SLOT variable as follows:"
+               eerror "    SLOT=\"${SLOT%%/*}/${major}\""
+               eerror
+               die "sub-slot sanity check failed"
+       fi
+
+       multibuild_copy_sources
+}
+
+qsci_run_in() {
+       pushd "$1" >/dev/null || die
+       shift || die
+       "$@" || die
+       popd >/dev/null || die
+}
+
+src_configure() {
+       if use designer; then
+               # prevent building against system version (bug 466120)
+               append-cxxflags -I../src
+               append-ldflags -L../src
+       fi
+       my_src_configure() {
+               case ${MULTIBUILD_VARIANT} in
+                       qt5)
+                               qsci_run_in "${BUILD_DIR}"/src eqmake5;
+                               use designer && qsci_run_in 
"${BUILD_DIR}"/designer eqmake5;;
+                       qt6)
+                               qsci_run_in "${BUILD_DIR}"/src eqmake6;
+                               use designer && qsci_run_in 
"${BUILD_DIR}"/designer eqmake6;;
+               esac
+       }
+
+       multibuild_foreach_variant my_src_configure
+}
+
+src_compile() {
+       my_src_compile() {
+               qsci_run_in "${BUILD_DIR}"/src emake
+               use designer && qsci_run_in "${BUILD_DIR}"/designer emake
+       }
+
+       multibuild_foreach_variant my_src_compile
+}
+
+src_install() {
+       my_src_install() {
+               qsci_run_in "${BUILD_DIR}"/src emake INSTALL_ROOT="${D}" install
+               use designer && qsci_run_in "${BUILD_DIR}"/designer emake 
INSTALL_ROOT="${D}" install
+       }
+
+       multibuild_foreach_variant my_src_install
+
+       use doc && local HTML_DOCS=( doc/html/. )
+       einstalldocs
+}

Reply via email to