# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 inherit flag-o-matic gnome.org gnome2-utils meson multilib-minimal virtualx xdg DESCRIPTION="Gimp ToolKit +" HOMEPAGE="https://www.gtk.org/" LICENSE="LGPL-2+" SLOT="3" IUSE="aqua broadway cloudprint colord cups examples gtk-doc +introspection test vim-syntax wayland +X xinerama" REQUIRED_USE=" || ( aqua wayland X ) xinerama? ( X ) " KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" # Upstream wants us to do their job: # https://bugzilla.gnome.org/show_bug.cgi?id=768662#c1 RESTRICT="test" # FIXME: introspection data is built against system installation of gtk+:3, # bug #???? COMMON_DEPEND=" >=dev-libs/atk-2.15.1[introspection?,${MULTILIB_USEDEP}] >=dev-libs/fribidi-0.19.7[${MULTILIB_USEDEP}] >=dev-libs/glib-2.57.2:2[${MULTILIB_USEDEP}] media-libs/fontconfig[${MULTILIB_USEDEP}] >=media-libs/libepoxy-1.4[X(+)?,${MULTILIB_USEDEP}] >=x11-libs/cairo-1.14[aqua?,glib,svg,X?,${MULTILIB_USEDEP}] >=x11-libs/gdk-pixbuf-2.30:2[introspection?,${MULTILIB_USEDEP}] >=x11-libs/pango-1.41.0[introspection?,${MULTILIB_USEDEP}] >=media-libs/harfbuzz-0.9:= x11-misc/shared-mime-info cloudprint? ( >=net-libs/rest-0.7[${MULTILIB_USEDEP}] >=dev-libs/json-glib-1.0[${MULTILIB_USEDEP}] ) colord? ( >=x11-misc/colord-0.1.9:0=[${MULTILIB_USEDEP}] ) cups? ( >=net-print/cups-2.0[${MULTILIB_USEDEP}] ) introspection? ( >=dev-libs/gobject-introspection-1.39:= ) wayland? ( >=dev-libs/wayland-1.14.91[${MULTILIB_USEDEP}] >=dev-libs/wayland-protocols-1.14 media-libs/mesa[wayland,${MULTILIB_USEDEP}] >=x11-libs/libxkbcommon-0.2[${MULTILIB_USEDEP}] ) X? ( >=app-accessibility/at-spi2-atk-2.5.3[${MULTILIB_USEDEP}] media-libs/mesa[X(+),${MULTILIB_USEDEP}] x11-libs/libX11[${MULTILIB_USEDEP}] >=x11-libs/libXi-1.3[${MULTILIB_USEDEP}] x11-libs/libXext[${MULTILIB_USEDEP}] >=x11-libs/libXrandr-1.5[${MULTILIB_USEDEP}] x11-libs/libXcursor[${MULTILIB_USEDEP}] x11-libs/libXfixes[${MULTILIB_USEDEP}] x11-libs/libXcomposite[${MULTILIB_USEDEP}] x11-libs/libXdamage[${MULTILIB_USEDEP}] xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) ) " DEPEND="${COMMON_DEPEND} >=sys-devel/gettext-0.19.7[${MULTILIB_USEDEP}] X? ( x11-base/xorg-proto ) test? ( media-fonts/font-misc-misc media-fonts/font-cursor-misc ) " # gtk+-3.2.2 breaks Alt key handling in <=x11-libs/vte-0.30.1:2.90 # gtk+-3.3.18 breaks scrolling in <=x11-libs/vte-0.31.0:2.90 RDEPEND="${COMMON_DEPEND} >=dev-util/gtk-update-icon-cache-3 !=sysprof-3.33.2 -Dtracker3=false # tracker-3 is not packaged in Gentoo yet -Dxinerama=$(usex xinerama yes no) # Print backends -Dcolord=$(usex colord yes no) -Dprint_backends=file,lpr,$(usev cloudprint),$(usev cups) # Documentation and introspection -Dgtk_doc=$(multilib_native_usex gtk-doc true false) -Dintrospection=$(multilib_native_usex introspection true false) -Dman=true # Demos and binaries $(meson_use examples demos) $(meson_use examples) $(meson_use test tests) -Dinstalled_tests=false ) meson_src_configure # work-around gtk-doc out-of-source brokedness if multilib_is_native_abi; then local d for d in gdk gtk libgail-util; do ln -s "${S}"/docs/reference/${d}/html docs/reference/${d}/html || die done fi } multilib_src_test() { "${EROOT}${GLIB_COMPILE_SCHEMAS}" --allow-any-name "${S}/gtk" || die GSETTINGS_SCHEMA_DIR="${S}/gtk" virtx meson_src_test } multilib_src_install() { meson_src_install } multilib_src_install_all() { insinto /etc/gtk-3.0 doins "${FILESDIR}"/settings.ini # Skip README.{in,commits,win32} that would get installed by default DOCS=( AUTHORS ChangeLog NEWS README ) einstalldocs } pkg_preinst() { multilib_pkg_preinst() { # Make immodules.cache belongs to gtk+ alone local cache="/usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache" if [[ -e ${EROOT}${cache} ]]; then cp "${EROOT}${cache}" "${ED}${cache}" || die else touch "${ED}${cache}" || die fi } multilib_parallel_foreach_abi multilib_pkg_preinst gnome2_schemas_savelist } pkg_postinst() { multilib_pkg_postinst() { gnome2_query_immodules_gtk3 \ || die "Update immodules cache failed (for ${ABI})" } multilib_parallel_foreach_abi multilib_pkg_postinst gnome2_schemas_update if ! has_version "app-text/evince"; then elog "Please install app-text/evince for print preview functionality." elog "Alternatively, check \"gtk-print-preview-command\" documentation and" elog "add it to your settings.ini file." fi } pkg_postrm() { if [[ -z ${REPLACED_BY_VERSION} ]]; then multilib_pkg_postrm() { rm -f "${EROOT}/usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache" } multilib_foreach_abi multilib_pkg_postrm fi gnome2_schemas_update }