diff --git a/scripts/build/build/__init__.py b/scripts/build/build/__init__.py index 5f3cbbab362904..01fbd08fae04da 100644 --- a/scripts/build/build/__init__.py +++ b/scripts/build/build/__init__.py @@ -19,11 +19,12 @@ class Context: to generate make/ninja instructions and to compile. """ - def __init__(self, runner, repository_path: str, output_prefix: str, ninja_jobs: int): + def __init__(self, runner, repository_path: str, output_prefix: str, verbose: bool, ninja_jobs: int): self.builders = [] self.runner = runner self.repository_path = repository_path self.output_prefix = output_prefix + self.verbose = verbose self.ninja_jobs = ninja_jobs self.completed_steps = set() @@ -38,7 +39,8 @@ def SetupBuilders(self, targets: Sequence[str], options: BuilderOptions): found = False for choice in BUILD_TARGETS: builder = choice.Create(target, self.runner, self.repository_path, - self.output_prefix, self.ninja_jobs, options) + self.output_prefix, self.verbose, self.ninja_jobs, + options) if builder: self.builders.append(builder) found = True diff --git a/scripts/build/build/target.py b/scripts/build/build/target.py index 78e4599fb51b75..b1435f0d63bf67 100644 --- a/scripts/build/build/target.py +++ b/scripts/build/build/target.py @@ -389,7 +389,7 @@ def StringIntoTargetParts(self, value: str): return _StringIntoParts(value, suffix, self.fixed_targets, self.modifiers) def Create(self, name: str, runner, repository_path: str, output_prefix: str, - ninja_jobs: int, builder_options: BuilderOptions): + verbose: bool, ninja_jobs: int, builder_options: BuilderOptions): parts = self.StringIntoTargetParts(name) @@ -406,6 +406,7 @@ def Create(self, name: str, runner, repository_path: str, output_prefix: str, builder.target = self builder.identifier = name builder.output_dir = os.path.join(output_prefix, name) + builder.verbose = verbose builder.ninja_jobs = ninja_jobs builder.chip_dir = os.path.abspath(repository_path) builder.options = builder_options diff --git a/scripts/build/build_examples.py b/scripts/build/build_examples.py index 171c788c058424..b08a45feb02196 100755 --- a/scripts/build/build_examples.py +++ b/scripts/build/build_examples.py @@ -78,6 +78,11 @@ def ValidateTargetNames(context, parameter, values): default='INFO', type=click.Choice(__LOG_LEVELS__.keys(), case_sensitive=False), help='Determines the verbosity of script output.') +@click.option( + '--verbose', + default=False, + is_flag=True, + help='Pass verbose flag to ninja.') @click.option( '--target', default=[], @@ -142,7 +147,7 @@ def ValidateTargetNames(context, parameter, values): 'Set pigweed command launcher. E.g.: "--pw-command-launcher=ccache" ' 'for using ccache when building examples.')) @click.pass_context -def main(context, log_level, target, enable_link_map_file, repo, +def main(context, log_level, verbose, target, enable_link_map_file, repo, out_prefix, ninja_jobs, pregen_dir, clean, dry_run, dry_run_output, enable_flashbundle, no_log_timestamps, pw_command_launcher): # Ensures somewhat pretty logging of what is going on @@ -168,7 +173,9 @@ def main(context, log_level, target, enable_link_map_file, repo, logging.info('Building targets: %s', CommaSeparate(requested_targets)) context.obj = build.Context( - repository_path=repo, output_prefix=out_prefix, ninja_jobs=ninja_jobs, runner=runner) + repository_path=repo, output_prefix=out_prefix, verbose=verbose, + ninja_jobs=ninja_jobs, runner=runner + ) context.obj.SetupBuilders(targets=requested_targets, options=BuilderOptions( enable_link_map_file=enable_link_map_file, enable_flashbundle=enable_flashbundle, diff --git a/scripts/build/builders/gn.py b/scripts/build/builders/gn.py index f65d8878c2ba60..d5bfcb99a9ce9d 100644 --- a/scripts/build/builders/gn.py +++ b/scripts/build/builders/gn.py @@ -95,6 +95,8 @@ def _build(self): self.PreBuildCommand() cmd = ['ninja', '-C', self.output_dir] + if self.verbose: + cmd.append('-v') if self.ninja_jobs is not None: cmd.append('-j' + str(self.ninja_jobs)) if self.build_command: