diff options
author | Patrick Ohly <patrick.ohly@intel.com> | 2017-06-07 15:56:25 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-06-12 15:28:25 +0100 |
commit | 8d0a76f5a595dddf16b7268bae2c00ef5f568316 (patch) | |
tree | 3802707ec2c1f2d1c9ac345b94832ed87ae2800f | |
parent | 8b39c6361758b96fce50a53a6dba8008cd7e6433 (diff) | |
download | bitbake-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.py | 20 |
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) |