From 0820672a9d5a3d162aab4a1243a893b2c26733ce Mon Sep 17 00:00:00 2001 From: Daniel Brondani Date: Wed, 9 Nov 2022 12:02:34 +0100 Subject: [PATCH] Add `--verbose` flag to enable toolchain's verbose output --- README.md | 5 +++-- cmd/cbuild/root.go | 3 +++ pkg/builder/builder.go | 4 ++++ pkg/builder/builder_test.go | 7 +++++++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6566dfc..13be193 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This utility allows embedded developers to orchestrate the build of CPRJ project ## Usage ```bash -cbuild: Build Invocation 0.11.0-dev0 (C) 2022 ARM +cbuild: Build Invocation 1.3.0 (C) 2022 ARM Usage: cbuild [flags] @@ -29,5 +29,6 @@ Flags: -s, --schema Check *.cprj file against CPRJ.xsd schema -t, --target string Optional CMake target name -u, --update string Generate *.cprj file for reproducing current build - -v, --version Print version + -v, --verbose Enable verbose messages from toolchain builds + -V, --version Print version ``` diff --git a/cmd/cbuild/root.go b/cmd/cbuild/root.go index ed764d5..48ce121 100644 --- a/cmd/cbuild/root.go +++ b/cmd/cbuild/root.go @@ -85,6 +85,7 @@ func NewRootCmd() *cobra.Command { jobs, _ := cmd.Flags().GetInt("jobs") quiet, _ := cmd.Flags().GetBool("quiet") debug, _ := cmd.Flags().GetBool("debug") + verbose, _ := cmd.Flags().GetBool("verbose") clean, _ := cmd.Flags().GetBool("clean") schema, _ := cmd.Flags().GetBool("schema") packs, _ := cmd.Flags().GetBool("packs") @@ -103,6 +104,7 @@ func NewRootCmd() *cobra.Command { Jobs: jobs, Quiet: quiet, Debug: debug, + Verbose: verbose, Clean: clean, Schema: schema, Packs: packs, @@ -120,6 +122,7 @@ func NewRootCmd() *cobra.Command { rootCmd.Flags().BoolP("help", "h", false, "Print usage") rootCmd.Flags().BoolP("quiet", "q", false, "Suppress output messages except build invocations") rootCmd.Flags().BoolP("debug", "d", false, "Enable debug messages") + rootCmd.Flags().BoolP("verbose", "v", false, "Enable verbose messages from toolchain builds") rootCmd.Flags().BoolP("clean", "c", false, "Remove intermediate and output directories") rootCmd.Flags().BoolP("schema", "s", false, "Check *.cprj file against CPRJ.xsd schema") rootCmd.Flags().BoolP("packs", "p", false, "Download missing software packs with cpackget") diff --git a/pkg/builder/builder.go b/pkg/builder/builder.go index d77e000..74c456d 100644 --- a/pkg/builder/builder.go +++ b/pkg/builder/builder.go @@ -41,6 +41,7 @@ type Options struct { Jobs int Quiet bool Debug bool + Verbose bool Clean bool Schema bool Packs bool @@ -349,6 +350,9 @@ func (b Builder) Build() error { if b.Options.Target != "" { args = append(args, "--target", b.Options.Target) } + if b.Options.Debug || b.Options.Verbose { + args = append(args, "--verbose") + } err = b.Runner.ExecuteCommand(vars.cmakeBin, false, args...) if err != nil { log.Error("error executing 'cmake' build") diff --git a/pkg/builder/builder_test.go b/pkg/builder/builder_test.go index 025782f..2934ad5 100644 --- a/pkg/builder/builder_test.go +++ b/pkg/builder/builder_test.go @@ -318,6 +318,13 @@ func TestBuild(t *testing.T) { assert.Nil(err) }) + t.Run("test build verbose", func(t *testing.T) { + b.Options.Debug = false + b.Options.Verbose = true + err := b.Build() + assert.Nil(err) + }) + t.Run("test build clean target", func(t *testing.T) { b.Options.Target = "clean" err := b.Build()