From: Tom Rini <tom_rini@mentor.com>
To: Khem Raj <raj.khem@gmail.com>
Cc: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Re: DEPENDS tranlation with BBCLASSEXTEND
Date: Mon, 28 Mar 2011 13:06:38 -0700 [thread overview]
Message-ID: <4D90EA4E.8070105@mentor.com> (raw)
In-Reply-To: <AANLkTi=Fc8N4ikQvH_6gA-1NkgjXiSmjwc9sn5m4G0Dm@mail.gmail.com>
On 03/28/2011 12:48 PM, Khem Raj wrote:
> On Mon, Mar 28, 2011 at 12:03 PM, Tom Rini <tom_rini@mentor.com> wrote:
>> On 03/27/2011 04:03 PM, Chris Larson wrote:
>>> On Sun, Mar 27, 2011 at 1:08 PM, Khem Raj <raj.khem@gmail.com> wrote:
>>>> I observed that if I have
>>>> DEPENDS = "a b" in recipe.bb which has BBCLASSEXTEND = "native"
>>>> then dependecies for recipe-native shows a-native b-native so far so
>>>> good
>>>>
>>>> Now if I want to add a dependency which only is needed for native recipe
>>>> I do
>>>>
>>>> DEPENDS_virtclass-native += "c-native"
>>>>
>>>> what this does is it will ignore a-native and b-native dependencies and
>>>> only adds "c-native" to depends of native recipe
>>>>
>>>> DEPENDS_virtclass-native_append = " c-native"
>>>>
>>>> This does what I wanted i.e. have deps on a-native b-native c-native
>>>>
>>>> I think behavior of += or _append should be similar. Is my understanding
>>>> correct ?
>>>
>>> They've never been the same. += is immediate, _append is delayed. If
>>> a class, say, native.bbclass, defines the variable with ?=, and you
>>> used += before the inherit, then it will have a value, and the ?=
>>> won't assign. I assume native.bbclass does it this way today so you
>>> can override the automatic behavior by defining the variable yourself,
>>> but I'll let Richard speak to that decision.
>>
>> As Richard said, this is a good summary. And a shorter still summary
>> (as Chris reminds me everytime I forget) is that since BBCLASSEXTENDS
>> makes use of an override already (virtclass-native/cross/etc) you must
>> keep that in mind when further modifying it as you get not what you
>> expected but what you asked for.
>>
>
> Yes no doubt on how it works and can be coded to likings of what we
> have but I think
> that having += and friends as well as _append and _prepend could be
> combined into one logic
> immediate appending/prepending operation may be confusing IMO while
> immediate assignments
> I think still are ok. We have more than one directives doing very
> similar yet semantically different operations
> It becomes hard for recipe writers. May be I am over simplifying
The problem is that we have different operators for different things.
Usually +=/=+ are what you want in a recipe for variables and append /
prepend are for classes that do tricky things. The problem, as Richard
explains is that BBCLASSEXTEND makes things special and we need to deal
with that better.
--
Tom Rini
Mentor Graphics Corporation
next prev parent reply other threads:[~2011-03-28 20:08 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-27 20:08 DEPENDS tranlation with BBCLASSEXTEND Khem Raj
2011-03-27 23:03 ` Chris Larson
2011-03-28 12:48 ` Richard Purdie
2011-03-28 19:03 ` Tom Rini
2011-03-28 19:48 ` Khem Raj
2011-03-28 20:06 ` Tom Rini [this message]
2011-03-28 20:11 ` Khem Raj
2011-03-28 20:24 ` Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D90EA4E.8070105@mentor.com \
--to=tom_rini@mentor.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=raj.khem@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.