|
@@ -339,9 +339,12 @@ def choose_config(configs, non_interactive):
|
|
|
config_n = int_input([i[0] for i in config_list])
|
|
|
return config_list[config_n][1]
|
|
|
|
|
|
-def choose_fragments(possibilities, parameters, non_interactive):
|
|
|
+def choose_fragments(possibilities, parameters, non_interactive, skip_selection):
|
|
|
choices = {}
|
|
|
for k,v in possibilities.items():
|
|
|
+ if skip_selection and k in skip_selection:
|
|
|
+ print("Skipping a selection of {}, as requested on command line. The resulting bitbake configuration may require further manual adjustments.".format(k))
|
|
|
+ continue
|
|
|
choice = [o for o in v["options"] if o in parameters]
|
|
|
if len(choice) > 1:
|
|
|
raise Exception("Options specified on command line do not allow a single selection from possibilities {}, please remove one or more from {}".format(v["options"], parameters))
|
|
@@ -395,9 +398,10 @@ def obtain_config(settings, args, source_overrides, d):
|
|
|
upstream_config = {'type':'registry','registry':settings["default"]["registry"],'name':config_id,'data':json.load(open(get_registry_config(registry_path,config_id)))}
|
|
|
|
|
|
upstream_config['bitbake-config'] = choose_bitbake_config(upstream_config['data']['bitbake-setup']['configurations'], config_parameters, args.non_interactive)
|
|
|
- upstream_config['bitbake-config']['oe-fragment-choices'] = choose_fragments(upstream_config['bitbake-config'].get('oe-fragments-one-of',{}), config_parameters[1:], args.non_interactive)
|
|
|
+ upstream_config['bitbake-config']['oe-fragment-choices'] = choose_fragments(upstream_config['bitbake-config'].get('oe-fragments-one-of',{}), config_parameters[1:], args.non_interactive, args.skip_selection)
|
|
|
upstream_config['non-interactive-cmdline-options'] = [config_id, upstream_config['bitbake-config']['name']] + sorted(upstream_config['bitbake-config']['oe-fragment-choices'].values())
|
|
|
upstream_config['source-overrides'] = source_overrides
|
|
|
+ upstream_config['skip-selection'] = args.skip_selection
|
|
|
return upstream_config
|
|
|
|
|
|
def init_config(settings, args, d):
|
|
@@ -492,6 +496,7 @@ def build_status(settings, args, d, update=False):
|
|
|
|
|
|
args.config = current_upstream_config['non-interactive-cmdline-options']
|
|
|
args.non_interactive = True
|
|
|
+ args.skip_selection = current_upstream_config['skip-selection']
|
|
|
source_overrides = current_upstream_config["source-overrides"]
|
|
|
new_upstream_config = obtain_config(settings, args, source_overrides, d)
|
|
|
|
|
@@ -778,6 +783,7 @@ def main():
|
|
|
parser_init.add_argument('--non-interactive', action='store_true', help='Do not ask to interactively choose from available options; if bitbake-setup cannot make a decision it will stop with a failure.')
|
|
|
parser_init.add_argument('--source-overrides', action='store', help='Override sources information (repositories/revisions) with values from a local json file.')
|
|
|
parser_init.add_argument('--build-dir-name', action='store', help='A custom build directory name under the top directory.')
|
|
|
+ parser_init.add_argument('--skip-selection', action='append', help='Do not select and set an option/fragment from available choices; the resulting bitbake configuration may be incomplete.')
|
|
|
parser_init.set_defaults(func=init_config)
|
|
|
|
|
|
parser_status = subparsers.add_parser('status', help='Check if the build needs to be synchronized with configuration')
|