summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorGilles Dartiguelongue <eva@gentoo.org>2010-10-14 16:43:30 +0200
committerGilles Dartiguelongue <eva@gentoo.org>2010-10-14 16:44:04 +0200
commit8cfba2d169ebfc1c26b047e738a13d5733e0faa9 (patch)
tree3dd7225646dbc6e3a604efe83216fac7b2d65ce2 /eclass
parentmedia-sound/sound-juicer: bump to 2.32 (diff)
downloadgnome-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.eclass74
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" ; }
+}
+