Patchwork [v2,1/1] vala.bbclass: add dependency on vala

login
register
mail settings
Submitter Joe Slater
Date Sept. 26, 2013, 6:52 p.m.
Message ID <1380221559-25585-1-git-send-email-jslater@windriver.com>
Download mbox | patch
Permalink /patch/59045/
State New
Headers show

Comments

Joe Slater - Sept. 26, 2013, 6:52 p.m.
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@windriver.com>
---
 meta/classes/vala.bbclass |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)
Randy MacLeod - Sept. 27, 2013, 12:13 a.m.
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@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?

// Randy
Mark Hatle - Sept. 27, 2013, 2:45 p.m.
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@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
>
Saul Wold - Oct. 29, 2013, 3:11 p.m.
On 09/26/2013 11:52 AM, 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@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}"
You should really have a default value for VALADEPENDS = "", the above 
class override relies on bitbake behaviour which could change.

Thanks

Sau!

>
>   # Our patched version of Vala looks in STAGING_DATADIR for .vapi files
>   export STAGING_DATADIR
>

Patch

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