[OE-core] DEPENDS tranlation with BBCLASSEXTEND
richard.purdie at linuxfoundation.org
Mon Mar 28 14:48:33 CEST 2011
On Sun, 2011-03-27 at 16:03 -0700, Chris Larson wrote:
> On Sun, Mar 27, 2011 at 1:08 PM, Khem Raj <raj.khem at 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.
Thats the quick summary, yes. The DEPENDS variable is manipulated in
several different ways by the core and by .bb files and to coexist with
that, native.bbclass needs to play more games of its own. I recently
commented on that in another thread on this list.
I don't like the current situation, I'd like to simplify it and am open
to proposals on how we could do that as its too complicated at the
I would add that it does work though and the current situation using
BBCLASSEXTEND is a lot better than having many native .bb files IMO and
moves use closer to where we'd like to be.
More information about the Openembedded-core