You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/eclass/xfconf.eclass

155 lines
3.7 KiB

# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
# @ECLASS: xfconf.eclass
# @MAINTAINER:
# XFCE maintainers <xfce@gentoo.org>
# @BLURB: Default XFCE ebuild layout
# @DESCRIPTION:
# Default XFCE ebuild layout
# @ECLASS-VARIABLE: EAUTORECONF
# @DESCRIPTION:
# Run eautoreconf instead of elibtoolize if the variable is set
if [[ -n ${EAUTORECONF} ]] ; then
AUTOTOOLS_AUTO_DEPEND=yes
else
: ${AUTOTOOLS_AUTO_DEPEND:=no}
fi
# @ECLASS-VARIABLE: XFCONF
# @DESCRIPTION:
# This should be an array defining arguments for econf
unset _xfconf_live
[[ $PV == *9999* ]] && _xfconf_live=git-2
inherit ${_xfconf_live} autotools eutils fdo-mime gnome2-utils libtool
EGIT_BOOTSTRAP=autogen.sh
EGIT_REPO_URI="git://git.xfce.org/xfce/${MY_PN:-${PN}}"
_xfconf_deps=""
_xfconf_m4=">=dev-util/xfce4-dev-tools-4.10"
[[ -n $_xfconf_live ]] && _xfconf_deps+=" dev-util/gtk-doc ${_xfconf_m4}"
[[ -n $EAUTORECONF ]] && _xfconf_deps+=" ${_xfconf_m4}"
RDEPEND=""
DEPEND="${_xfconf_deps}"
unset _xfconf_deps
unset _xfconf_m4
case ${EAPI:-0} in
5) ;;
*) die "Unknown EAPI." ;;
esac
[[ -n $_xfconf_live ]] && _xfconf_live=src_unpack
EXPORT_FUNCTIONS ${_xfconf_live} src_prepare src_configure src_install pkg_preinst pkg_postinst pkg_postrm
# @FUNCTION: xfconf_use_debug
# @DESCRIPTION:
# If IUSE has debug, return --enable-debug=minimum.
# If USE debug is enabled, return --enable-debug which is the same as --enable-debug=yes.
# If USE debug is enabled and the XFCONF_FULL_DEBUG variable is set, return --enable-debug=full.
xfconf_use_debug() {
if has debug ${IUSE}; then
if use debug; then
if [[ -n $XFCONF_FULL_DEBUG ]]; then
echo "--enable-debug=full"
else
echo "--enable-debug"
fi
else
echo "--enable-debug=minimum"
fi
else
ewarn "${FUNCNAME} called without debug in IUSE"
fi
}
# @FUNCTION: xfconf_src_unpack
# @DESCRIPTION:
# Run git-2_src_unpack if required
xfconf_src_unpack() {
NOCONFIGURE=1 git-2_src_unpack
}
# @FUNCTION: xfconf_src_prepare
# @DESCRIPTION:
# Process PATCHES with epatch and run epatch_user followed by run of
# elibtoolize, or eautoreconf if EAUTORECONF is set.
xfconf_src_prepare() {
debug-print-function ${FUNCNAME} "$@"
[[ ${PATCHES[@]} ]] && epatch "${PATCHES[@]}"
epatch_user
if [[ -n $EAUTORECONF ]]; then
AT_M4DIR=${EPREFIX}/usr/share/xfce4/dev-tools/m4macros eautoreconf
else
elibtoolize
fi
}
# @FUNCTION: xfconf_src_configure
# @DESCRIPTION:
# Run econf with opts from the XFCONF array
xfconf_src_configure() {
debug-print-function ${FUNCNAME} "$@"
[[ -n $_xfconf_live ]] && XFCONF+=( --enable-maintainer-mode )
econf "${XFCONF[@]}"
}
# @FUNCTION: xfconf_src_install
# @DESCRIPTION:
# Run emake install to DESTDIR, einstalldocs to process DOCS and
# prune_libtool_files --all to always remove libtool files (.la)
xfconf_src_install() {
debug-print-function ${FUNCNAME} "$@"
# FIXME
if [[ -n $_xfconf_live ]] && ! [[ -e ChangeLog ]]; then
touch ChangeLog
fi
emake DESTDIR="${D}" "$@" install
einstalldocs
prune_libtool_files --all
}
# @FUNCTION: xfconf_pkg_preinst
# @DESCRIPTION:
# Run gnome2_icon_savelist
xfconf_pkg_preinst() {
debug-print-function ${FUNCNAME} "$@"
gnome2_icon_savelist
}
# @FUNCTION: xfconf_pkg_postinst
# @DESCRIPTION:
# Run fdo-mime_{desktop,mime}_database_update and gnome2_icon_cache_update
xfconf_pkg_postinst() {
debug-print-function ${FUNCNAME} "$@"
fdo-mime_desktop_database_update
fdo-mime_mime_database_update
gnome2_icon_cache_update
}
# @FUNCTION: xfconf_pkg_postrm
# @DESCRIPTION:
# Run fdo-mime_{desktop,mime}_database_update and gnome2_icon_cache_update
xfconf_pkg_postrm() {
debug-print-function ${FUNCNAME} "$@"
fdo-mime_desktop_database_update
fdo-mime_mime_database_update
gnome2_icon_cache_update
}