summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'eclass/mate.eclass')
-rw-r--r--eclass/mate.eclass147
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 "$@"
+}