From 038abb6a1fea482b49b102d0c1305da9eb099169 Mon Sep 17 00:00:00 2001 From: Sourabh Mehta Date: Fri, 4 Oct 2024 07:25:37 +0200 Subject: [PATCH] Add option to setup command allowing it to run without installed toolchains --- cmd/cbuild/commands/setup/setup.go | 3 +++ pkg/builder/cbuildidx/builder.go | 6 ++++++ pkg/builder/cproject/builder.go | 6 ++++++ pkg/builder/interface.go | 1 + 4 files changed, 16 insertions(+) diff --git a/cmd/cbuild/commands/setup/setup.go b/cmd/cbuild/commands/setup/setup.go index 35c5522..0e95fa5 100644 --- a/cmd/cbuild/commands/setup/setup.go +++ b/cmd/cbuild/commands/setup/setup.go @@ -67,6 +67,7 @@ func setUpProject(cmd *cobra.Command, args []string) error { useContextSet, _ := cmd.Flags().GetBool("context-set") frozenPacks, _ := cmd.Flags().GetBool("frozen-packs") useCbuildgen, _ := cmd.Flags().GetBool("cbuildgen") + noDatabase, _ := cmd.Flags().GetBool("no-database") useCbuild2CMake := true if useCbuildgen { @@ -99,6 +100,7 @@ func setUpProject(cmd *cobra.Command, args []string) error { Toolchain: toolchain, FrozenPacks: frozenPacks, UseCbuild2CMake: useCbuild2CMake, + NoDatabase: noDatabase, } configs, err := utils.GetInstallConfigs() @@ -152,4 +154,5 @@ func init() { SetUpCmd.Flags().StringP("log", "", "", "Save output messages in a log file") SetUpCmd.Flags().StringP("toolchain", "", "", "Input toolchain to be used") SetUpCmd.Flags().BoolP("cbuildgen", "", false, "Generate legacy *.cprj files and use cbuildgen backend") + SetUpCmd.Flags().BoolP("no-database", "", false, "Do not generate compilation database") } diff --git a/pkg/builder/cbuildidx/builder.go b/pkg/builder/cbuildidx/builder.go index 2860761..5ab2b14 100644 --- a/pkg/builder/cbuildidx/builder.go +++ b/pkg/builder/cbuildidx/builder.go @@ -148,6 +148,12 @@ func (b CbuildIdxBuilder) build() error { return nil } + // no CMake orchestration needed + if b.Options.NoDatabase { + log.Info("build finished successfully!") + return nil + } + if vars.CmakeBin == "" { err = errutils.New(errutils.ErrBinaryNotFound, "cmake", "") return err diff --git a/pkg/builder/cproject/builder.go b/pkg/builder/cproject/builder.go index 21d8d4c..fccea98 100644 --- a/pkg/builder/cproject/builder.go +++ b/pkg/builder/cproject/builder.go @@ -183,6 +183,12 @@ func (b CprjBuilder) build() error { } } + // no CMake orchestration needed + if b.Options.NoDatabase { + log.Info("build finished successfully!") + return nil + } + args = []string{"cmake", b.InputFile, "--outdir=" + dirs.OutDir, "--intdir=" + dirs.IntDir} if b.Options.Quiet { args = append(args, "--quiet") diff --git a/pkg/builder/interface.go b/pkg/builder/interface.go index fdf06da..af7a188 100644 --- a/pkg/builder/interface.go +++ b/pkg/builder/interface.go @@ -48,6 +48,7 @@ type Options struct { UseContextSet bool FrozenPacks bool UseCbuild2CMake bool + NoDatabase bool } type InternalVars struct {