mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00
utils.py: helper function for optional include files
The main intention is to provide easy-to-use and read helper functions for including files only when certain distro features are set. Functionally they are the same as bb.utils.contains and bb.utils.contains_any. Distro features are part of the base configuration and thus safe to use for conditional inclusion in recipes and bbappends, in contrast to recipe variables which might still change during parsing. Therefore the check is limited to DISTRO_FEATURES. This is the reason for having this in OE-core instead of bitbake. Default values are set so that no redundant parameters have to be passed for conditional includes. As a secondary usage, the functions can also be used in boolean checks. (From OE-Core rev: 13024ce5aae453769b546d5fbe533443aec3d6fd) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
7b95d5d701
commit
baeafe6dcc
|
@ -126,6 +126,46 @@ def features_backfill(var,d):
|
|||
if addfeatures:
|
||||
d.appendVar(var, " " + " ".join(addfeatures))
|
||||
|
||||
def all_distro_features(d, features, truevalue="1", falsevalue=""):
|
||||
"""
|
||||
Returns truevalue if *all* given features are set in DISTRO_FEATURES,
|
||||
else falsevalue. The features can be given as single string or anything
|
||||
that can be turned into a set.
|
||||
|
||||
This is a shorter, more flexible version of
|
||||
bb.utils.contains("DISTRO_FEATURES", features, truevalue, falsevalue, d).
|
||||
|
||||
Without explicit true/false values it can be used directly where
|
||||
Python expects a boolean:
|
||||
if oe.utils.all_distro_features(d, "foo bar"):
|
||||
bb.fatal("foo and bar are mutually exclusive DISTRO_FEATURES")
|
||||
|
||||
With just a truevalue, it can be used to include files that are meant to be
|
||||
used only when requested via DISTRO_FEATURES:
|
||||
require ${@ oe.utils.all_distro_features(d, "foo bar", "foo-and-bar.inc")
|
||||
"""
|
||||
return bb.utils.contains("DISTRO_FEATURES", features, truevalue, falsevalue, d)
|
||||
|
||||
def any_distro_features(d, features, truevalue="1", falsevalue=""):
|
||||
"""
|
||||
Returns truevalue if at least *one* of the given features is set in DISTRO_FEATURES,
|
||||
else falsevalue. The features can be given as single string or anything
|
||||
that can be turned into a set.
|
||||
|
||||
This is a shorter, more flexible version of
|
||||
bb.utils.contains_any("DISTRO_FEATURES", features, truevalue, falsevalue, d).
|
||||
|
||||
Without explicit true/false values it can be used directly where
|
||||
Python expects a boolean:
|
||||
if not oe.utils.any_distro_features(d, "foo bar"):
|
||||
bb.fatal("foo, bar or both must be set in DISTRO_FEATURES")
|
||||
|
||||
With just a truevalue, it can be used to include files that are meant to be
|
||||
used only when requested via DISTRO_FEATURES:
|
||||
require ${@ oe.utils.any_distro_features(d, "foo bar", "foo-or-bar.inc")
|
||||
|
||||
"""
|
||||
return bb.utils.contains_any("DISTRO_FEATURES", features, truevalue, falsevalue, d)
|
||||
|
||||
def packages_filter_out_system(d):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue
Block a user