From 7a2db7eef6f80377a7026e5adc59ac4222645d00 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 18 Sep 2023 12:43:59 +0200 Subject: [PATCH 01/12] Removed logger as a field of BuildOptionManager --- arduino/builder/build_options_manager.go | 11 ++++------- arduino/builder/builder.go | 3 +-- arduino/builder/sketch.go | 4 ++-- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/arduino/builder/build_options_manager.go b/arduino/builder/build_options_manager.go index 0d097bdb1e7..ff521628435 100644 --- a/arduino/builder/build_options_manager.go +++ b/arduino/builder/build_options_manager.go @@ -45,7 +45,6 @@ type BuildOptionsManager struct { customBuildProperties []string compilerOptimizationFlags string clean bool - builderLogger *logger.BuilderLogger } // NewBuildOptionsManager fixdoc @@ -58,7 +57,6 @@ func NewBuildOptionsManager( clean bool, compilerOptimizationFlags string, runtimePlatformPath, buildCorePath *paths.Path, - buildLogger *logger.BuilderLogger, ) *BuildOptionsManager { opts := properties.NewMap() @@ -98,25 +96,24 @@ func NewBuildOptionsManager( customBuildProperties: customBuildProperties, compilerOptimizationFlags: compilerOptimizationFlags, clean: clean, - builderLogger: buildLogger, } } // WipeBuildPath fixdoc -func (m *BuildOptionsManager) WipeBuildPath() error { +func (m *BuildOptionsManager) WipeBuildPath(logger *logger.BuilderLogger) error { buildOptionsJSON, err := json.MarshalIndent(m.currentOptions, "", " ") if err != nil { return errors.WithStack(err) } m.currentBuildOptionsJSON = buildOptionsJSON - if err := m.wipeBuildPath(); err != nil { + if err := m.wipeBuildPath(logger); err != nil { return errors.WithStack(err) } return m.buildPath.Join("build.options.json").WriteFile(buildOptionsJSON) } -func (m *BuildOptionsManager) wipeBuildPath() error { +func (m *BuildOptionsManager) wipeBuildPath(logger *logger.BuilderLogger) error { wipe := func() error { // FIXME: this should go outside legacy and behind a `logrus` call so users can // control when this should be printed. @@ -150,7 +147,7 @@ func (m *BuildOptionsManager) wipeBuildPath() error { var prevOpts *properties.Map if err := json.Unmarshal(buildOptionsJSONPrevious, &prevOpts); err != nil || prevOpts == nil { - m.builderLogger.Info(tr("%[1]s invalid, rebuilding all", "build.options.json")) + logger.Info(tr("%[1]s invalid, rebuilding all", "build.options.json")) return wipe() } diff --git a/arduino/builder/builder.go b/arduino/builder/builder.go index 64e06f82eb3..ebf5652c305 100644 --- a/arduino/builder/builder.go +++ b/arduino/builder/builder.go @@ -217,7 +217,6 @@ func NewBuilder( buildProperties.Get("compiler.optimization_flags"), buildProperties.GetPath("runtime.platform.path"), buildProperties.GetPath("build.core.path"), // TODO can we buildCorePath ? - logger, ), }, nil } @@ -249,7 +248,7 @@ func (b *Builder) preprocess() error { return err } - if err := b.BuildOptionsManager.WipeBuildPath(); err != nil { + if err := b.BuildOptionsManager.WipeBuildPath(b.logger); err != nil { return err } b.Progress.CompleteStep() diff --git a/arduino/builder/sketch.go b/arduino/builder/sketch.go index f54461fb74a..37a8272fdad 100644 --- a/arduino/builder/sketch.go +++ b/arduino/builder/sketch.go @@ -187,7 +187,7 @@ func (b *Builder) BuildSketch(includesFolders paths.PathList) error { b.onlyUpdateCompilationDatabase, b.compilationDatabase, b.jobs, - b.builderLogger, + b.logger, b.Progress, ) if err != nil { @@ -202,7 +202,7 @@ func (b *Builder) BuildSketch(includesFolders paths.PathList) error { b.onlyUpdateCompilationDatabase, b.compilationDatabase, b.jobs, - b.builderLogger, + b.logger, b.Progress, ) if err != nil { From 6f58a5a3fc3fe9157b89155d61e36715ce881211 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 18 Sep 2023 12:46:30 +0200 Subject: [PATCH 02/12] Made BuildOptionsManager a field of Builder --- arduino/builder/builder.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/arduino/builder/builder.go b/arduino/builder/builder.go index ebf5652c305..5f3650a1bed 100644 --- a/arduino/builder/builder.go +++ b/arduino/builder/builder.go @@ -79,8 +79,9 @@ type Builder struct { buildArtifacts *BuildArtifacts + buildOptions *BuildOptionsManager + *detector.SketchLibrariesDetector - *BuildOptionsManager } // BuildArtifacts contains the result of various build @@ -207,7 +208,7 @@ func NewBuilder( onlyUpdateCompilationDatabase, logger, ), - BuildOptionsManager: NewBuildOptionsManager( + buildOptions: NewBuildOptionsManager( hardwareDirs, builtInToolsDirs, otherLibrariesDirs, builtInLibrariesDirs, buildPath, sk, @@ -248,7 +249,7 @@ func (b *Builder) preprocess() error { return err } - if err := b.BuildOptionsManager.WipeBuildPath(b.logger); err != nil { + if err := b.buildOptions.WipeBuildPath(b.logger); err != nil { return err } b.Progress.CompleteStep() From fd2ffb2474e4de3dbd74c3f3a112172e4b56ef2f Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 18 Sep 2023 12:47:00 +0200 Subject: [PATCH 03/12] Renamed BuildOptionsManager -> BuildOptions --- arduino/builder/build_options_manager.go | 12 ++++++------ arduino/builder/builder.go | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/arduino/builder/build_options_manager.go b/arduino/builder/build_options_manager.go index ff521628435..5452c9f573a 100644 --- a/arduino/builder/build_options_manager.go +++ b/arduino/builder/build_options_manager.go @@ -29,8 +29,8 @@ import ( "github.com/pkg/errors" ) -// BuildOptionsManager fixdoc -type BuildOptionsManager struct { +// BuildOptions fixdoc +type BuildOptions struct { currentOptions *properties.Map currentBuildOptionsJSON []byte @@ -57,7 +57,7 @@ func NewBuildOptionsManager( clean bool, compilerOptimizationFlags string, runtimePlatformPath, buildCorePath *paths.Path, -) *BuildOptionsManager { +) *BuildOptions { opts := properties.NewMap() opts.Set("hardwareFolders", strings.Join(hardwareDirs.AsStrings(), ",")) @@ -83,7 +83,7 @@ func NewBuildOptionsManager( } opts.Set("additionalFiles", strings.Join(additionalFilesRelative, ",")) - return &BuildOptionsManager{ + return &BuildOptions{ currentOptions: opts, hardwareDirs: hardwareDirs, builtInToolsDirs: builtInToolsDirs, @@ -100,7 +100,7 @@ func NewBuildOptionsManager( } // WipeBuildPath fixdoc -func (m *BuildOptionsManager) WipeBuildPath(logger *logger.BuilderLogger) error { +func (m *BuildOptions) WipeBuildPath(logger *logger.BuilderLogger) error { buildOptionsJSON, err := json.MarshalIndent(m.currentOptions, "", " ") if err != nil { return errors.WithStack(err) @@ -113,7 +113,7 @@ func (m *BuildOptionsManager) WipeBuildPath(logger *logger.BuilderLogger) error return m.buildPath.Join("build.options.json").WriteFile(buildOptionsJSON) } -func (m *BuildOptionsManager) wipeBuildPath(logger *logger.BuilderLogger) error { +func (m *BuildOptions) wipeBuildPath(logger *logger.BuilderLogger) error { wipe := func() error { // FIXME: this should go outside legacy and behind a `logrus` call so users can // control when this should be printed. diff --git a/arduino/builder/builder.go b/arduino/builder/builder.go index 5f3650a1bed..7e6e560470c 100644 --- a/arduino/builder/builder.go +++ b/arduino/builder/builder.go @@ -79,7 +79,7 @@ type Builder struct { buildArtifacts *BuildArtifacts - buildOptions *BuildOptionsManager + buildOptions *BuildOptions *detector.SketchLibrariesDetector } From abd8547f92ffb08f93573893780b967d5c2f7494 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 18 Sep 2023 13:03:26 +0200 Subject: [PATCH 04/12] Made WipeBuildPath a method of Builder --- arduino/builder/build_options_manager.go | 31 ++++++++++++------------ arduino/builder/builder.go | 2 +- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/arduino/builder/build_options_manager.go b/arduino/builder/build_options_manager.go index 5452c9f573a..70be557cb78 100644 --- a/arduino/builder/build_options_manager.go +++ b/arduino/builder/build_options_manager.go @@ -20,7 +20,6 @@ import ( "path/filepath" "strings" - "github.com/arduino/arduino-cli/arduino/builder/logger" "github.com/arduino/arduino-cli/arduino/builder/utils" "github.com/arduino/arduino-cli/arduino/cores" "github.com/arduino/arduino-cli/arduino/sketch" @@ -100,41 +99,41 @@ func NewBuildOptionsManager( } // WipeBuildPath fixdoc -func (m *BuildOptions) WipeBuildPath(logger *logger.BuilderLogger) error { - buildOptionsJSON, err := json.MarshalIndent(m.currentOptions, "", " ") +func (b *Builder) WipeBuildPath() error { + buildOptionsJSON, err := json.MarshalIndent(b.buildOptions.currentOptions, "", " ") if err != nil { return errors.WithStack(err) } - m.currentBuildOptionsJSON = buildOptionsJSON + b.buildOptions.currentBuildOptionsJSON = buildOptionsJSON - if err := m.wipeBuildPath(logger); err != nil { + if err := b.wipeBuildPath(); err != nil { return errors.WithStack(err) } - return m.buildPath.Join("build.options.json").WriteFile(buildOptionsJSON) + return b.buildOptions.buildPath.Join("build.options.json").WriteFile(buildOptionsJSON) } -func (m *BuildOptions) wipeBuildPath(logger *logger.BuilderLogger) error { +func (b *Builder) wipeBuildPath() error { wipe := func() error { // FIXME: this should go outside legacy and behind a `logrus` call so users can // control when this should be printed. // logger.Println(constants.LOG_LEVEL_INFO, constants.MSG_BUILD_OPTIONS_CHANGED + constants.MSG_REBUILD_ALL) - if err := m.buildPath.RemoveAll(); err != nil { + if err := b.buildOptions.buildPath.RemoveAll(); err != nil { return errors.WithMessage(err, tr("cleaning build path")) } - if err := m.buildPath.MkdirAll(); err != nil { + if err := b.buildOptions.buildPath.MkdirAll(); err != nil { return errors.WithMessage(err, tr("cleaning build path")) } return nil } - if m.clean { + if b.buildOptions.clean { return wipe() } // Load previous build options map var buildOptionsJSONPrevious []byte var _err error - if buildOptionsFile := m.buildPath.Join("build.options.json"); buildOptionsFile.Exist() { + if buildOptionsFile := b.buildOptions.buildPath.Join("build.options.json"); buildOptionsFile.Exist() { buildOptionsJSONPrevious, _err = buildOptionsFile.ReadFile() if _err != nil { return errors.WithStack(_err) @@ -147,12 +146,12 @@ func (m *BuildOptions) wipeBuildPath(logger *logger.BuilderLogger) error { var prevOpts *properties.Map if err := json.Unmarshal(buildOptionsJSONPrevious, &prevOpts); err != nil || prevOpts == nil { - logger.Info(tr("%[1]s invalid, rebuilding all", "build.options.json")) + b.logger.Info(tr("%[1]s invalid, rebuilding all", "build.options.json")) return wipe() } // Since we might apply a side effect we clone it - currentOptions := m.currentOptions.Clone() + currentOptions := b.buildOptions.currentOptions.Clone() // If SketchLocation path is different but filename is the same, consider it equal if filepath.Base(currentOptions.Get("sketchLocation")) == filepath.Base(prevOpts.Get("sketchLocation")) { currentOptions.Remove("sketchLocation") @@ -164,10 +163,10 @@ func (m *BuildOptions) wipeBuildPath(logger *logger.BuilderLogger) error { // check if any of the files contained in the core folders has changed // since the json was generated - like platform.txt or similar // if so, trigger a "safety" wipe - targetCoreFolder := m.runtimePlatformPath - coreFolder := m.buildCorePath + targetCoreFolder := b.buildOptions.runtimePlatformPath + coreFolder := b.buildOptions.buildCorePath realCoreFolder := coreFolder.Parent().Parent() - jsonPath := m.buildPath.Join("build.options.json") + jsonPath := b.buildOptions.buildPath.Join("build.options.json") coreUnchanged, _ := utils.DirContentIsOlderThan(realCoreFolder, jsonPath, ".txt") if coreUnchanged && targetCoreFolder != nil && !realCoreFolder.EqualsTo(targetCoreFolder) { coreUnchanged, _ = utils.DirContentIsOlderThan(targetCoreFolder, jsonPath, ".txt") diff --git a/arduino/builder/builder.go b/arduino/builder/builder.go index 7e6e560470c..d6765518a4c 100644 --- a/arduino/builder/builder.go +++ b/arduino/builder/builder.go @@ -249,7 +249,7 @@ func (b *Builder) preprocess() error { return err } - if err := b.buildOptions.WipeBuildPath(b.logger); err != nil { + if err := b.WipeBuildPath(); err != nil { return err } b.Progress.CompleteStep() From 6c892d022e931dcba0c5a99b8a0275be4341673e Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 18 Sep 2023 13:04:51 +0200 Subject: [PATCH 05/12] Removed unused currentBuildOptionsJSON field --- arduino/builder/build_options_manager.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/arduino/builder/build_options_manager.go b/arduino/builder/build_options_manager.go index 70be557cb78..8ed1702d1df 100644 --- a/arduino/builder/build_options_manager.go +++ b/arduino/builder/build_options_manager.go @@ -30,8 +30,7 @@ import ( // BuildOptions fixdoc type BuildOptions struct { - currentOptions *properties.Map - currentBuildOptionsJSON []byte + currentOptions *properties.Map hardwareDirs paths.PathList builtInToolsDirs paths.PathList @@ -104,7 +103,6 @@ func (b *Builder) WipeBuildPath() error { if err != nil { return errors.WithStack(err) } - b.buildOptions.currentBuildOptionsJSON = buildOptionsJSON if err := b.wipeBuildPath(); err != nil { return errors.WithStack(err) From 278875e228ea170bb7b85c9f2459461612e8e348 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 18 Sep 2023 13:07:25 +0200 Subject: [PATCH 06/12] Separated wipeBuildPath and createBuildOptionsJSON actions --- arduino/builder/build_options_manager.go | 7 +------ arduino/builder/builder.go | 5 ++++- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/arduino/builder/build_options_manager.go b/arduino/builder/build_options_manager.go index 8ed1702d1df..b18030bb2fd 100644 --- a/arduino/builder/build_options_manager.go +++ b/arduino/builder/build_options_manager.go @@ -97,16 +97,11 @@ func NewBuildOptionsManager( } } -// WipeBuildPath fixdoc -func (b *Builder) WipeBuildPath() error { +func (b *Builder) createBuildOptionsJSON() error { buildOptionsJSON, err := json.MarshalIndent(b.buildOptions.currentOptions, "", " ") if err != nil { return errors.WithStack(err) } - - if err := b.wipeBuildPath(); err != nil { - return errors.WithStack(err) - } return b.buildOptions.buildPath.Join("build.options.json").WriteFile(buildOptionsJSON) } diff --git a/arduino/builder/builder.go b/arduino/builder/builder.go index d6765518a4c..bb8d1a6a310 100644 --- a/arduino/builder/builder.go +++ b/arduino/builder/builder.go @@ -249,7 +249,10 @@ func (b *Builder) preprocess() error { return err } - if err := b.WipeBuildPath(); err != nil { + if err := b.wipeBuildPath(); err != nil { + return err + } + if err := b.createBuildOptionsJSON(); err != nil { return err } b.Progress.CompleteStep() From 1f3972659d18f9e9bd9d7629da0f4df73a2cfbc2 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 18 Sep 2023 14:05:56 +0200 Subject: [PATCH 07/12] Made wipe() a proper method -> Buidler.wipeBuildPath() --- arduino/builder/build_options_manager.go | 28 ++++++++++++------------ arduino/builder/builder.go | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/arduino/builder/build_options_manager.go b/arduino/builder/build_options_manager.go index b18030bb2fd..82813ee3ce0 100644 --- a/arduino/builder/build_options_manager.go +++ b/arduino/builder/build_options_manager.go @@ -106,21 +106,21 @@ func (b *Builder) createBuildOptionsJSON() error { } func (b *Builder) wipeBuildPath() error { - wipe := func() error { - // FIXME: this should go outside legacy and behind a `logrus` call so users can - // control when this should be printed. - // logger.Println(constants.LOG_LEVEL_INFO, constants.MSG_BUILD_OPTIONS_CHANGED + constants.MSG_REBUILD_ALL) - if err := b.buildOptions.buildPath.RemoveAll(); err != nil { - return errors.WithMessage(err, tr("cleaning build path")) - } - if err := b.buildOptions.buildPath.MkdirAll(); err != nil { - return errors.WithMessage(err, tr("cleaning build path")) - } - return nil + // FIXME: this should go outside legacy and behind a `logrus` call so users can + // control when this should be printed. + // logger.Println(constants.LOG_LEVEL_INFO, constants.MSG_BUILD_OPTIONS_CHANGED + constants.MSG_REBUILD_ALL) + if err := b.buildOptions.buildPath.RemoveAll(); err != nil { + return errors.WithMessage(err, tr("cleaning build path")) } + if err := b.buildOptions.buildPath.MkdirAll(); err != nil { + return errors.WithMessage(err, tr("cleaning build path")) + } + return nil +} +func (b *Builder) wipeBuildPathIfBuildOptionsChanged() error { if b.buildOptions.clean { - return wipe() + return b.wipeBuildPath() } // Load previous build options map @@ -140,7 +140,7 @@ func (b *Builder) wipeBuildPath() error { var prevOpts *properties.Map if err := json.Unmarshal(buildOptionsJSONPrevious, &prevOpts); err != nil || prevOpts == nil { b.logger.Info(tr("%[1]s invalid, rebuilding all", "build.options.json")) - return wipe() + return b.wipeBuildPath() } // Since we might apply a side effect we clone it @@ -169,5 +169,5 @@ func (b *Builder) wipeBuildPath() error { } } - return wipe() + return b.wipeBuildPath() } diff --git a/arduino/builder/builder.go b/arduino/builder/builder.go index bb8d1a6a310..8e46b66e08a 100644 --- a/arduino/builder/builder.go +++ b/arduino/builder/builder.go @@ -249,7 +249,7 @@ func (b *Builder) preprocess() error { return err } - if err := b.wipeBuildPath(); err != nil { + if err := b.wipeBuildPathIfBuildOptionsChanged(); err != nil { return err } if err := b.createBuildOptionsJSON(); err != nil { From c9d2503161762b9a75d463d07d3b4a91723157d8 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 18 Sep 2023 15:00:21 +0200 Subject: [PATCH 08/12] Made BuildOptions private --- arduino/builder/build_options_manager.go | 12 ++++++------ arduino/builder/builder.go | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/arduino/builder/build_options_manager.go b/arduino/builder/build_options_manager.go index 82813ee3ce0..1ee251e8cb8 100644 --- a/arduino/builder/build_options_manager.go +++ b/arduino/builder/build_options_manager.go @@ -28,8 +28,8 @@ import ( "github.com/pkg/errors" ) -// BuildOptions fixdoc -type BuildOptions struct { +// buildOptions fixdoc +type buildOptions struct { currentOptions *properties.Map hardwareDirs paths.PathList @@ -45,8 +45,8 @@ type BuildOptions struct { clean bool } -// NewBuildOptionsManager fixdoc -func NewBuildOptionsManager( +// newBuildOptions fixdoc +func newBuildOptions( hardwareDirs, builtInToolsDirs, otherLibrariesDirs paths.PathList, builtInLibrariesDirs, buildPath *paths.Path, sketch *sketch.Sketch, @@ -55,7 +55,7 @@ func NewBuildOptionsManager( clean bool, compilerOptimizationFlags string, runtimePlatformPath, buildCorePath *paths.Path, -) *BuildOptions { +) *buildOptions { opts := properties.NewMap() opts.Set("hardwareFolders", strings.Join(hardwareDirs.AsStrings(), ",")) @@ -81,7 +81,7 @@ func NewBuildOptionsManager( } opts.Set("additionalFiles", strings.Join(additionalFilesRelative, ",")) - return &BuildOptions{ + return &buildOptions{ currentOptions: opts, hardwareDirs: hardwareDirs, builtInToolsDirs: builtInToolsDirs, diff --git a/arduino/builder/builder.go b/arduino/builder/builder.go index 8e46b66e08a..7c1eaabba34 100644 --- a/arduino/builder/builder.go +++ b/arduino/builder/builder.go @@ -79,7 +79,7 @@ type Builder struct { buildArtifacts *BuildArtifacts - buildOptions *BuildOptions + buildOptions *buildOptions *detector.SketchLibrariesDetector } @@ -208,7 +208,7 @@ func NewBuilder( onlyUpdateCompilationDatabase, logger, ), - buildOptions: NewBuildOptionsManager( + buildOptions: newBuildOptions( hardwareDirs, builtInToolsDirs, otherLibrariesDirs, builtInLibrariesDirs, buildPath, sk, From 5902e3883fbb831d68719649f63f1d1b48b586a1 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 18 Sep 2023 15:05:10 +0200 Subject: [PATCH 09/12] Made SketchLibrariesDetector a private field of Buidler --- arduino/builder/builder.go | 28 +++++++++++++++++----------- commands/compile/compile.go | 2 +- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/arduino/builder/builder.go b/arduino/builder/builder.go index 7c1eaabba34..560fe7a93c7 100644 --- a/arduino/builder/builder.go +++ b/arduino/builder/builder.go @@ -24,6 +24,7 @@ import ( "github.com/arduino/arduino-cli/arduino/builder/logger" "github.com/arduino/arduino-cli/arduino/builder/progress" "github.com/arduino/arduino-cli/arduino/cores" + "github.com/arduino/arduino-cli/arduino/libraries" "github.com/arduino/arduino-cli/arduino/libraries/librariesmanager" "github.com/arduino/arduino-cli/arduino/sketch" "github.com/arduino/go-paths-helper" @@ -81,7 +82,7 @@ type Builder struct { buildOptions *buildOptions - *detector.SketchLibrariesDetector + libsDetector *detector.SketchLibrariesDetector } // BuildArtifacts contains the result of various build @@ -202,7 +203,7 @@ func NewBuilder( buildArtifacts: &BuildArtifacts{}, targetPlatform: targetPlatform, actualPlatform: actualPlatform, - SketchLibrariesDetector: detector.NewSketchLibrariesDetector( + libsDetector: detector.NewSketchLibrariesDetector( libsManager, libsResolver, useCachedLibrariesResolution, onlyUpdateCompilationDatabase, @@ -237,6 +238,11 @@ func (b *Builder) ExecutableSectionsSize() ExecutablesFileSections { return b.executableSectionsSize } +// ImportedLibraries fixdoc +func (b *Builder) ImportedLibraries() libraries.List { + return b.libsDetector.ImportedLibraries() +} + // Preprocess fixdoc func (b *Builder) Preprocess() error { b.Progress.AddSubSteps(6) @@ -271,7 +277,7 @@ func (b *Builder) preprocess() error { b.Progress.PushProgress() b.logIfVerbose(false, tr("Detecting libraries used...")) - err := b.SketchLibrariesDetector.FindIncludes( + err := b.libsDetector.FindIncludes( b.buildPath, b.buildProperties.GetPath("build.core.path"), b.buildProperties.GetPath("build.variant.path"), @@ -287,12 +293,12 @@ func (b *Builder) preprocess() error { b.Progress.CompleteStep() b.Progress.PushProgress() - b.warnAboutArchIncompatibleLibraries(b.SketchLibrariesDetector.ImportedLibraries()) + b.warnAboutArchIncompatibleLibraries(b.libsDetector.ImportedLibraries()) b.Progress.CompleteStep() b.Progress.PushProgress() b.logIfVerbose(false, tr("Generating function prototypes...")) - if err := b.preprocessSketch(b.SketchLibrariesDetector.IncludeFolders()); err != nil { + if err := b.preprocessSketch(b.libsDetector.IncludeFolders()); err != nil { return err } b.Progress.CompleteStep() @@ -330,18 +336,18 @@ func (b *Builder) Build() error { buildErr := b.build() - b.SketchLibrariesDetector.PrintUsedAndNotUsedLibraries(buildErr != nil) + b.libsDetector.PrintUsedAndNotUsedLibraries(buildErr != nil) b.Progress.CompleteStep() b.Progress.PushProgress() - b.printUsedLibraries(b.SketchLibrariesDetector.ImportedLibraries()) + b.printUsedLibraries(b.libsDetector.ImportedLibraries()) b.Progress.CompleteStep() b.Progress.PushProgress() if buildErr != nil { return buildErr } - if err := b.exportProjectCMake(b.SketchLibrariesDetector.ImportedLibraries(), b.SketchLibrariesDetector.IncludeFolders()); err != nil { + if err := b.exportProjectCMake(b.libsDetector.ImportedLibraries(), b.libsDetector.IncludeFolders()); err != nil { return err } b.Progress.CompleteStep() @@ -365,7 +371,7 @@ func (b *Builder) build() error { b.Progress.CompleteStep() b.Progress.PushProgress() - if err := b.BuildSketch(b.SketchLibrariesDetector.IncludeFolders()); err != nil { + if err := b.BuildSketch(b.libsDetector.IncludeFolders()); err != nil { return err } b.Progress.CompleteStep() @@ -384,13 +390,13 @@ func (b *Builder) build() error { b.Progress.CompleteStep() b.Progress.PushProgress() - if err := b.removeUnusedCompiledLibraries(b.SketchLibrariesDetector.ImportedLibraries()); err != nil { + if err := b.removeUnusedCompiledLibraries(b.libsDetector.ImportedLibraries()); err != nil { return err } b.Progress.CompleteStep() b.Progress.PushProgress() - if err := b.buildLibraries(b.SketchLibrariesDetector.IncludeFolders(), b.SketchLibrariesDetector.ImportedLibraries()); err != nil { + if err := b.buildLibraries(b.libsDetector.IncludeFolders(), b.libsDetector.ImportedLibraries()); err != nil { return err } b.Progress.CompleteStep() diff --git a/commands/compile/compile.go b/commands/compile/compile.go index 8e58f480b0e..3cc0fe36221 100644 --- a/commands/compile/compile.go +++ b/commands/compile/compile.go @@ -251,7 +251,7 @@ func Compile(ctx context.Context, req *rpc.CompileRequest, outStream, errStream defer func() { importedLibs := []*rpc.Library{} - for _, lib := range sketchBuilder.SketchLibrariesDetector.ImportedLibraries() { + for _, lib := range sketchBuilder.ImportedLibraries() { rpcLib, err := lib.ToRPCLibrary() if err != nil { msg := tr("Error getting information for library %s", lib.Name) + ": " + err.Error() + "\n" From 268c0f501ddfd1112904088f5b9b01aad436af5e Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 18 Sep 2023 15:05:54 +0200 Subject: [PATCH 10/12] Made BuildArtifacts private --- arduino/builder/builder.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arduino/builder/builder.go b/arduino/builder/builder.go index 560fe7a93c7..c46768ec349 100644 --- a/arduino/builder/builder.go +++ b/arduino/builder/builder.go @@ -78,15 +78,15 @@ type Builder struct { targetPlatform *cores.PlatformRelease actualPlatform *cores.PlatformRelease - buildArtifacts *BuildArtifacts + buildArtifacts *buildArtifacts buildOptions *buildOptions libsDetector *detector.SketchLibrariesDetector } -// BuildArtifacts contains the result of various build -type BuildArtifacts struct { +// buildArtifacts contains the result of various build +type buildArtifacts struct { // populated by BuildCore coreArchiveFilePath *paths.Path coreObjectsFiles paths.PathList @@ -200,7 +200,7 @@ func NewBuilder( compilationDatabase: compilation.NewDatabase(buildPath.Join("compile_commands.json")), Progress: progressStats, executableSectionsSize: []ExecutableSectionSize{}, - buildArtifacts: &BuildArtifacts{}, + buildArtifacts: &buildArtifacts{}, targetPlatform: targetPlatform, actualPlatform: actualPlatform, libsDetector: detector.NewSketchLibrariesDetector( From 74b98b505eb4344173afc574cc68a2b5afffe300 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 18 Sep 2023 18:43:02 +0200 Subject: [PATCH 11/12] Made all builder subpackages internal --- arduino/builder/build_options_manager.go | 2 +- arduino/builder/builder.go | 8 ++++---- arduino/builder/core.go | 2 +- arduino/builder/export_cmake.go | 7 +++---- arduino/builder/{ => internal}/compilation/database.go | 0 .../builder/{ => internal}/compilation/database_test.go | 0 arduino/builder/{ => internal}/detector/detector.go | 6 +++--- arduino/builder/{ => internal}/detector/detector_test.go | 2 +- arduino/builder/{ => internal}/logger/logger.go | 0 .../{ => internal}/preprocessor/arduino_preprocessor.go | 2 +- arduino/builder/{ => internal}/preprocessor/ctags.go | 2 +- arduino/builder/{ => internal}/preprocessor/gcc.go | 0 .../preprocessor/internal/ctags/ctags_has_issues.go | 0 .../preprocessor/internal/ctags/ctags_parser.go | 0 .../preprocessor/internal/ctags/ctags_parser_test.go | 0 .../preprocessor/internal/ctags/ctags_to_prototypes.go | 0 .../internal/ctags/ctags_to_prototypes_test.go | 0 .../TestCTagsParserClassMembersAreFilteredOut.txt | 0 .../ctags/testdata/TestCTagsParserDefaultArguments.txt | 0 .../ctags/testdata/TestCTagsParserFunctionPointer.txt | 0 .../ctags/testdata/TestCTagsParserFunctionPointers.txt | 0 .../TestCTagsParserFunctionPointersNoIndirect.txt | 0 .../internal/ctags/testdata/TestCTagsParserNamespace.txt | 0 ...agsParserShouldDealFunctionWithDifferentSignatures.txt | 0 .../testdata/TestCTagsParserShouldDealWithClasses.txt | 0 .../testdata/TestCTagsParserShouldDealWithMacros.txt | 0 .../testdata/TestCTagsParserShouldDealWithStructs.txt | 0 .../testdata/TestCTagsParserShouldListPrototypes.txt | 0 .../ctags/testdata/TestCTagsParserShouldListTemplates.txt | 0 .../testdata/TestCTagsParserShouldListTemplates2.txt | 0 .../internal/ctags/testdata/TestCTagsParserStatic.txt | 0 .../ctags/testdata/TestCTagsParserStructWithFunctions.txt | 0 .../testdata/TestCTagsRunnerSketchWithClassFunction.txt | 0 .../ctags/testdata/TestCTagsRunnerSketchWithMultifile.txt | 0 arduino/builder/{ => internal}/progress/progress.go | 0 arduino/builder/{ => internal}/progress/progress_test.go | 0 arduino/builder/{ => internal}/utils/utils.go | 6 +++--- arduino/builder/{ => internal}/utils/utils_test.go | 0 arduino/builder/libraries.go | 2 +- arduino/builder/linker.go | 2 +- arduino/builder/preprocess_sketch.go | 2 +- arduino/builder/recipe.go | 2 +- arduino/builder/sizer.go | 2 +- arduino/builder/sketch.go | 2 +- commands/compile/compile.go | 2 -- 45 files changed, 24 insertions(+), 27 deletions(-) rename arduino/builder/{ => internal}/compilation/database.go (100%) rename arduino/builder/{ => internal}/compilation/database_test.go (100%) rename arduino/builder/{ => internal}/detector/detector.go (99%) rename arduino/builder/{ => internal}/detector/detector_test.go (97%) rename arduino/builder/{ => internal}/logger/logger.go (100%) rename arduino/builder/{ => internal}/preprocessor/arduino_preprocessor.go (98%) rename arduino/builder/{ => internal}/preprocessor/ctags.go (98%) rename arduino/builder/{ => internal}/preprocessor/gcc.go (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/ctags_has_issues.go (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/ctags_parser.go (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/ctags_parser_test.go (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/ctags_to_prototypes.go (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/ctags_to_prototypes_test.go (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsParserClassMembersAreFilteredOut.txt (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsParserDefaultArguments.txt (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsParserFunctionPointer.txt (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsParserFunctionPointers.txt (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsParserFunctionPointersNoIndirect.txt (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsParserNamespace.txt (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealFunctionWithDifferentSignatures.txt (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealWithClasses.txt (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealWithMacros.txt (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealWithStructs.txt (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsParserShouldListPrototypes.txt (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsParserShouldListTemplates.txt (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsParserShouldListTemplates2.txt (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsParserStatic.txt (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsParserStructWithFunctions.txt (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsRunnerSketchWithClassFunction.txt (100%) rename arduino/builder/{ => internal}/preprocessor/internal/ctags/testdata/TestCTagsRunnerSketchWithMultifile.txt (100%) rename arduino/builder/{ => internal}/progress/progress.go (100%) rename arduino/builder/{ => internal}/progress/progress_test.go (100%) rename arduino/builder/{ => internal}/utils/utils.go (98%) rename arduino/builder/{ => internal}/utils/utils_test.go (100%) diff --git a/arduino/builder/build_options_manager.go b/arduino/builder/build_options_manager.go index 1ee251e8cb8..0ff35611934 100644 --- a/arduino/builder/build_options_manager.go +++ b/arduino/builder/build_options_manager.go @@ -20,7 +20,7 @@ import ( "path/filepath" "strings" - "github.com/arduino/arduino-cli/arduino/builder/utils" + "github.com/arduino/arduino-cli/arduino/builder/internal/utils" "github.com/arduino/arduino-cli/arduino/cores" "github.com/arduino/arduino-cli/arduino/sketch" "github.com/arduino/go-paths-helper" diff --git a/arduino/builder/builder.go b/arduino/builder/builder.go index c46768ec349..e24996ec570 100644 --- a/arduino/builder/builder.go +++ b/arduino/builder/builder.go @@ -19,10 +19,10 @@ import ( "errors" "fmt" - "github.com/arduino/arduino-cli/arduino/builder/compilation" - "github.com/arduino/arduino-cli/arduino/builder/detector" - "github.com/arduino/arduino-cli/arduino/builder/logger" - "github.com/arduino/arduino-cli/arduino/builder/progress" + "github.com/arduino/arduino-cli/arduino/builder/internal/compilation" + "github.com/arduino/arduino-cli/arduino/builder/internal/detector" + "github.com/arduino/arduino-cli/arduino/builder/internal/logger" + "github.com/arduino/arduino-cli/arduino/builder/internal/progress" "github.com/arduino/arduino-cli/arduino/cores" "github.com/arduino/arduino-cli/arduino/libraries" "github.com/arduino/arduino-cli/arduino/libraries/librariesmanager" diff --git a/arduino/builder/core.go b/arduino/builder/core.go index 9617d22cc11..b58d3dea806 100644 --- a/arduino/builder/core.go +++ b/arduino/builder/core.go @@ -23,7 +23,7 @@ import ( "strings" "github.com/arduino/arduino-cli/arduino/builder/cpp" - "github.com/arduino/arduino-cli/arduino/builder/utils" + "github.com/arduino/arduino-cli/arduino/builder/internal/utils" "github.com/arduino/arduino-cli/buildcache" f "github.com/arduino/arduino-cli/internal/algorithms" "github.com/arduino/go-paths-helper" diff --git a/arduino/builder/export_cmake.go b/arduino/builder/export_cmake.go index 456cd298424..6f3bc4e3dfd 100644 --- a/arduino/builder/export_cmake.go +++ b/arduino/builder/export_cmake.go @@ -24,12 +24,11 @@ import ( "slices" "strings" - "github.com/arduino/go-paths-helper" - properties "github.com/arduino/go-properties-orderedmap" - - "github.com/arduino/arduino-cli/arduino/builder/utils" + "github.com/arduino/arduino-cli/arduino/builder/internal/utils" "github.com/arduino/arduino-cli/arduino/globals" "github.com/arduino/arduino-cli/arduino/libraries" + "github.com/arduino/go-paths-helper" + properties "github.com/arduino/go-properties-orderedmap" ) var lineMatcher = regexp.MustCompile(`^#line\s\d+\s"`) diff --git a/arduino/builder/compilation/database.go b/arduino/builder/internal/compilation/database.go similarity index 100% rename from arduino/builder/compilation/database.go rename to arduino/builder/internal/compilation/database.go diff --git a/arduino/builder/compilation/database_test.go b/arduino/builder/internal/compilation/database_test.go similarity index 100% rename from arduino/builder/compilation/database_test.go rename to arduino/builder/internal/compilation/database_test.go diff --git a/arduino/builder/detector/detector.go b/arduino/builder/internal/detector/detector.go similarity index 99% rename from arduino/builder/detector/detector.go rename to arduino/builder/internal/detector/detector.go index 50a35a016e8..2c5f836374b 100644 --- a/arduino/builder/detector/detector.go +++ b/arduino/builder/internal/detector/detector.go @@ -25,9 +25,9 @@ import ( "strings" "time" - "github.com/arduino/arduino-cli/arduino/builder/logger" - "github.com/arduino/arduino-cli/arduino/builder/preprocessor" - "github.com/arduino/arduino-cli/arduino/builder/utils" + "github.com/arduino/arduino-cli/arduino/builder/internal/logger" + "github.com/arduino/arduino-cli/arduino/builder/internal/preprocessor" + "github.com/arduino/arduino-cli/arduino/builder/internal/utils" "github.com/arduino/arduino-cli/arduino/cores" "github.com/arduino/arduino-cli/arduino/globals" "github.com/arduino/arduino-cli/arduino/libraries" diff --git a/arduino/builder/detector/detector_test.go b/arduino/builder/internal/detector/detector_test.go similarity index 97% rename from arduino/builder/detector/detector_test.go rename to arduino/builder/internal/detector/detector_test.go index fc933cf5cff..2290dc02de6 100644 --- a/arduino/builder/detector/detector_test.go +++ b/arduino/builder/internal/detector/detector_test.go @@ -18,7 +18,7 @@ package detector_test import ( "testing" - "github.com/arduino/arduino-cli/arduino/builder/detector" + "github.com/arduino/arduino-cli/arduino/builder/internal/detector" "github.com/stretchr/testify/require" ) diff --git a/arduino/builder/logger/logger.go b/arduino/builder/internal/logger/logger.go similarity index 100% rename from arduino/builder/logger/logger.go rename to arduino/builder/internal/logger/logger.go diff --git a/arduino/builder/preprocessor/arduino_preprocessor.go b/arduino/builder/internal/preprocessor/arduino_preprocessor.go similarity index 98% rename from arduino/builder/preprocessor/arduino_preprocessor.go rename to arduino/builder/internal/preprocessor/arduino_preprocessor.go index a81d4bff612..630ec56400f 100644 --- a/arduino/builder/preprocessor/arduino_preprocessor.go +++ b/arduino/builder/internal/preprocessor/arduino_preprocessor.go @@ -21,7 +21,7 @@ import ( "path/filepath" "runtime" - "github.com/arduino/arduino-cli/arduino/builder/utils" + "github.com/arduino/arduino-cli/arduino/builder/internal/utils" "github.com/arduino/arduino-cli/arduino/sketch" "github.com/arduino/arduino-cli/executils" "github.com/arduino/go-paths-helper" diff --git a/arduino/builder/preprocessor/ctags.go b/arduino/builder/internal/preprocessor/ctags.go similarity index 98% rename from arduino/builder/preprocessor/ctags.go rename to arduino/builder/internal/preprocessor/ctags.go index 8d9fb7c9480..fb7134904a0 100644 --- a/arduino/builder/preprocessor/ctags.go +++ b/arduino/builder/internal/preprocessor/ctags.go @@ -25,7 +25,7 @@ import ( "strings" "github.com/arduino/arduino-cli/arduino/builder/cpp" - "github.com/arduino/arduino-cli/arduino/builder/preprocessor/internal/ctags" + "github.com/arduino/arduino-cli/arduino/builder/internal/preprocessor/internal/ctags" "github.com/arduino/arduino-cli/arduino/sketch" "github.com/arduino/arduino-cli/executils" "github.com/arduino/arduino-cli/i18n" diff --git a/arduino/builder/preprocessor/gcc.go b/arduino/builder/internal/preprocessor/gcc.go similarity index 100% rename from arduino/builder/preprocessor/gcc.go rename to arduino/builder/internal/preprocessor/gcc.go diff --git a/arduino/builder/preprocessor/internal/ctags/ctags_has_issues.go b/arduino/builder/internal/preprocessor/internal/ctags/ctags_has_issues.go similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/ctags_has_issues.go rename to arduino/builder/internal/preprocessor/internal/ctags/ctags_has_issues.go diff --git a/arduino/builder/preprocessor/internal/ctags/ctags_parser.go b/arduino/builder/internal/preprocessor/internal/ctags/ctags_parser.go similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/ctags_parser.go rename to arduino/builder/internal/preprocessor/internal/ctags/ctags_parser.go diff --git a/arduino/builder/preprocessor/internal/ctags/ctags_parser_test.go b/arduino/builder/internal/preprocessor/internal/ctags/ctags_parser_test.go similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/ctags_parser_test.go rename to arduino/builder/internal/preprocessor/internal/ctags/ctags_parser_test.go diff --git a/arduino/builder/preprocessor/internal/ctags/ctags_to_prototypes.go b/arduino/builder/internal/preprocessor/internal/ctags/ctags_to_prototypes.go similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/ctags_to_prototypes.go rename to arduino/builder/internal/preprocessor/internal/ctags/ctags_to_prototypes.go diff --git a/arduino/builder/preprocessor/internal/ctags/ctags_to_prototypes_test.go b/arduino/builder/internal/preprocessor/internal/ctags/ctags_to_prototypes_test.go similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/ctags_to_prototypes_test.go rename to arduino/builder/internal/preprocessor/internal/ctags/ctags_to_prototypes_test.go diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserClassMembersAreFilteredOut.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserClassMembersAreFilteredOut.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserClassMembersAreFilteredOut.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserClassMembersAreFilteredOut.txt diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserDefaultArguments.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserDefaultArguments.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserDefaultArguments.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserDefaultArguments.txt diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserFunctionPointer.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserFunctionPointer.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserFunctionPointer.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserFunctionPointer.txt diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserFunctionPointers.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserFunctionPointers.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserFunctionPointers.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserFunctionPointers.txt diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserFunctionPointersNoIndirect.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserFunctionPointersNoIndirect.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserFunctionPointersNoIndirect.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserFunctionPointersNoIndirect.txt diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserNamespace.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserNamespace.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserNamespace.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserNamespace.txt diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealFunctionWithDifferentSignatures.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealFunctionWithDifferentSignatures.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealFunctionWithDifferentSignatures.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealFunctionWithDifferentSignatures.txt diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealWithClasses.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealWithClasses.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealWithClasses.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealWithClasses.txt diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealWithMacros.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealWithMacros.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealWithMacros.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealWithMacros.txt diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealWithStructs.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealWithStructs.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealWithStructs.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserShouldDealWithStructs.txt diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserShouldListPrototypes.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserShouldListPrototypes.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserShouldListPrototypes.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserShouldListPrototypes.txt diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserShouldListTemplates.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserShouldListTemplates.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserShouldListTemplates.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserShouldListTemplates.txt diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserShouldListTemplates2.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserShouldListTemplates2.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserShouldListTemplates2.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserShouldListTemplates2.txt diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserStatic.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserStatic.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserStatic.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserStatic.txt diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserStructWithFunctions.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserStructWithFunctions.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsParserStructWithFunctions.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsParserStructWithFunctions.txt diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsRunnerSketchWithClassFunction.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsRunnerSketchWithClassFunction.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsRunnerSketchWithClassFunction.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsRunnerSketchWithClassFunction.txt diff --git a/arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsRunnerSketchWithMultifile.txt b/arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsRunnerSketchWithMultifile.txt similarity index 100% rename from arduino/builder/preprocessor/internal/ctags/testdata/TestCTagsRunnerSketchWithMultifile.txt rename to arduino/builder/internal/preprocessor/internal/ctags/testdata/TestCTagsRunnerSketchWithMultifile.txt diff --git a/arduino/builder/progress/progress.go b/arduino/builder/internal/progress/progress.go similarity index 100% rename from arduino/builder/progress/progress.go rename to arduino/builder/internal/progress/progress.go diff --git a/arduino/builder/progress/progress_test.go b/arduino/builder/internal/progress/progress_test.go similarity index 100% rename from arduino/builder/progress/progress_test.go rename to arduino/builder/internal/progress/progress_test.go diff --git a/arduino/builder/utils/utils.go b/arduino/builder/internal/utils/utils.go similarity index 98% rename from arduino/builder/utils/utils.go rename to arduino/builder/internal/utils/utils.go index f0ae458512a..58f2e08fd3e 100644 --- a/arduino/builder/utils/utils.go +++ b/arduino/builder/internal/utils/utils.go @@ -26,9 +26,9 @@ import ( "sync" "unicode" - "github.com/arduino/arduino-cli/arduino/builder/compilation" - "github.com/arduino/arduino-cli/arduino/builder/logger" - "github.com/arduino/arduino-cli/arduino/builder/progress" + "github.com/arduino/arduino-cli/arduino/builder/internal/compilation" + "github.com/arduino/arduino-cli/arduino/builder/internal/logger" + "github.com/arduino/arduino-cli/arduino/builder/internal/progress" "github.com/arduino/arduino-cli/arduino/globals" "github.com/arduino/arduino-cli/executils" "github.com/arduino/arduino-cli/i18n" diff --git a/arduino/builder/utils/utils_test.go b/arduino/builder/internal/utils/utils_test.go similarity index 100% rename from arduino/builder/utils/utils_test.go rename to arduino/builder/internal/utils/utils_test.go diff --git a/arduino/builder/libraries.go b/arduino/builder/libraries.go index cb580766e0c..2499e5b9253 100644 --- a/arduino/builder/libraries.go +++ b/arduino/builder/libraries.go @@ -21,7 +21,7 @@ import ( "time" "github.com/arduino/arduino-cli/arduino/builder/cpp" - "github.com/arduino/arduino-cli/arduino/builder/utils" + "github.com/arduino/arduino-cli/arduino/builder/internal/utils" "github.com/arduino/arduino-cli/arduino/libraries" f "github.com/arduino/arduino-cli/internal/algorithms" "github.com/arduino/go-paths-helper" diff --git a/arduino/builder/linker.go b/arduino/builder/linker.go index 60c09bcf6dd..f1d7ef00b36 100644 --- a/arduino/builder/linker.go +++ b/arduino/builder/linker.go @@ -18,7 +18,7 @@ package builder import ( "strings" - "github.com/arduino/arduino-cli/arduino/builder/utils" + "github.com/arduino/arduino-cli/arduino/builder/internal/utils" f "github.com/arduino/arduino-cli/internal/algorithms" "github.com/arduino/go-paths-helper" "github.com/pkg/errors" diff --git a/arduino/builder/preprocess_sketch.go b/arduino/builder/preprocess_sketch.go index c871495c335..8028d345fdf 100644 --- a/arduino/builder/preprocess_sketch.go +++ b/arduino/builder/preprocess_sketch.go @@ -16,7 +16,7 @@ package builder import ( - "github.com/arduino/arduino-cli/arduino/builder/preprocessor" + "github.com/arduino/arduino-cli/arduino/builder/internal/preprocessor" "github.com/arduino/go-paths-helper" ) diff --git a/arduino/builder/recipe.go b/arduino/builder/recipe.go index 385e6a03a87..4cb11179188 100644 --- a/arduino/builder/recipe.go +++ b/arduino/builder/recipe.go @@ -20,7 +20,7 @@ import ( "sort" "strings" - "github.com/arduino/arduino-cli/arduino/builder/utils" + "github.com/arduino/arduino-cli/arduino/builder/internal/utils" properties "github.com/arduino/go-properties-orderedmap" "github.com/pkg/errors" "github.com/sirupsen/logrus" diff --git a/arduino/builder/sizer.go b/arduino/builder/sizer.go index 0924f9a62e4..1d8707df487 100644 --- a/arduino/builder/sizer.go +++ b/arduino/builder/sizer.go @@ -21,7 +21,7 @@ import ( "regexp" "strconv" - "github.com/arduino/arduino-cli/arduino/builder/utils" + "github.com/arduino/arduino-cli/arduino/builder/internal/utils" rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1" "github.com/arduino/go-properties-orderedmap" "github.com/pkg/errors" diff --git a/arduino/builder/sketch.go b/arduino/builder/sketch.go index 37a8272fdad..044e284063d 100644 --- a/arduino/builder/sketch.go +++ b/arduino/builder/sketch.go @@ -24,7 +24,7 @@ import ( "strings" "github.com/arduino/arduino-cli/arduino/builder/cpp" - "github.com/arduino/arduino-cli/arduino/builder/utils" + "github.com/arduino/arduino-cli/arduino/builder/internal/utils" "github.com/arduino/arduino-cli/i18n" f "github.com/arduino/arduino-cli/internal/algorithms" "github.com/arduino/go-paths-helper" diff --git a/commands/compile/compile.go b/commands/compile/compile.go index 3cc0fe36221..7868560c911 100644 --- a/commands/compile/compile.go +++ b/commands/compile/compile.go @@ -25,8 +25,6 @@ import ( "github.com/arduino/arduino-cli/arduino" "github.com/arduino/arduino-cli/arduino/builder" - "github.com/arduino/arduino-cli/arduino/builder/logger" - "github.com/arduino/arduino-cli/arduino/builder/progress" "github.com/arduino/arduino-cli/arduino/cores" "github.com/arduino/arduino-cli/arduino/libraries/librariesmanager" "github.com/arduino/arduino-cli/arduino/sketch" From 873d1d31df60c8f67bfc56e941ec70b0cae4dab1 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 18 Sep 2023 18:46:04 +0200 Subject: [PATCH 12/12] Moved initialization of private structs inside NewBuilder --- arduino/builder/builder.go | 13 ++++++------- commands/compile/compile.go | 4 ++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/arduino/builder/builder.go b/arduino/builder/builder.go index e24996ec570..e65f744ab0c 100644 --- a/arduino/builder/builder.go +++ b/arduino/builder/builder.go @@ -18,6 +18,7 @@ package builder import ( "errors" "fmt" + "io" "github.com/arduino/arduino-cli/arduino/builder/internal/compilation" "github.com/arduino/arduino-cli/arduino/builder/internal/detector" @@ -27,6 +28,7 @@ import ( "github.com/arduino/arduino-cli/arduino/libraries" "github.com/arduino/arduino-cli/arduino/libraries/librariesmanager" "github.com/arduino/arduino-cli/arduino/sketch" + rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1" "github.com/arduino/go-paths-helper" "github.com/arduino/go-properties-orderedmap" ) @@ -117,8 +119,8 @@ func NewBuilder( useCachedLibrariesResolution bool, librariesManager *librariesmanager.LibrariesManager, libraryDirs paths.PathList, - logger *logger.BuilderLogger, - progressStats *progress.Struct, + stdout, stderr io.Writer, verbose bool, warningsLevel string, + progresCB rpc.TaskProgressCB, ) (*Builder, error) { buildProperties := properties.NewMap() if boardBuildProperties != nil { @@ -167,10 +169,7 @@ func NewBuilder( return nil, ErrSketchCannotBeLocatedInBuildPath } - if progressStats == nil { - progressStats = progress.New(nil) - } - + logger := logger.New(stdout, stderr, verbose, warningsLevel) libsManager, libsResolver, verboseOut, err := detector.LibrariesLoader( useCachedLibrariesResolution, librariesManager, builtInLibrariesDirs, libraryDirs, otherLibrariesDirs, @@ -198,7 +197,7 @@ func NewBuilder( sourceOverrides: sourceOverrides, onlyUpdateCompilationDatabase: onlyUpdateCompilationDatabase, compilationDatabase: compilation.NewDatabase(buildPath.Join("compile_commands.json")), - Progress: progressStats, + Progress: progress.New(progresCB), executableSectionsSize: []ExecutableSectionSize{}, buildArtifacts: &buildArtifacts{}, targetPlatform: targetPlatform, diff --git a/commands/compile/compile.go b/commands/compile/compile.go index 7868560c911..b04e4cd4914 100644 --- a/commands/compile/compile.go +++ b/commands/compile/compile.go @@ -197,8 +197,8 @@ func Compile(ctx context.Context, req *rpc.CompileRequest, outStream, errStream req.GetSkipLibrariesDiscovery(), libsManager, paths.NewPathList(req.Library...), - logger.New(outStream, errStream, req.GetVerbose(), req.GetWarnings()), - progress.New(progressCB), + outStream, errStream, req.GetVerbose(), req.GetWarnings(), + progressCB, ) if err != nil { if strings.Contains(err.Error(), "invalid build properties") {