Gentoo Archives: gentoo-dev

From: Alexandre Rostovtsev <tetromino@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [RFC] new vala.eclass
Date: Mon, 27 Aug 2012 01:21:58
Message-Id: 1346030438.9829.91.camel@rook
In Reply to: [gentoo-dev] [RFC] new vala.eclass by Alexandre Rostovtsev
1 Second update, incorporating suggestions by Ulrich and Duncan.
2
3 # Copyright 1999-2012 Gentoo Foundation
4 # Distributed under the terms of the GNU General Public License v2
5 # $Header: $
6
7 # @ECLASS: vala.eclass
8 # @MAINTAINER:
9 # gnome@g.o
10 # @AUTHOR:
11 # Alexandre Rostovtsev <tetromino@g.o>
12 # @BLURB: Sets up the environment for using a specific version of vala.
13 # @DESCRIPTION:
14 # This eclass sets up commonly used environment variables for using a specific
15 # version of dev-lang/vala to configure and build a package. It is needed for
16 # packages whose build systems assume the existence of certain unversioned vala
17 # executables, pkgconfig files, etc., which Gentoo does not provide.
18 #
19 # This eclass provides one phase function: pkg_setup.
20
21 inherit multilib
22
23 EXPORT_FUNCTIONS pkg_setup
24
25 # @ECLASS-VARIABLE: VALA_API_VERSION
26 # @DEFAULT_UNSET
27 # @DESCRIPTION:
28 # Vala API version (e.g. 0.16).
29
30 # @FUNCTION: vala_pkg_setup
31 # @DESCRIPTION:
32 # Sets up the environment variables and pkgconfig files for $VALA_API_VERSION.
33 vala_pkg_setup() {
34 local p d valafoo
35
36 [[ ${VALA_API_VERSION} ]] || die "VALA_API_VERSION not set"
37
38 valafoo=$(type -P valac-${VALA_API_VERSION})
39 [[ ${valafoo} ]] && export VALAC="${valafoo}"
40
41 valafoo=$(type -P vala-${VALA_API_VERSION})
42 [[ ${valafoo} ]] && export VALA="${valafoo}"
43
44 valafoo=$(type -P vala-gen-introspect-${VALA_API_VERSION})
45 [[ ${valafoo} ]] && export VALA_GEN_INTROSPECT="${valafoo}"
46
47 valafoo=$(type -P vapigen-${VALA_API_VERSION})
48 [[ ${valafoo} ]] && export VAPIGEN="${valafoo}"
49
50 valafoo="${EPREFIX}/usr/share/vala/Makefile.vapigen"
51 [[ -e ${valafoo} ]] && export VAPIGEN_MAKEFILE="${valafoo}"
52
53 export VAPIGEN_VAPIDIR="${EPREFIX}/usr/share/vala/vapi"
54
55 mkdir -p "${T}/pkgconfig" || die "mkdir failed"
56 for p in libvala vapigen; do
57 for d in "${EPREFIX}/usr/$(get_libdir)/pkgconfig" "${EPREFIX}/usr/share/pkgconfig"; do
58 if [[ -e ${d}/${p}-${VALA_API_VERSION}.pc ]]; then
59 ln -s "${d}/${p}-${VALA_API_VERSION}.pc" "${T}/pkgconfig/${p}.pc" || die "ln failed"
60 break
61 fi
62 done
63 done
64 : ${PKG_CONFIG_PATH:="${EPREFIX}/usr/$(get_libdir)/pkgconfig:${EPREFIX}/usr/share/pkgconfig"}
65 export PKG_CONFIG_PATH="${T}/pkgconfig:${PKG_CONFIG_PATH}"
66 }