Skip to content

Commit 296dffd

Browse files
remove CompilationDatabase from Context
1 parent fdd9ec6 commit 296dffd

File tree

7 files changed

+30
-56
lines changed

7 files changed

+30
-56
lines changed

Diff for: arduino/builder/builder.go

+11
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"errors"
2020
"fmt"
2121

22+
"github.com/arduino/arduino-cli/arduino/builder/compilation"
2223
"github.com/arduino/arduino-cli/arduino/builder/logger"
2324
"github.com/arduino/arduino-cli/arduino/builder/progress"
2425
"github.com/arduino/arduino-cli/arduino/cores"
@@ -59,6 +60,8 @@ type Builder struct {
5960

6061
// Set to true to skip build and produce only Compilation Database
6162
onlyUpdateCompilationDatabase bool
63+
// Compilation Database to build/update
64+
compilationDatabase *compilation.Database
6265

6366
// Progress of all various steps
6467
Progress *progress.Struct
@@ -152,6 +155,7 @@ func NewBuilder(
152155
clean: clean,
153156
sourceOverrides: sourceOverrides,
154157
onlyUpdateCompilationDatabase: onlyUpdateCompilationDatabase,
158+
compilationDatabase: compilation.NewDatabase(buildPath.Join("compile_commands.json")),
155159
Progress: progressStats,
156160
BuildOptionsManager: NewBuildOptionsManager(
157161
hardwareDirs, builtInToolsDirs, otherLibrariesDirs,
@@ -192,3 +196,10 @@ func (b *Builder) GetLibrariesBuildPath() *paths.Path {
192196
func (b *Builder) ExecutableSectionsSize() ExecutablesFileSections {
193197
return b.executableSectionsSize
194198
}
199+
200+
// SaveCompilationDatabase fixdoc
201+
func (b *Builder) SaveCompilationDatabase() {
202+
if b.compilationDatabase != nil {
203+
b.compilationDatabase.SaveToFile()
204+
}
205+
}

Diff for: arduino/builder/core.go

+5-12
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222
"os"
2323
"strings"
2424

25-
"github.com/arduino/arduino-cli/arduino/builder/compilation"
2625
"github.com/arduino/arduino-cli/arduino/builder/cpp"
2726
"github.com/arduino/arduino-cli/arduino/builder/utils"
2827
"github.com/arduino/arduino-cli/arduino/cores"
@@ -33,10 +32,7 @@ import (
3332
)
3433

3534
// BuildCore fixdoc
36-
func (b *Builder) BuildCore(
37-
actualPlatform *cores.PlatformRelease,
38-
compilationDatabase *compilation.Database,
39-
) (paths.PathList, *paths.Path, error) {
35+
func (b *Builder) BuildCore(actualPlatform *cores.PlatformRelease) (paths.PathList, *paths.Path, error) {
4036
if err := b.coreBuildPath.MkdirAll(); err != nil {
4137
return nil, nil, errors.WithStack(err)
4238
}
@@ -53,18 +49,15 @@ func (b *Builder) BuildCore(
5349
}
5450
}
5551

56-
archiveFile, objectFiles, err := b.compileCore(actualPlatform, compilationDatabase)
52+
archiveFile, objectFiles, err := b.compileCore(actualPlatform)
5753
if err != nil {
5854
return nil, nil, errors.WithStack(err)
5955
}
6056

6157
return objectFiles, archiveFile, nil
6258
}
6359

64-
func (b *Builder) compileCore(
65-
actualPlatform *cores.PlatformRelease,
66-
compilationDatabase *compilation.Database,
67-
) (*paths.Path, paths.PathList, error) {
60+
func (b *Builder) compileCore(actualPlatform *cores.PlatformRelease) (*paths.Path, paths.PathList, error) {
6861
coreFolder := b.buildProperties.GetPath("build.core.path")
6962
variantFolder := b.buildProperties.GetPath("build.variant.path")
7063
targetCoreFolder := b.buildProperties.GetPath("runtime.platform.path")
@@ -81,7 +74,7 @@ func (b *Builder) compileCore(
8174
variantObjectFiles, err = utils.CompileFilesRecursive(
8275
variantFolder, b.coreBuildPath, b.buildProperties, includes,
8376
b.onlyUpdateCompilationDatabase,
84-
compilationDatabase,
77+
b.compilationDatabase,
8578
b.jobs,
8679
b.logger,
8780
b.Progress,
@@ -132,7 +125,7 @@ func (b *Builder) compileCore(
132125
coreObjectFiles, err := utils.CompileFilesRecursive(
133126
coreFolder, b.coreBuildPath, b.buildProperties, includes,
134127
b.onlyUpdateCompilationDatabase,
135-
compilationDatabase,
128+
b.compilationDatabase,
136129
b.jobs,
137130
b.logger,
138131
b.Progress,

Diff for: arduino/builder/libraries.go

+8-19
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import (
1919
"strings"
2020
"time"
2121

22-
"github.com/arduino/arduino-cli/arduino/builder/compilation"
2322
"github.com/arduino/arduino-cli/arduino/builder/cpp"
2423
"github.com/arduino/arduino-cli/arduino/builder/utils"
2524
"github.com/arduino/arduino-cli/arduino/cores"
@@ -38,19 +37,15 @@ var (
3837
)
3938

4039
// BuildLibraries fixdoc
41-
func (b *Builder) BuildLibraries(
42-
includesFolders paths.PathList,
43-
importedLibraries libraries.List,
44-
compilationDatabase *compilation.Database,
45-
) (paths.PathList, error) {
40+
func (b *Builder) BuildLibraries(includesFolders paths.PathList, importedLibraries libraries.List) (paths.PathList, error) {
4641
includes := f.Map(includesFolders.AsStrings(), cpp.WrapWithHyphenI)
4742
libs := importedLibraries
4843

4944
if err := b.librariesBuildPath.MkdirAll(); err != nil {
5045
return nil, errors.WithStack(err)
5146
}
5247

53-
librariesObjectFiles, err := b.compileLibraries(libs, includes, compilationDatabase)
48+
librariesObjectFiles, err := b.compileLibraries(libs, includes)
5449
if err != nil {
5550
return nil, errors.WithStack(err)
5651
}
@@ -117,16 +112,13 @@ func (b *Builder) findExpectedPrecompiledLibFolder(
117112
return nil
118113
}
119114

120-
func (b *Builder) compileLibraries(libraries libraries.List, includes []string, compilationDatabase *compilation.Database) (paths.PathList, error) {
115+
func (b *Builder) compileLibraries(libraries libraries.List, includes []string) (paths.PathList, error) {
121116
b.Progress.AddSubSteps(len(libraries))
122117
defer b.Progress.RemoveSubSteps()
123118

124119
objectFiles := paths.NewPathList()
125120
for _, library := range libraries {
126-
libraryObjectFiles, err := b.compileLibrary(
127-
library, includes,
128-
compilationDatabase,
129-
)
121+
libraryObjectFiles, err := b.compileLibrary(library, includes)
130122
if err != nil {
131123
return nil, errors.WithStack(err)
132124
}
@@ -139,10 +131,7 @@ func (b *Builder) compileLibraries(libraries libraries.List, includes []string,
139131
return objectFiles, nil
140132
}
141133

142-
func (b *Builder) compileLibrary(
143-
library *libraries.Library, includes []string,
144-
compilationDatabase *compilation.Database,
145-
) (paths.PathList, error) {
134+
func (b *Builder) compileLibrary(library *libraries.Library, includes []string) (paths.PathList, error) {
146135
if b.logger.Verbose() {
147136
b.logger.Info(tr(`Compiling library "%[1]s"`, library.Name))
148137
}
@@ -205,7 +194,7 @@ func (b *Builder) compileLibrary(
205194
libObjectFiles, err := utils.CompileFilesRecursive(
206195
library.SourceDir, libraryBuildPath, b.buildProperties, includes,
207196
b.onlyUpdateCompilationDatabase,
208-
compilationDatabase,
197+
b.compilationDatabase,
209198
b.jobs,
210199
b.logger,
211200
b.Progress,
@@ -236,7 +225,7 @@ func (b *Builder) compileLibrary(
236225
libObjectFiles, err := utils.CompileFiles(
237226
library.SourceDir, libraryBuildPath, b.buildProperties, includes,
238227
b.onlyUpdateCompilationDatabase,
239-
compilationDatabase,
228+
b.compilationDatabase,
240229
b.jobs,
241230
b.logger,
242231
b.Progress,
@@ -251,7 +240,7 @@ func (b *Builder) compileLibrary(
251240
utilityObjectFiles, err := utils.CompileFiles(
252241
library.UtilityDir, utilityBuildPath, b.buildProperties, includes,
253242
b.onlyUpdateCompilationDatabase,
254-
compilationDatabase,
243+
b.compilationDatabase,
255244
b.jobs,
256245
b.logger,
257246
b.Progress,

Diff for: arduino/builder/sketch.go

+3-7
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323
"strconv"
2424
"strings"
2525

26-
"github.com/arduino/arduino-cli/arduino/builder/compilation"
2726
"github.com/arduino/arduino-cli/arduino/builder/cpp"
2827
"github.com/arduino/arduino-cli/arduino/builder/utils"
2928
"github.com/arduino/arduino-cli/arduino/sketch"
@@ -180,10 +179,7 @@ func writeIfDifferent(source []byte, destPath *paths.Path) error {
180179
}
181180

182181
// BuildSketch fixdoc
183-
func (b *Builder) BuildSketch(
184-
includesFolders paths.PathList,
185-
compilationDatabase *compilation.Database,
186-
) (paths.PathList, error) {
182+
func (b *Builder) BuildSketch(includesFolders paths.PathList) (paths.PathList, error) {
187183
includes := f.Map(includesFolders.AsStrings(), cpp.WrapWithHyphenI)
188184

189185
if err := b.sketchBuildPath.MkdirAll(); err != nil {
@@ -193,7 +189,7 @@ func (b *Builder) BuildSketch(
193189
sketchObjectFiles, err := utils.CompileFiles(
194190
b.sketchBuildPath, b.sketchBuildPath, b.buildProperties, includes,
195191
b.onlyUpdateCompilationDatabase,
196-
compilationDatabase,
192+
b.compilationDatabase,
197193
b.jobs,
198194
b.builderLogger,
199195
b.Progress,
@@ -208,7 +204,7 @@ func (b *Builder) BuildSketch(
208204
srcObjectFiles, err := utils.CompileFilesRecursive(
209205
sketchSrcPath, sketchSrcPath, b.buildProperties, includes,
210206
b.onlyUpdateCompilationDatabase,
211-
compilationDatabase,
207+
b.compilationDatabase,
212208
b.jobs,
213209
b.builderLogger,
214210
b.Progress,

Diff for: commands/compile/compile.go

-5
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525

2626
"github.com/arduino/arduino-cli/arduino"
2727
bldr "github.com/arduino/arduino-cli/arduino/builder"
28-
"github.com/arduino/arduino-cli/arduino/builder/compilation"
2928
"github.com/arduino/arduino-cli/arduino/builder/detector"
3029
"github.com/arduino/arduino-cli/arduino/builder/logger"
3130
"github.com/arduino/arduino-cli/arduino/builder/progress"
@@ -223,10 +222,6 @@ func Compile(ctx context.Context, req *rpc.CompileRequest, outStream, errStream
223222
}
224223
builderCtx.Builder = sketchBuilder
225224

226-
builderCtx.CompilationDatabase = compilation.NewDatabase(
227-
sketchBuilder.GetBuildPath().Join("compile_commands.json"),
228-
)
229-
230225
var libsManager *librariesmanager.LibrariesManager
231226
if pme.GetProfile() != nil {
232227
libsManager = lm

Diff for: legacy/builder/builder.go

+3-9
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,7 @@ func (s *Builder) Run(ctx *types.Context) error {
6464
}),
6565

6666
types.BareCommand(func(ctx *types.Context) error {
67-
sketchObjectFiles, err := ctx.Builder.BuildSketch(
68-
ctx.SketchLibrariesDetector.IncludeFolders(),
69-
ctx.CompilationDatabase,
70-
)
67+
sketchObjectFiles, err := ctx.Builder.BuildSketch(ctx.SketchLibrariesDetector.IncludeFolders())
7168
if err != nil {
7269
return err
7370
}
@@ -94,7 +91,6 @@ func (s *Builder) Run(ctx *types.Context) error {
9491
librariesObjectFiles, err := ctx.Builder.BuildLibraries(
9592
ctx.SketchLibrariesDetector.IncludeFolders(),
9693
ctx.SketchLibrariesDetector.ImportedLibraries(),
97-
ctx.CompilationDatabase,
9894
)
9995
if err != nil {
10096
return err
@@ -113,7 +109,7 @@ func (s *Builder) Run(ctx *types.Context) error {
113109
}),
114110

115111
types.BareCommand(func(ctx *types.Context) error {
116-
objectFiles, archiveFile, err := ctx.Builder.BuildCore(ctx.ActualPlatform, ctx.CompilationDatabase)
112+
objectFiles, archiveFile, err := ctx.Builder.BuildCore(ctx.ActualPlatform)
117113

118114
ctx.CoreObjectsFiles = objectFiles
119115
ctx.CoreArchiveFilePath = archiveFile
@@ -176,9 +172,7 @@ func (s *Builder) Run(ctx *types.Context) error {
176172
ctx.Builder.Progress.PushProgress()
177173
}
178174

179-
if ctx.CompilationDatabase != nil {
180-
ctx.CompilationDatabase.SaveToFile()
181-
}
175+
ctx.Builder.SaveCompilationDatabase()
182176

183177
var otherErr error
184178
commands = []types.Command{

Diff for: legacy/builder/types/context.go

-4
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ package types
1717

1818
import (
1919
"github.com/arduino/arduino-cli/arduino/builder"
20-
"github.com/arduino/arduino-cli/arduino/builder/compilation"
2120
"github.com/arduino/arduino-cli/arduino/builder/detector"
2221
"github.com/arduino/arduino-cli/arduino/builder/logger"
2322
"github.com/arduino/arduino-cli/arduino/cores"
@@ -48,7 +47,4 @@ type Context struct {
4847

4948
// C++ Parsing
5049
LineOffset int
51-
52-
// Compilation Database to build/update
53-
CompilationDatabase *compilation.Database
5450
}

0 commit comments

Comments
 (0)