reproducible_builds=False, force_build=False,
force_build_failures=False, force_reconfig=False,
in_tree=False, force_config_on_failure=False, make_func=None,
- dtc_skip=False):
+ dtc_skip=False, build_target=None):
"""Create a new Builder object
Args:
retrying a failed build
make_func (function): Function to call to run 'make'
dtc_skip (bool): True to skip building dtc and use the system one
+ build_target (str): Build target to use (None to use the default)
"""
self.toolchains = toolchains
self.base_dir = base_dir
raise ValueError('Cannot find dtc')
else:
self.dtc = None
+ self.build_target = build_target
if not self.squash_config_y:
self.config_filenames += EXTRA_CONFIG_FILENAMES
"""
if config_only:
args.append('cfg')
+ elif self.builder.build_target:
+ args.append(self.builder.build_target)
result = self.make(commit, brd, 'build', cwd, *args, env=env)
cmd_list.append([self.builder.gnu_make] + args)
if (result.return_code == 2 and
--process-limit option for this: --process-limit 1 will allow only one buildman
to process jobs at a time.
+To build a particular target, rather than the default U-Boot target, use the
+`--target` option. This is unlikely to be useful unless you are building a
+single board.
+
Build summary
-------------
This is split out to avoid having too many statements in one function
"""
+ # Available JqzZ
parser.add_argument('-a', '--adjust-cfg', type=str, action='append',
help='Adjust the Kconfig settings in .config before building')
parser.add_argument('-A', '--print-prefix', action='store_true',
parser.add_argument('-T', '--threads', type=int,
default=None,
help='Number of builder threads to use (0=single-thread)')
+ parser.add_argument('--target', type=str,
+ default=None, help='Build target to use')
parser.add_argument('-u', '--show_unknown', action='store_true',
default=False, help='Show boards with unknown build result')
parser.add_argument('-U', '--show-environment', action='store_true',
args.verbose)
return 0
+ if args.config_only and args.target:
+ raise ValueError('Cannot use --config-only with --target')
+
# Create a new builder with the selected args
builder = Builder(toolchains, output_dir, git_dir,
args.threads, args.jobs, checkout=True,
force_build_failures = args.force_build_failures,
force_reconfig = args.force_reconfig, in_tree = args.in_tree,
force_config_on_failure=not args.quick, make_func=make_func,
- dtc_skip=args.dtc_skip)
+ dtc_skip=args.dtc_skip, build_target=args.target)
TEST_BUILDER = builder
'board': 'ARM Board 0',
'config': 'config0',
'target': 'board0'}, []), res)
+
+ def testTarget(self):
+ """Test that the --target flag works"""
+ lines = self.check_command('--target', 'u-boot.dtb')[0]
+
+ # It should not affect the defconfig line
+ self.assertNotIn(b'u-boot.dtb', lines[0])
+
+ # It should appear at the end of the build line
+ self.assertEqual(b'u-boot.dtb', lines[1].split()[-1])