Skip to content

Commit ab166b4

Browse files
remove ActualPlatform and TargetPlatform from Context
1 parent 4cb3c90 commit ab166b4

File tree

9 files changed

+53
-53
lines changed

9 files changed

+53
-53
lines changed

Diff for: arduino/builder/builder.go

+11
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ type Builder struct {
7272
// C++ Parsing
7373
lineOffset int
7474

75+
targetPlatform *cores.PlatformRelease
76+
actualPlatform *cores.PlatformRelease
77+
7578
buildArtifacts *BuildArtifacts
7679

7780
*BuildOptionsManager
@@ -105,6 +108,7 @@ func NewBuilder(
105108
clean bool,
106109
sourceOverrides map[string]string,
107110
onlyUpdateCompilationDatabase bool,
111+
targetPlatform, actualPlatform *cores.PlatformRelease,
108112
logger *logger.BuilderLogger,
109113
progressStats *progress.Struct,
110114
) (*Builder, error) {
@@ -177,6 +181,8 @@ func NewBuilder(
177181
Progress: progressStats,
178182
executableSectionsSize: []ExecutableSectionSize{},
179183
buildArtifacts: &BuildArtifacts{},
184+
targetPlatform: targetPlatform,
185+
actualPlatform: actualPlatform,
180186
BuildOptionsManager: NewBuildOptionsManager(
181187
hardwareDirs, builtInToolsDirs, otherLibrariesDirs,
182188
builtInLibrariesDirs, buildPath,
@@ -223,3 +229,8 @@ func (b *Builder) SaveCompilationDatabase() {
223229
b.compilationDatabase.SaveToFile()
224230
}
225231
}
232+
233+
// TargetPlatform fixdoc
234+
func (b *Builder) TargetPlatform() *cores.PlatformRelease {
235+
return b.targetPlatform
236+
}

Diff for: arduino/builder/core.go

+4-5
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,14 @@ import (
2424

2525
"github.com/arduino/arduino-cli/arduino/builder/cpp"
2626
"github.com/arduino/arduino-cli/arduino/builder/utils"
27-
"github.com/arduino/arduino-cli/arduino/cores"
2827
"github.com/arduino/arduino-cli/buildcache"
2928
f "github.com/arduino/arduino-cli/internal/algorithms"
3029
"github.com/arduino/go-paths-helper"
3130
"github.com/pkg/errors"
3231
)
3332

3433
// BuildCore fixdoc
35-
func (b *Builder) BuildCore(actualPlatform *cores.PlatformRelease) error {
34+
func (b *Builder) BuildCore() error {
3635
if err := b.coreBuildPath.MkdirAll(); err != nil {
3736
return errors.WithStack(err)
3837
}
@@ -49,7 +48,7 @@ func (b *Builder) BuildCore(actualPlatform *cores.PlatformRelease) error {
4948
}
5049
}
5150

52-
archiveFile, objectFiles, err := b.compileCore(actualPlatform)
51+
archiveFile, objectFiles, err := b.compileCore()
5352
if err != nil {
5453
return errors.WithStack(err)
5554
}
@@ -58,7 +57,7 @@ func (b *Builder) BuildCore(actualPlatform *cores.PlatformRelease) error {
5857
return nil
5958
}
6059

61-
func (b *Builder) compileCore(actualPlatform *cores.PlatformRelease) (*paths.Path, paths.PathList, error) {
60+
func (b *Builder) compileCore() (*paths.Path, paths.PathList, error) {
6261
coreFolder := b.buildProperties.GetPath("build.core.path")
6362
variantFolder := b.buildProperties.GetPath("build.variant.path")
6463
targetCoreFolder := b.buildProperties.GetPath("runtime.platform.path")
@@ -154,7 +153,7 @@ func (b *Builder) compileCore(actualPlatform *cores.PlatformRelease) (*paths.Pat
154153
b.logger.Info(tr("Archiving built core (caching) in: %[1]s", targetArchivedCore))
155154
} else if os.IsNotExist(err) {
156155
b.logger.Info(tr("Unable to cache built core, please tell %[1]s maintainers to follow %[2]s",
157-
actualPlatform,
156+
b.actualPlatform,
158157
"https://arduino.github.io/arduino-cli/latest/platform-specification/#recipes-to-build-the-corea-archive-file"))
159158
} else {
160159
b.logger.Info(tr("Error archiving built core (caching) in %[1]s: %[2]s", targetArchivedCore, err))

Diff for: arduino/builder/libraries.go

+2-6
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121

2222
"github.com/arduino/arduino-cli/arduino/builder/cpp"
2323
"github.com/arduino/arduino-cli/arduino/builder/utils"
24-
"github.com/arduino/arduino-cli/arduino/cores"
2524
"github.com/arduino/arduino-cli/arduino/libraries"
2625
f "github.com/arduino/arduino-cli/internal/algorithms"
2726
"github.com/arduino/go-paths-helper"
@@ -289,11 +288,8 @@ func (b *Builder) RemoveUnusedCompiledLibraries(importedLibraries libraries.List
289288
}
290289

291290
// WarnAboutArchIncompatibleLibraries fixdoc
292-
func (b *Builder) WarnAboutArchIncompatibleLibraries(
293-
targetPlatform *cores.PlatformRelease,
294-
importedLibraries libraries.List,
295-
) {
296-
archs := []string{targetPlatform.Platform.Architecture}
291+
func (b *Builder) WarnAboutArchIncompatibleLibraries(importedLibraries libraries.List) {
292+
archs := []string{b.targetPlatform.Platform.Architecture}
297293
overrides, _ := b.buildProperties.GetOk("architecture.override_check")
298294
if overrides != "" {
299295
archs = append(archs, strings.Split(overrides, ",")...)

Diff for: arduino/builder/sketch_test.go

+5-22
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121
"strings"
2222
"testing"
2323

24-
"github.com/arduino/arduino-cli/arduino/cores"
2524
"github.com/arduino/arduino-cli/arduino/sketch"
2625
"github.com/arduino/go-paths-helper"
2726
"github.com/stretchr/testify/require"
@@ -49,13 +48,7 @@ func TestMergeSketchSources(t *testing.T) {
4948
}
5049
mergedSources := strings.ReplaceAll(string(mergedBytes), "%s", pathToGoldenSource)
5150

52-
fqbn, err := cores.ParseFQBN("a:b:c")
53-
require.NoError(t, err)
54-
55-
b, err := NewBuilder(
56-
sk, nil, paths.New("testdata"), false, nil, 0, nil,
57-
nil, nil, nil, nil, fqbn, false, nil, false, nil, nil)
58-
require.NoError(t, err)
51+
b := Builder{sketch: sk}
5952

6053
offset, source, err := b.sketchMergeSources(nil)
6154
require.Nil(t, err)
@@ -68,13 +61,8 @@ func TestMergeSketchSourcesArduinoIncluded(t *testing.T) {
6861
require.Nil(t, err)
6962
require.NotNil(t, sk)
7063

71-
fqbn, err := cores.ParseFQBN("a:b:c")
72-
require.NoError(t, err)
73-
7464
// ensure not to include Arduino.h when it's already there
75-
b, err := NewBuilder(sk, nil, paths.New("testdata"), false, nil, 0, nil,
76-
nil, nil, nil, nil, fqbn, false, nil, false, nil, nil)
77-
require.NoError(t, err)
65+
b := Builder{sketch: sk}
7866

7967
_, source, err := b.sketchMergeSources(nil)
8068
require.Nil(t, err)
@@ -91,16 +79,11 @@ func TestCopyAdditionalFiles(t *testing.T) {
9179
require.Nil(t, err)
9280
require.Equal(t, sk1.AdditionalFiles.Len(), 1)
9381

94-
fqbn, err := cores.ParseFQBN("a:b:c")
95-
require.NoError(t, err)
96-
97-
b1, err := NewBuilder(sk1, nil, paths.New("testdata"), false, nil, 0, nil,
98-
nil, nil, nil, nil, fqbn, false, nil, false, nil, nil)
99-
require.NoError(t, err)
82+
b := Builder{sketch: sk1}
10083

10184
// copy the sketch over, create a fake main file we don't care about it
10285
// but we need it for `SketchLoad` to succeed later
103-
err = b1.sketchCopyAdditionalFiles(tmp, nil)
86+
err = b.sketchCopyAdditionalFiles(tmp, nil)
10487
require.Nil(t, err)
10588
fakeIno := tmp.Join(fmt.Sprintf("%s.ino", tmp.Base()))
10689
require.Nil(t, fakeIno.WriteFile([]byte{}))
@@ -115,7 +98,7 @@ func TestCopyAdditionalFiles(t *testing.T) {
11598
require.Nil(t, err)
11699

117100
// copy again
118-
err = b1.sketchCopyAdditionalFiles(tmp, nil)
101+
err = b.sketchCopyAdditionalFiles(tmp, nil)
119102
require.Nil(t, err)
120103

121104
// verify file hasn't changed

Diff for: commands/compile/compile.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,7 @@ func Compile(ctx context.Context, req *rpc.CompileRequest, outStream, errStream
176176

177177
builderCtx := &types.Context{}
178178
builderCtx.PackageManager = pme
179-
builderCtx.TargetPlatform = targetPlatform
180-
builderCtx.ActualPlatform = buildPlatform
179+
actualPlatform := buildPlatform
181180

182181
// FIXME: This will be redundant when arduino-builder will be part of the cli
183182
builderCtx.HardwareDirs = configuration.HardwareDirectories(configuration.Settings)
@@ -206,6 +205,7 @@ func Compile(ctx context.Context, req *rpc.CompileRequest, outStream, errStream
206205
req.GetClean(),
207206
req.GetSourceOverride(),
208207
req.GetCreateCompilationDatabaseOnly(),
208+
actualPlatform, targetPlatform,
209209
builderLogger,
210210
progress.New(progressCB),
211211
)
@@ -231,7 +231,7 @@ func Compile(ctx context.Context, req *rpc.CompileRequest, outStream, errStream
231231
libsManager, libsResolver, verboseOut, err := detector.LibrariesLoader(
232232
useCachedLibrariesResolution, libsManager,
233233
builderCtx.BuiltInLibrariesDirs, libraryDir, builderCtx.OtherLibrariesDirs,
234-
builderCtx.ActualPlatform, builderCtx.TargetPlatform,
234+
actualPlatform, targetPlatform,
235235
)
236236
if err != nil {
237237
return r, &arduino.CompileFailedError{Message: err.Error()}

Diff for: legacy/builder/builder.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ func (s *Builder) Run(ctx *types.Context) error {
9494
}),
9595

9696
types.BareCommand(func(ctx *types.Context) error {
97-
return ctx.Builder.BuildCore(ctx.ActualPlatform)
97+
return ctx.Builder.BuildCore()
9898
}),
9999

100100
types.BareCommand(func(ctx *types.Context) error {
@@ -274,7 +274,7 @@ func findIncludes(ctx *types.Context) types.BareCommand {
274274
ctx.Builder.Sketch(),
275275
ctx.Builder.GetLibrariesBuildPath(),
276276
ctx.Builder.GetBuildProperties(),
277-
ctx.TargetPlatform.Platform.Architecture,
277+
ctx.Builder.TargetPlatform().Platform.Architecture,
278278
)
279279
})
280280
}
@@ -306,7 +306,6 @@ func containerBuildOptions(ctx *types.Context) types.BareCommand {
306306
func warnAboutArchIncompatibleLibraries(ctx *types.Context) types.BareCommand {
307307
return types.BareCommand(func(ctx *types.Context) error {
308308
ctx.Builder.WarnAboutArchIncompatibleLibraries(
309-
ctx.TargetPlatform,
310309
ctx.SketchLibrariesDetector.ImportedLibraries(),
311310
)
312311
return nil

Diff for: legacy/builder/test/builder_test.go

+13-7
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
bldr "github.com/arduino/arduino-cli/arduino/builder"
2525
"github.com/arduino/arduino-cli/arduino/builder/detector"
2626
"github.com/arduino/arduino-cli/arduino/builder/logger"
27+
"github.com/arduino/arduino-cli/arduino/cores"
2728
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2829
"github.com/arduino/arduino-cli/arduino/sketch"
2930
"github.com/arduino/arduino-cli/legacy/builder/types"
@@ -106,32 +107,37 @@ func prepareBuilderTestContext(t *testing.T, ctx *types.Context, sketchPath *pat
106107
ctx.Builder, err = bldr.NewBuilder(
107108
sk, nil, buildPath, false, nil, 0, nil,
108109
ctx.HardwareDirs, ctx.BuiltInToolsDirs, ctx.OtherLibrariesDirs,
109-
ctx.BuiltInLibrariesDirs, parseFQBN(t, "a:b:c"), false, nil, false, builderLogger, nil,
110+
ctx.BuiltInLibrariesDirs, parseFQBN(t, "a:b:c"), false, nil, false,
111+
nil, nil, builderLogger, nil,
110112
)
111113
require.NoError(t, err)
114+
115+
var actualPlatform, targetPlatform *cores.PlatformRelease
112116
if fqbnString != "" {
113117
fqbn := parseFQBN(t, fqbnString)
114-
_, targetPlatform, _, boardBuildProperties, buildPlatform, err := pme.ResolveFQBN(fqbn)
118+
_, targetPlatfrm, _, boardBuildProperties, buildPlatform, err := pme.ResolveFQBN(fqbn)
115119
require.NoError(t, err)
120+
targetPlatform = targetPlatfrm
121+
actualPlatform = buildPlatform
122+
116123
_, err = pme.FindToolsRequiredForBuild(targetPlatform, buildPlatform)
117124
require.NoError(t, err)
118125

126+
119127
ctx.Builder, err = bldr.NewBuilder(
120128
sk, boardBuildProperties, buildPath, false, nil, 0, nil,
121129
ctx.HardwareDirs, ctx.BuiltInToolsDirs, ctx.OtherLibrariesDirs,
122-
ctx.BuiltInLibrariesDirs, fqbn, false, nil, false, builderLogger, nil)
130+
ctx.BuiltInLibrariesDirs, fqbn, false, nil, false, targetPlatform,
131+
actualPlatform, builderLogger, nil)
123132
require.NoError(t, err)
124-
125133
ctx.PackageManager = pme
126-
ctx.TargetPlatform = targetPlatform
127-
ctx.ActualPlatform = buildPlatform
128134
}
129135

130136
if !stepToSkip[skipLibraries] {
131137
lm, libsResolver, _, err := detector.LibrariesLoader(
132138
false, nil,
133139
ctx.BuiltInLibrariesDirs, nil, ctx.OtherLibrariesDirs,
134-
ctx.ActualPlatform, ctx.TargetPlatform,
140+
actualPlatform, targetPlatform,
135141
)
136142
require.NoError(t, err)
137143

Diff for: legacy/builder/test/libraries_loader_test.go

+13-4
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,13 @@ func TestLoadLibrariesAVR(t *testing.T) {
4646
ctx = prepareBuilderTestContext(t, ctx, nil, "arduino:avr:leonardo")
4747
defer cleanUpBuilderTestContext(t, ctx)
4848

49+
_, targetPlatform, _, _, buildPlatform, err := ctx.PackageManager.ResolveFQBN(parseFQBN(t, "arduino:avr:leonardo"))
50+
require.NoError(t, err)
51+
4952
lm, libsResolver, _, err := detector.LibrariesLoader(
5053
false, nil,
5154
ctx.BuiltInLibrariesDirs, nil, ctx.OtherLibrariesDirs,
52-
ctx.ActualPlatform, ctx.TargetPlatform,
55+
buildPlatform, targetPlatform,
5356
)
5457
require.NoError(t, err)
5558

@@ -150,10 +153,12 @@ func TestLoadLibrariesSAM(t *testing.T) {
150153
ctx = prepareBuilderTestContext(t, ctx, nil, "arduino:sam:arduino_due_x_dbg")
151154
defer cleanUpBuilderTestContext(t, ctx)
152155

156+
_, targetPlatform, _, _, buildPlatform, err := ctx.PackageManager.ResolveFQBN(parseFQBN(t, "arduino:sam:arduino_due_x_dbg"))
157+
require.NoError(t, err)
153158
lm, libsResolver, _, err := detector.LibrariesLoader(
154159
false, nil,
155160
ctx.BuiltInLibrariesDirs, nil, ctx.OtherLibrariesDirs,
156-
ctx.ActualPlatform, ctx.TargetPlatform,
161+
buildPlatform, targetPlatform,
157162
)
158163
require.NoError(t, err)
159164

@@ -227,10 +232,12 @@ func TestLoadLibrariesAVRNoDuplicateLibrariesFolders(t *testing.T) {
227232
ctx = prepareBuilderTestContext(t, ctx, nil, "arduino:avr:leonardo")
228233
defer cleanUpBuilderTestContext(t, ctx)
229234

235+
_, targetPlatform, _, _, buildPlatform, err := ctx.PackageManager.ResolveFQBN(parseFQBN(t, "arduino:avr:leonardo"))
236+
require.NoError(t, err)
230237
lm, _, _, err := detector.LibrariesLoader(
231238
false, nil,
232239
ctx.BuiltInLibrariesDirs, nil, ctx.OtherLibrariesDirs,
233-
ctx.ActualPlatform, ctx.TargetPlatform,
240+
buildPlatform, targetPlatform,
234241
)
235242
require.NoError(t, err)
236243

@@ -250,10 +257,12 @@ func TestLoadLibrariesMyAVRPlatform(t *testing.T) {
250257
ctx = prepareBuilderTestContext(t, ctx, nil, "my_avr_platform:avr:custom_yun")
251258
defer cleanUpBuilderTestContext(t, ctx)
252259

260+
_, targetPlatform, _, _, buildPlatform, err := ctx.PackageManager.ResolveFQBN(parseFQBN(t, "my_avr_platform:avr:custom_yun"))
261+
require.NoError(t, err)
253262
lm, _, _, err := detector.LibrariesLoader(
254263
false, nil,
255264
ctx.BuiltInLibrariesDirs, nil, ctx.OtherLibrariesDirs,
256-
ctx.ActualPlatform, ctx.TargetPlatform,
265+
buildPlatform, targetPlatform,
257266
)
258267
require.NoError(t, err)
259268

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

-3
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import (
1919
"github.com/arduino/arduino-cli/arduino/builder"
2020
"github.com/arduino/arduino-cli/arduino/builder/detector"
2121
"github.com/arduino/arduino-cli/arduino/builder/logger"
22-
"github.com/arduino/arduino-cli/arduino/cores"
2322
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2423
paths "github.com/arduino/go-paths-helper"
2524
)
@@ -37,6 +36,4 @@ type Context struct {
3736
OtherLibrariesDirs paths.PathList
3837

3938
PackageManager *packagemanager.Explorer
40-
TargetPlatform *cores.PlatformRelease
41-
ActualPlatform *cores.PlatformRelease
4239
}

0 commit comments

Comments
 (0)