[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gentoo-dev
Subject:    Re: [gentoo-dev] [RFC] new vala.eclass
From:       Alexandre Rostovtsev <tetromino () gentoo ! org>
Date:       2012-08-27 13:21:47
Message-ID: 1346073707.9829.124.camel () rook
[Download RAW message or body]

Third update; Alexis made a convincing argument that vala_pkg_setup
should be changed to vala_src_prepare.

# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

# @ECLASS: vala.eclass
# @MAINTAINER:
# gnome@gentoo.org
# @AUTHOR:
# Alexandre Rostovtsev <tetromino@gentoo.org>
# @BLURB: Sets up the environment for using a specific version of vala.
# @DESCRIPTION:
# This eclass sets up commonly used environment variables for using a specific
# version of dev-lang/vala to configure and build a package. It is needed for
# packages whose build systems assume the existence of certain unversioned vala
# executables, pkgconfig files, etc., which Gentoo does not provide.
#
# This eclass provides one phase function: src_prepare.

inherit multilib

case "${EAPI:-0}" in
	0|1)
		;;
	*)
		EXPORT_FUNCTIONS src_prepare
		;;
esac

# @ECLASS-VARIABLE: VALA_API_VERSION
# @DEFAULT_UNSET
# @DESCRIPTION:
# Vala API version (e.g. 0.16).

# @FUNCTION: vala_src_prepare
# @DESCRIPTION:
# Sets up the environment variables and pkgconfig files for $VALA_API_VERSION.
vala_src_prepare() {
	local p d valafoo

	[[ ${VALA_API_VERSION} ]] || die "VALA_API_VERSION not set"

	valafoo=$(type -P valac-${VALA_API_VERSION})
	[[ ${valafoo} ]] && export VALAC="${valafoo}"

	valafoo=$(type -P vala-${VALA_API_VERSION})
	[[ ${valafoo} ]] && export VALA="${valafoo}"

	valafoo=$(type -P vala-gen-introspect-${VALA_API_VERSION})
	[[ ${valafoo} ]] && export VALA_GEN_INTROSPECT="${valafoo}"

	valafoo=$(type -P vapigen-${VALA_API_VERSION})
	[[ ${valafoo} ]] && export VAPIGEN="${valafoo}"

	valafoo="${EPREFIX}/usr/share/vala/Makefile.vapigen"
	[[ -e ${valafoo} ]] && export VAPIGEN_MAKEFILE="${valafoo}"

	export VAPIGEN_VAPIDIR="${EPREFIX}/usr/share/vala/vapi"

	mkdir -p "${T}/pkgconfig" || die "mkdir failed"
	for p in libvala vapigen; do
		for d in "${EPREFIX}/usr/$(get_libdir)/pkgconfig" "${EPREFIX}/usr/share/pkgconfig"; do
			if [[ -e ${d}/${p}-${VALA_API_VERSION}.pc ]]; then
				ln -s "${d}/${p}-${VALA_API_VERSION}.pc" "${T}/pkgconfig/${p}.pc" || die "ln failed"
				break
			fi
		done
	done
	: ${PKG_CONFIG_PATH:="${EPREFIX}/usr/$(get_libdir)/pkgconfig:${EPREFIX}/usr/share/pkgconfig"}
	export PKG_CONFIG_PATH="${T}/pkgconfig:${PKG_CONFIG_PATH}"
}


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic