diff options
Diffstat (limited to 'eclass/mate.eclass')
-rw-r--r-- | eclass/mate.eclass | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/eclass/mate.eclass b/eclass/mate.eclass new file mode 100644 index 0000000..9259634 --- /dev/null +++ b/eclass/mate.eclass @@ -0,0 +1,147 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +# @ECLASS: mate.eclass +# @MAINTAINER: +# mate@gentoo.org +# @AUTHOR: +# Authors: NP-Hardass <NP-Hardass@gentoo.org> based upon the gnome2 +# and autotools-utils eclasses +# @BLURB: Provides phases for MATE based packages. +# @DESCRIPTION: +# Exports portage base functions used by ebuilds written for packages using the +# MATE framework. Occassionally acts as a wrapper to gnome2 due to the +# fact that MATE is a GNOME fork. For additional functions, see gnome2-utils.eclass. + +# Check EAPI only +if [[ "${EAPI:-0}" != "6" ]]; then + die "EAPI=${EAPI:-0} is not supported" +fi + +# Inherit happens below after declaration of GNOME2_LA_PUNT + +# @ECLASS-VARIABLE: MATE_LA_PUNT +# @DESCRIPTION: +# Available values for MATE_LA_PUNT: +# - "no": will not clean any .la files +# - "yes": will run prune_libtool_files --modules +# - If it is not set, it will run prune_libtool_files +# MATE_LA_PUNT is a stub to GNOME2_LA_PUNT +GNOME2_LA_PUNT=${MATE_LA_PUNT:-""} + +inherit gnome2 autotools mate-desktop.org + +if [[ "${EAPI:-0}" == "6" ]]; then + EXPORT_FUNCTIONS src_prepare src_configure src_install pkg_preinst pkg_postinst pkg_postrm +fi + +# Autotools requires our MATE m4 files +DEPEND=">=mate-base/mate-common-${MATE_BRANCH}" + +# @FUNCTION: mate_py_cond_func_wrap +# @DESCRIPTION: Wraps a function for conditional python use, to run for each +# python implementation in the build directory. +# This function should only be used if the ebuild also inherits the +# python-r1 eclass +mate_py_cond_func_wrap() { + if [[ ! ${_PYTHON_r1} ]]; then + die "This function requires the inheritence of the python-r1 eclass" + fi + if use python; then + python_foreach_impl run_in_build_dir "$@" + else + $@ + fi +} + +# @ECLASS-VARIABLE: FORCE_AUTORECONF +# @DESCRIPTION: +# Available values for FORCE_AUTORECONF: +# - true: will always run eautoreconf +# - false: will default to automatic detect +# - If it is not set, it will default to false +: ${MATE_FORCE_AUTORECONF:="false"} + +# @FUNCTION: ematedocize +# @DESCRIPTION: A wrapper around mate-doc-common +ematedocize() { + ebegin "Running mate-doc-common --copy" + mate-doc-common --copy || die + eend $? +} + +# @FUNCTION: want_mate_doc +# @DESCRIPTION: +# Returns true/false based on whether eautoreconf should call +# ematedocize +want_mate_doc() { + grep -q USE_COMMON_DOC_BUILD autogen.sh +} + +# @FUNCTION: mate_src_prepare +# @DESCRIPTION: +# Call gnome2_src_prepare to handle environment setup and patching, then +# call eautoreconf if necessary +mate_src_prepare() { + debug-print-function ${FUNCNAME} "$@" + + local force_autoreconf=${MATE_FORCE_AUTORECONF} + [[ ${PV} == 9999 ]] && force_autoreconf="true" + + gen_chksum() { + find '(' -name 'Makefile.am' \ + -o -name 'configure.ac' \ + -o -name 'configure.in' ')' \ + -exec cksum {} + | sort -k2 + } + + local chksum=$(gen_chksum) + + gnome2_src_prepare "$@" + + if [[ "${force_autoreconf}" == "true" ]] || [[ ${chksum} != $(gen_chksum) ]]; then + want_mate_doc && ematedocize + eautoreconf + fi +} + +# @FUNCTION: mate_src_configure +# @DESCRIPTION: +# MATE specific configure handling +# Stub to gnome2_src_configure() +mate_src_configure() { + gnome2_src_configure "$@" +} + +# @FUNCTION: mate_src_install +# @DESCRIPTION: +# MATE specific install. Stub to gnome2_src_install +mate_src_install() { + gnome2_src_install "$@" +} + +# @FUNCTION: mate_pkg_preinst +# @DESCRIPTION: +# Finds Icons, GConf and GSettings schemas for later handling in pkg_postinst +# Stub to gnome2_pkg_preinst +mate_pkg_preinst() { + gnome2_pkg_preinst "$@" +} + +# @FUNCTION: mate_pkg_postinst +# @DESCRIPTION: +# Handle scrollkeeper, GConf, GSettings, Icons, desktop and mime +# database updates. +# Stub to gnome2_pkg_postinst +mate_pkg_postinst() { + gnome2_pkg_postinst "$@" +} + +# @FUNCTION: mate_pkg_postrm +# @DESCRIPTION: +# Handle scrollkeeper, GSettings, Icons, desktop and mime database updates. +# Stub to gnome2_pkg_postrm +mate_pkg_postrm() { + gnome2_pkg_postrm "$@" +} |