[OE-core] what is meaning of "SRC_URI_append_whatever +=" ??

Phil Blundell philb at gnu.org
Wed Mar 21 11:11:11 UTC 2012


On Wed, 2012-03-21 at 06:28 -0400, Robert P. J. Day wrote:
>   of course, if all of the above is perfectly valid, i'm going to be
> embarrassed.

All the constructs you mentioned are syntactically valid, though it
isn't clear that all of them are very useful.

There is a subtle difference between SRC_URI_append = "..." and
SRC_URI_append += "..." in that the latter will insert a space whereas
the former will not.  But I don't think there is any situation where
this distinction serves any useful purpose.  As far as I know, with
current bitbake at least,

SRC_URI = "a"
SRC_URI_append = "b"
SRC_URI_append += "c"

and

SRC_URI = "a"
SRC_URI_append = "b"
SRC_URI_append = " c"

will both produce exactly the same effect, viz. SRC_URI = "ab c".  I
think it might have been the case with some older bitbakes that the
middle line would have no effect in this situation but that doesn't
appear to be true now.

>  SRC_URI_append = "..."                (why not just SRC_URI +=?)

There are two differences in behaviour between these two.  First,
trivially, _append doesn't add a space (i.e. it's closer to ".=" than
"+=").  Secondly, and more significantly, the effect of _append is
delayed whereas the effect of +=/.= is immediate.  So, given:

SRC_URI_append = "b"
SRC_URI = "a"

you will get the result SRC_URI = "ab".  Whereas if you had written:

SRC_URI += "b"
SRC_URI = "a"

you would get SRC_URI = "a".  There are places in the metadata that rely
on these semantics, though in many ways this is unwholesome behaviour
and it would be nice to eliminate the places where it is used.

p.






More information about the Openembedded-core mailing list