diff options
Diffstat (limited to 'eclass/functions.eclass')
-rw-r--r-- | eclass/functions.eclass | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/eclass/functions.eclass b/eclass/functions.eclass new file mode 100644 index 000000000000..3cbec888240a --- /dev/null +++ b/eclass/functions.eclass @@ -0,0 +1,167 @@ +# Copyright 1999-2000 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License, v2 or later +# Author Dan Armak <danarmak@gentoo.org> +# $Header: /var/cvsroot/gentoo-x86/eclass/functions.eclass,v 1.1 2002/02/06 20:38:10 danarmak Exp $ +# This contains everything except things that modify ebuild variables and functions (e.g. $P, src_compile() etc.) +ECLASS=functions + +# --------------------- +# misc helper functions +# --------------------- + +# adds all parameters to DEPEND and RDEPEND +newdepend() { + + debug-print-function newdepend $* + debug-print "newdepend: DEPEND=$DEPEND RDEPEND=$RDEPEND" + + while [ -n "$1" ]; do + case $1 in + "/autotools") + DEPEND="${DEPEND} sys-devel/autoconf sys-devel/automake sys-devel/make" + ;; + "/c") + DEPEND="${DEPEND} sys-devel/gcc virtual/glibc sys-devel/ld.so" + RDEPEND="${RDEPEND} virtual/glibc sys-devel/ld.so" + ;; + *) + DEPEND="$DEPEND $1" + RDEPEND="$RDEPEND $1" + ;; + esac + shift + done + +} + +# --------------------------------------------------------------- +# kde/qt directory management etc. functions, was kde-dirs.ebuild +# --------------------------------------------------------------- + +need-kde() { + + debug-print-function $FUNCNAME $* + KDEVER="$1" + + #newdepend ">=kde-base/kdelibs-$KDEVER" + min-kde-ver $KDEVER + newdepend ">=kde-base/kdelibs-${selected_version}" + set-kdedir $KDEVER + + qtver-from-kdever $KDEVER + need-qt $selected_version + +} + +set-kdedir() { + + debug-print-function $FUNCNAME $* + + # for older make.globals versions which don't include the default KDE?DIR settings + [ -z "$KDE2DIR" ] && export KDE2DIR="/usr/kde/2" + [ -z "$KDE3DIR" ] && export KDE3DIR="/usr/kde/3" + # not defined at all by default + [ -z "$KDE2LIBSDIR" ] && export KDE2LIBSDIR="$KDE2DIR" + [ -z "$KDE3LIBSDIR" ] && export KDE3LIBSDIR="$KDE3DIR" + + local KDEVER + KDEVER=$1 + + # select 1st element in dot-separated string + IFSBACKUP=$IFS + IFS="." + KDEMAJORVER="" + for x in $KDEVER; do + [ -z "$KDEMAJORVER" ] && KDEMAJORVER=$x + done + IFS=$IFSBACKUP + + case $KDEMAJORVER in + 2) export KDEDIR=${KDE2LIBSDIR};; + 3) export KDEDIR=${KDE3LIBSDIR};; + esac + + debug-print "$FUNCNAME: result: KDEDIR=$KDEDIR" + +} + +need-qt() { + + debug-print-function $FUNCNAME $* + QTVER="$1" + #newdepend ">=x11-libs/qt-$QTVER" + min-qt-ver $QTVER + newdepend "=x11-libs/qt-$selected_version*" + set-qtdir $QTVER + +} + +set-qtdir() { + + debug-print-function $FUNCNAME $* + + local QTVER + QTVER=$1 + + # select 1st element in dot-separated string + IFSBACKUP=$IFS + IFS="." + QTMAJORVER="" + for x in $QTVER; do + [ -z "$QTMAJORVER" ] && QTMAJORVER=$x + done + IFS=$IFSBACKUP + + export QTDIR="/usr/qt/$QTMAJORVER" + +} + +# returns minimal qt version needed for specified kde version +qtver-from-kdever() { + + debug-print-function $FUNCNAME $* + + local ver + + case $1 in + 2*) ver=2.3.1;; + 3*) ver=3.0.1;; + *) echo "!!! error: $FUNCNAME() called with invalid parameter: \"$1\", please report bug" && exit 1;; + esac + + selected_version="$ver" + +} + +# compat +need-kdelibs() { + echo "WARNING: need-kdelibs() called, where need-kde() is correct. +If this happens at the unmerging of an old ebuild, disregard; otherwise report." + need-kde $* +} + +# for new schemes +min-kde-ver() { + + debug-print-function $FUNCNAME $* + + case $1 in + 2*) selected_version="2.2.2-r2";; + 3*) selected_version="3.0";; + *) echo "!!! error: $FUNCNAME() called with invalid parameter: \"$1\", please report bug" && exit 1;; + esac + +} + +min-qt-ver() { + + debug-print-function $FUNCNAME $* + + case $1 in + 2*) selected_version="2.3";; + 3*) selected_version="3";; + *) echo "!!! error: $FUNCNAME() called with invalid parameter: \"$1\", please report bug" && exit 1;; + esac + +} + |