Pacho Ramos has suggested making vala_src_prepare() into a no-op in the
common situation where vala is in IUSE and USE=-vala.

--- a/vala.eclass
+++ b/vala.eclass
@@ -77,20 +77,36 @@
 }
 
 # @FUNCTION: vala_src_prepare
-# @USAGE: [--vala-api-version api_version]
+# @USAGE: [--ignore-use] [--vala-api-version api_version]
 # @DESCRIPTION:
 # Sets up the environment variables and pkgconfig files for the
 # specified API version, or, if no version is specified, for the
 # highest installed vala API version satisfying
 # VALA_MAX_API_VERSION, VALA_MIN_API_VERSION, and VALA_USE_DEPEND.
-# Dies if called without --vala-api-version and no suitable vala
-# version is found.
+# Is a no-op if called without --ignore-use when USE=-vala.
+# Dies if the USE check is passed (or ignored) and a suitable vala
+# version is not available.
 vala_src_prepare() {
-       local p d valafoo version
+       local p d valafoo version ignore_use
 
-       if [[ $1 = "--vala-api-version" ]]; then
-               version=$2
-               [[ ${version} ]] || die "'--vala-api-version' option requires 
API version parameter."
+       while [[ $1 ]]; do
+               case $1 in
+                       "--ignore-use" )
+                               ignore_use=1 ;;
+                       "--vala-api-version" )
+                               shift
+                               version=$1
+                               [[ ${version} ]] || die "'--vala-api-version' 
option requires API version parameter."
+               esac
+               shift
+       done
+
+       if [[ -z ${ignore_use} ]]; then
+               has vala ${IUSE//+/} && ! use vala && return 0
+       fi
+
+       if [[ ${version} ]]; then
+               has_version "dev-lang/vala:${version}" || die "No installed 
vala:${version}"
        else
                version=$(vala_best_api_version)
                [[ ${version} ]] || die "No installed vala in $(vala_depend)"


Reply via email to