bitbake: 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.

(Bitbake rev: 8d0a76f5a595dddf16b7268bae2c00ef5f568316)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Patrick Ohly
2017-06-07 15:56:25 +02:00
committed by Richard Purdie
parent 6dafbaeff4
commit 5df6796d1c

View File

@@ -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)