[OE-core] style suggestions for that whole "_append" and leading space thing
Patrick Ohly
patrick.ohly at intel.com
Tue Feb 28 10:04:18 UTC 2017
On Mon, 2017-02-27 at 06:07 -0500, Robert P. J. Day wrote:
> getting pedantic (as i am wont to do), occasionally i run across
> things like this, from meta/conf/distro/include/no-static-libs.inc:
>
> EXTRA_OECONF_append = "${DISABLE_STATIC}"
>
> which, at first glance, simply seems wrong given the lack of a leading
> space, until one looks higher up in that same file to read:
>
> DISABLE_STATIC = " --disable-static"
>
> where one finds the leading space as part of the variable itself. i
> find this potentially *really* confusing; consistent style suggests
> variables should be assigned their values without regard as to how
> they might be used later. subsequent references or usages of those
> variables should be responsible for making sure they're included
> properly, no?
In principle you are right, but probably it was done this way here to
avoid adding a space to EXTRA_OECONF in those cases where DISABLE_STATIC
is overridden to be empty. Consider DISABLE_STATIC an implementation
detail and then it becomes okay to set it as needed by the
implementation.
> and the last line in that same file also suggests potential misuse:
>
> EXTRA_OECMAKE_append_pn-libical = "-DSHARED_ONLY=True"
Yes, that's just plain wrong and just happens to work by accident.
> p.s. would the same logic hold with lines like this?
>
> meta/conf/machine/include/tune-ppce6500.inc:
>
> MACHINE_FEATURES_BACKFILL_CONSIDERED_append =
> "${@bb.utils.contains('TUNE_FEATURES', 'e6500', ' qemu-usermode', '', d)}"
>
> would it not be clearer if one were to write:
>
> MACHINE_FEATURES_BACKFILL_CONSIDERED_append =
> " ${@bb.utils.contains('TUNE_FEATURES', 'e6500', 'qemu-usermode', '', d)}"
The existing line is better because it avoids adding a space when
nothing needs to be added.
--
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.
More information about the Openembedded-core
mailing list