[OE-core] [v2][PATCH 1/1] vala.bbclass: add dependency on vala

Mark Hatle mark.hatle at windriver.com
Fri Sep 27 14:45:23 UTC 2013


On 9/26/13 7:13 PM, Randy MacLeod wrote:
> On 13-09-26 02:52 PM, Joe Slater wrote:
>> This class points the inheritor, if it is a target,
>> to directories in the target sysroot, so we want to
>> be sure the .vapi files are there.
>>
>> Signed-off-by: Joe Slater <jslater at windriver.com>
>> ---
>>    meta/classes/vala.bbclass |    8 +++++---
>>    1 files changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/meta/classes/vala.bbclass b/meta/classes/vala.bbclass
>> index c7db08c..3b70a04 100644
>> --- a/meta/classes/vala.bbclass
>> +++ b/meta/classes/vala.bbclass
>> @@ -1,9 +1,11 @@
>>    # Vala has problems with multiple concurrent invocations
>>    PARALLEL_MAKE = ""
>>
>> -# Vala needs vala-native
>> -DEPENDS += "vala-native"
>> -DEPENDS_virtclass-native += "vala-native"
>> +# Everyone needs vala-native and targets need vala, too,
>> +# because that is where target builds look for .vapi files.
>> +#
>> +VALADEPENDS_class-target = "vala"
>> +DEPENDS_append = " vala-native ${VALADEPENDS}"
>>
>>    # Our patched version of Vala looks in STAGING_DATADIR for .vapi files
>>    export STAGING_DATADIR
>>
>
>
> In response to your previous patch, Richard P said:
>> In class code this is a really bad idea. Why? Imagine a recipe which
>> does:
>>
>> DEPENDS =+ "x"
>> DEPENDS_class-native = "y"
>>
>> The += on the class-native above will not do what you think.
>>
>> I'd recommend something like:
>>
>> VALADEPENDS = "vala vala-native"
>> VALADEPENDS_class-native = "vala-native"
>> DEPENDS += "${VALADEPENDS}"
>>
>> Most other classes actually use _append on DEPENDS to ensure consistent
>> behaviour.
>
> so send it to oe-core and see what they say.
> Mark H any comments?

Good catch, I had missed this.

Ya the overrides (class-native) run -after- the rest of the system.  So:

DEPENDS = "foobar"
DEPENDS =+ "x"
DEPENDS_class-native =+ "y"

For "normal" it' would be "x foobar"
For "native" it would be "y"

This is because that system evals and gets:

DEPENDS = "foobar"  (DEPENDS = "foobar")
DEPENDS =+ "x"      (DEPENDS = "x foobar")
DEPENDS_class-native =+ "y"  (DEPENDS_class-native = "y")

invoke 'class-native' override,  DEPENDS = "y"

--Mark

> // Randy
>




More information about the Openembedded-core mailing list