summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Ohly <patrick.ohly@intel.com>2017-06-07 15:56:25 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-06-12 15:28:25 +0100
commit8d0a76f5a595dddf16b7268bae2c00ef5f568316 (patch)
tree3802707ec2c1f2d1c9ac345b94832ed87ae2800f
parent8b39c6361758b96fce50a53a6dba8008cd7e6433 (diff)
downloadbitbake-contrib-8d0a76f5a595dddf16b7268bae2c00ef5f568316.tar.gz
ConfHandler.py: allow require or include with multiple parameters
"inherit" already allows inheriting more than one class in a single statement. The same also makes sense for "include" and "require", because then one can generate a list of files to be included dynamically also for the case that more than one file needs to be included. Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/parse/parse_py/ConfHandler.py20
1 files changed, 12 insertions, 8 deletions
diff --git a/lib/bb/parse/parse_py/ConfHandler.py b/lib/bb/parse/parse_py/ConfHandler.py
index b006d0672..97aa13043 100644
--- a/lib/bb/parse/parse_py/ConfHandler.py
+++ b/lib/bb/parse/parse_py/ConfHandler.py
@@ -69,21 +69,25 @@ def init(data):
def supports(fn, d):
return fn[-5:] == ".conf"
-def include(parentfn, fn, lineno, data, error_out):
+def include(parentfn, fns, lineno, data, error_out):
"""
error_out: A string indicating the verb (e.g. "include", "inherit") to be
used in a ParseError that will be raised if the file to be included could
not be included. Specify False to avoid raising an error in this case.
"""
- if parentfn == fn: # prevent infinite recursion
- return None
-
- fn = data.expand(fn)
+ fns = data.expand(fns)
parentfn = data.expand(parentfn)
- if not fn:
- # "include" or "require" without parameter is fine, just return.
- return
+ # "include" or "require" accept zero to n space-separated file names to include.
+ for fn in fns.split():
+ include_single_file(parentfn, fn, lineno, data, error_out)
+
+def include_single_file(parentfn, fn, lineno, data, error_out):
+ """
+ Helper function for include() which does not expand or split its parameters.
+ """
+ if parentfn == fn: # prevent infinite recursion
+ return None
if not os.path.isabs(fn):
dname = os.path.dirname(parentfn)