commit:     f116ea372762cb0dd20879f479272678ef39f731
Author:     Sven Wegener <swegener <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 12 17:27:39 2019 +0000
Commit:     Sven Wegener <swegener <AT> gentoo <DOT> org>
CommitDate: Fri Apr 12 17:30:26 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f116ea37

sci-libs/libsigrok: Build for multiple python and ruby versions

Closes: https://bugs.gentoo.org/578328
Signed-off-by: Sven Wegener <swegener <AT> gentoo.org>
Package-Manager: Portage-2.3.62, Repoman-2.3.11

 sci-libs/libsigrok/libsigrok-9999.ebuild | 81 ++++++++++++++++++++++++++++----
 1 file changed, 71 insertions(+), 10 deletions(-)

diff --git a/sci-libs/libsigrok/libsigrok-9999.ebuild 
b/sci-libs/libsigrok/libsigrok-9999.ebuild
index 4c9fa1e4807..b82051f8e0f 100644
--- a/sci-libs/libsigrok/libsigrok-9999.ebuild
+++ b/sci-libs/libsigrok/libsigrok-9999.ebuild
@@ -3,9 +3,11 @@
 
 EAPI="6"
 
-PYTHON_COMPAT=( python{2_7,3_{4,5,6,7}} )
+PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
+USE_RUBY="ruby26 ruby25 ruby24"
+RUBY_OPTIONAL="yes"
 
-inherit eutils gnome2-utils python-single-r1 java-pkg-opt-2 udev xdg-utils
+inherit eutils gnome2-utils python-r1 java-pkg-opt-2 ruby-ng udev xdg-utils
 
 if [[ ${PV} == "9999" ]]; then
        EGIT_REPO_URI="git://sigrok.org/${PN}"
@@ -20,14 +22,15 @@ HOMEPAGE="https://sigrok.org/wiki/Libsigrok";
 
 LICENSE="GPL-3"
 SLOT="0/9999"
-IUSE="cxx ftdi java parport python serial static-libs test +udev usb"
-REQUIRED_USE="java? ( cxx ) python? ( cxx ${PYTHON_REQUIRED_USE} )"
+IUSE="cxx ftdi java parport python ruby serial static-libs +udev test usb"
+REQUIRED_USE="java? ( cxx ) python? ( cxx ${PYTHON_REQUIRED_USE} ) ruby? ( cxx 
|| ( $(ruby_get_use_targets) ) )"
 
 # We also support librevisa, but that isn't in the tree ...
 LIB_DEPEND=">=dev-libs/glib-2.32.0[static-libs(+)]
        >=dev-libs/libzip-0.8:=[static-libs(+)]
        cxx? ( dev-cpp/glibmm:2[static-libs(+)] )
        python? ( ${PYTHON_DEPS} >=dev-python/pygobject-3.0.0[${PYTHON_USEDEP}] 
)
+       ruby? ( $(ruby_implementations_depend) )
        ftdi? ( >=dev-embedded/libftdi-0.16:=[static-libs(+)] )
        parport? ( sys-libs/libieee1284[static-libs(+)] )
        serial? ( >=dev-libs/libserialport-0.1.1[static-libs(+)] )
@@ -47,19 +50,36 @@ DEPEND="${LIB_DEPEND//\[static-libs(+)]}
                dev-python/numpy[${PYTHON_USEDEP}]
                >=dev-lang/swig-3.0.6
        )
+       ruby? ( >=dev-lang/swig-3.0.8 )
        virtual/pkgconfig"
 
+S="${WORKDIR}"/${P}
+
 pkg_setup() {
-       use python && python-single-r1_pkg_setup
+       use ruby && ruby-ng_pkg_setup
        java-pkg-opt-2_pkg_setup
 }
 
-src_prepare() {
+src_unpack() {
+       [[ ${PV} == "9999" ]] && git-r3_src_unpack || default
+}
+
+sigrok_src_prepare() {
        [[ ${PV} == "9999" ]] && eautoreconf
+}
+
+each_ruby_prepare() {
+       sigrok_src_prepare
+}
+
+src_prepare() {
+       use ruby && cp -rl "${S}" "${WORKDIR}"/all && ruby-ng_src_prepare
+       sigrok_src_prepare
        eapply_user
+       use python && python_copy_sources
 }
 
-src_configure() {
+sigrok_src_configure() {
        econf \
                $(use_with ftdi libftdi) \
                $(use_with parport libieee1284) \
@@ -67,17 +87,58 @@ src_configure() {
                $(use_with usb libusb) \
                $(use_enable cxx) \
                $(use_enable java) \
-               $(use_enable python) \
-               --disable-ruby \
-               $(use_enable static-libs static)
+               $(use_enable static-libs static) \
+               "${@}"
+}
+
+each_ruby_configure() {
+       RUBY="${RUBY}" sigrok_src_configure --enable-ruby --disable-python
+}
+
+each_python_configure() {
+       cd "${BUILD_DIR}"
+       sigrok_src_configure --disable-ruby --enable-python
+}
+
+src_configure() {
+       python_setup
+       sigrok_src_configure --disable-ruby --disable-python
+       use ruby && ruby-ng_src_configure
+       use python && python_foreach_impl each_python_configure
+}
+
+each_ruby_compile() {
+       emake ruby-build
+}
+
+each_python_compile() {
+       cd "${BUILD_DIR}"
+       emake python-build
+}
+
+src_compile() {
+       default
+       use ruby && ruby-ng_src_compile
+       use python && python_foreach_impl each_python_compile
 }
 
 src_test() {
        emake check
 }
 
+each_ruby_install() {
+       emake ruby-install DESTDIR="${D}"
+}
+
+each_python_install() {
+       cd "${BUILD_DIR}"
+       emake python-install DESTDIR="${D}"
+}
+
 src_install() {
        default
+       use python && python_foreach_impl each_python_install
+       use ruby && ruby-ng_src_install
        use udev && udev_dorules contrib/*.rules
        prune_libtool_files
 }

Reply via email to