diff options
author | Gilles Dartiguelongue <eva@gentoo.org> | 2010-10-14 16:43:30 +0200 |
---|---|---|
committer | Gilles Dartiguelongue <eva@gentoo.org> | 2010-10-14 16:44:04 +0200 |
commit | 8cfba2d169ebfc1c26b047e738a13d5733e0faa9 (patch) | |
tree | 3dd7225646dbc6e3a604efe83216fac7b2d65ce2 /eclass | |
parent | media-sound/sound-juicer: bump to 2.32 (diff) | |
download | gnome-8cfba2d169ebfc1c26b047e738a13d5733e0faa9.tar.gz gnome-8cfba2d169ebfc1c26b047e738a13d5733e0faa9.tar.bz2 gnome-8cfba2d169ebfc1c26b047e738a13d5733e0faa9.zip |
eclass: add prototype waf-utils eclass
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/waf-utils.eclass | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/eclass/waf-utils.eclass b/eclass/waf-utils.eclass new file mode 100644 index 00000000..a36c1619 --- /dev/null +++ b/eclass/waf-utils.eclass @@ -0,0 +1,74 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +# @ECLASS: waf-utils.eclass +# @MAINTAINER: +# ?@gentoo.org +# +# @CODE +# Original Author: Gilles Dartiguelongue <eva@gentoo.org> +# @CODE +# @BLURB: common ebuild functions for waf-based packages +# @DESCRIPTION: +# The waf-utils eclass contains functions that make creating ebuild for +# waf-based packages much easier. +# Its main features are support of common portage default settings. + +inherit base eutils multilib python + +case ${EAPI:-0} in + 3|2) EXPORT_FUNCTIONS pkg_setup src_configure src_compile src_install ;; + *) die "EAPI=${EAPI} is not supported" ;; +esac + +# @ECLASS-VARIABLE: DOCS +# @DESCRIPTION: +# Documents passed to dodoc command. + +# @FUNCTION: waf-utils_src_configure +# @DESCRIPTION: +# General function for configuring with waf. +waf-utils_pkg_setup() { + python_set_active_version 2 +} + +# @FUNCTION: waf-utils_src_configure +# @DESCRIPTION: +# General function for configuring with waf. +waf-utils_src_configure() { + debug-print-function ${FUNCNAME} "$@" + + CCFLAGS="${CFLAGS}" LINKFLAGS="${LDFLAGS}" "${S}"/waf \ + --prefix=/usr \ + --libdir=/usr/$(get_libdir) \ + $@ \ + configure || die "configure failed" +} + +# @FUNCTION: waf-utils_src_compile +# @DESCRIPTION: +# General function for compiling with waf. +waf-utils_src_compile() { + debug-print-function ${FUNCNAME} "$@" + + local jobs=$(sed \ + -e 's/.*\(\-j[ 0-9]\+\) .*/\1/' \ + -e 's/--jobs=\?/-j/' \ + -e 's/-j/--jobs=/' <<< ${MAKEOPTS}) + "${S}"/waf build ${jobs} || die "build failed" +} + +# @FUNCTION: waf-utils_src_install +# @DESCRIPTION: +# Function for installing the package. +waf-utils_src_install() { + debug-print-function ${FUNCNAME} "$@" + has ${EAPI:-0} 2 && ! use prefix && ED="${D}" + + "${S}"/waf --destdir="${ED}" install || die "Make install failed" + + # Manual document installation + [[ -n "${DOCS}" ]] && { dodoc ${DOCS} || die "dodoc failed" ; } +} + |