| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI="5" |
| PYTHON_COMPAT=( python2_7 ) |
| VALA_MIN_API_VERSION="0.16" |
| VALA_USE_DEPEND="vapigen" |
| |
| inherit eutils gnome.org python-r1 vala |
| |
| DESCRIPTION="VNC viewer widget for GTK" |
| HOMEPAGE="https://live.gnome.org/gtk-vnc" |
| |
| LICENSE="GPL-2" |
| SLOT="0" |
| KEYWORDS="~alpha amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc x86 ~x86-fbsd" |
| IUSE="examples +gtk3 +introspection pulseaudio python sasl vala" |
| REQUIRED_USE=" |
| python? ( ${PYTHON_REQUIRED_USE} ) |
| vala? ( gtk3 introspection ) |
| " |
| |
| # libview is used in examples/gvncviewer -- no need |
| # glib-2.30.1 needed to avoid linking failure due to .la files (bug #399129) |
| COMMON_DEPEND=" |
| >=dev-libs/glib-2.30.1:2 |
| >=dev-libs/libgcrypt-1.4.2:0 |
| dev-libs/libgpg-error |
| >=net-libs/gnutls-1.4 |
| >=x11-libs/cairo-1.2 |
| >=x11-libs/gtk+-2.18:2 |
| x11-libs/libX11 |
| gtk3? ( >=x11-libs/gtk+-2.91.3:3 ) |
| introspection? ( >=dev-libs/gobject-introspection-0.9.4 ) |
| pulseaudio? ( media-sound/pulseaudio ) |
| python? ( |
| ${PYTHON_DEPS} |
| >=dev-python/pygtk-2:2[${PYTHON_USEDEP}] ) |
| sasl? ( dev-libs/cyrus-sasl ) |
| " |
| RDEPEND="${COMMON_DEPEND}" |
| |
| DEPEND="${COMMON_DEPEND} |
| >=dev-lang/perl-5 |
| >=dev-util/intltool-0.40 |
| sys-devel/gettext |
| virtual/pkgconfig |
| vala? ( |
| $(vala_depend) |
| >=dev-libs/gobject-introspection-0.9.4 ) |
| " |
| # eautoreconf requires gnome-common |
| |
| GTK2_BUILDDIR="${WORKDIR}/${P}_gtk2" |
| GTK3_BUILDDIR="${WORKDIR}/${P}_gtk3" |
| |
| src_prepare() { |
| mkdir -p "${GTK2_BUILDDIR}" || die |
| mkdir -p "${GTK3_BUILDDIR}" || die |
| prepare_python() { |
| mkdir -p "${BUILD_DIR}" || die |
| } |
| if use python; then |
| python_foreach_impl prepare_python |
| fi |
| |
| # Remove a few files that were autogenerated during distcheck. |
| # Having these around in srcdir breaks out of tree build since they're |
| # expected to be in builddir, which is correct for trunk builds since |
| # they're generated files, not source files. Funny false dichotomy. |
| rm -vf "${S}"/src/{vncconnectionenums.[ch],vncdisplayenums.[ch]} |
| |
| # Fix incorrect codegendir check: h2def.py is in pygobject, not pygtk, upstream bug#???? |
| sed -e 's/codegendir pygtk-2.0/codegendir pygobject-2.0/g' \ |
| -i src/Makefile.* || die |
| |
| # libtool seems unable to find this via VPATH so help it |
| sed -r "s:(gtkvnc_la_LIBADD =) libgtk-vnc-.*\.la:\1 ${GTK2_BUILDDIR}/src/libgtk-vnc-1.0.la:" \ |
| -i src/Makefile.{am,in} || die |
| |
| vala_src_prepare |
| } |
| |
| src_configure() { |
| local myconf |
| myconf=" |
| $(use_with examples) \ |
| $(use_enable introspection) \ |
| $(use_with pulseaudio) \ |
| $(use_with sasl) \ |
| --with-coroutine=gthread \ |
| --without-libview \ |
| --disable-static \ |
| --disable-vala" |
| |
| cd "${GTK2_BUILDDIR}" || die |
| einfo "Running configure in ${GTK2_BUILDDIR}" |
| ECONF_SOURCE="${S}" econf ${myconf} \ |
| --with-python=no \ |
| --with-gtk=2.0 |
| |
| configure_python() { |
| ECONF_SOURCE="${S}" econf ${myconf} \ |
| $(use_with python) \ |
| --with-gtk=2.0 |
| } |
| if use python; then |
| python_foreach_impl run_in_build_dir configure_python |
| fi |
| |
| if use gtk3; then |
| cd "${GTK3_BUILDDIR}" || die |
| einfo "Running configure in ${GTK3_BUILDDIR}" |
| # Python support is via gobject-introspection |
| # Ex: from gi.repository import GtkVnc |
| ECONF_SOURCE="${S}" econf ${myconf} \ |
| $(use_enable vala) \ |
| --with-python=no \ |
| --with-gtk=3.0 |
| fi |
| } |
| |
| src_compile() { |
| cd "${GTK2_BUILDDIR}" || die |
| einfo "Running make in ${GTK2_BUILDDIR}" |
| emake |
| |
| compile_python() { |
| cd "${BUILD_DIR}"/src || die |
| # CPPFLAGS set to help find includes for gvnc.override |
| emake gtkvnc.la \ |
| VPATH="${S}/src:${GTK2_BUILDDIR}/src:${BUILD_DIR}/src" \ |
| CPPFLAGS="${CPPFLAGS} -I${GTK2_BUILDDIR}/src" |
| } |
| if use python; then |
| python_foreach_impl run_in_build_dir compile_python |
| fi |
| |
| if use gtk3; then |
| cd "${GTK3_BUILDDIR}" || die |
| einfo "Running make in ${GTK3_BUILDDIR}" |
| emake |
| fi |
| } |
| |
| src_test() { |
| cd "${GTK2_BUILDDIR}" || die |
| einfo "Running make check in ${GTK2_BUILDDIR}" |
| default |
| |
| if use gtk3; then |
| cd "${GTK3_BUILDDIR}" || die |
| einfo "Running make check in ${GTK3_BUILDDIR}" |
| default |
| fi |
| } |
| |
| src_install() { |
| # Parallel installation fails sometimes, bug #328273, upstream bug #651923 |
| # Upstream is still unable to reproduce, try again to use parallel with this new version |
| dodoc AUTHORS ChangeLog NEWS README |
| |
| cd "${GTK2_BUILDDIR}" || die |
| einfo "Running make install in ${GTK2_BUILDDIR}" |
| # MAKEOPTS="${MAKEOPTS} -j1" default |
| default |
| |
| install_python() { |
| cd "${BUILD_DIR}"/src || die |
| emake install-pyexecLTLIBRARIES DESTDIR="${D}" \ |
| VPATH="${S}/src:${GTK2_BUILDDIR}/src:${BUILD_DIR}/src" \ |
| CPPFLAGS="${CPPFLAGS} -I${GTK2_BUILDDIR}/src" |
| } |
| if use python; then |
| python_foreach_impl run_in_build_dir install_python |
| fi |
| |
| if use gtk3; then |
| cd "${GTK3_BUILDDIR}" || die |
| einfo "Running make install in ${GTK3_BUILDDIR}" |
| #MAKEOPTS="${MAKEOPTS} -j1" default |
| default |
| fi |
| |
| prune_libtool_files |
| } |