On 03/28/2011 12:48 PM, Khem Raj wrote: > On Mon, Mar 28, 2011 at 12:03 PM, Tom Rini <tom_r...@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.k...@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 _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core