Skip to content

Commit 6c0b552

Browse files
committed
Made the referenced-core determination a bit more readable
Equivalent change, should not change behaviour
1 parent 5a016ce commit 6c0b552

File tree

1 file changed

+23
-14
lines changed

1 file changed

+23
-14
lines changed

arduino/cores/packagemanager/package_manager.go

+23-14
Original file line numberDiff line numberDiff line change
@@ -299,30 +299,39 @@ func (pme *Explorer) ResolveFQBN(fqbn *cores.FQBN) (
299299

300300
// Determine the platform used for the build (in case the board refers
301301
// to a core contained in another platform)
302-
buildPlatformRelease := platformRelease
303-
coreParts := strings.Split(buildProperties.Get("build.core"), ":")
304-
if len(coreParts) > 1 {
305-
referredPackage := coreParts[0]
306-
buildPackage := pme.packages[referredPackage]
307-
if buildPackage == nil {
302+
core := buildProperties.Get("build.core")
303+
referredCore := ""
304+
if split := strings.Split(core, ":"); len(split) > 1 {
305+
core, referredCore = split[1], split[0]
306+
}
307+
308+
var referredPlatformRelease *cores.PlatformRelease
309+
referredPackageName := referredCore
310+
if referredPackageName != "" {
311+
referredPackage := pme.packages[referredPackageName]
312+
if referredPackage == nil {
308313
return targetPackage, platformRelease, board, buildProperties, nil,
309-
fmt.Errorf(tr("missing package %[1]s referenced by board %[2]s"), referredPackage, fqbn)
314+
fmt.Errorf(tr("missing package %[1]s referenced by board %[2]s"), referredPackageName, fqbn)
310315
}
311-
buildPlatform := buildPackage.Platforms[fqbn.PlatformArch]
312-
if buildPlatform == nil {
316+
referredPlatform := referredPackage.Platforms[fqbn.PlatformArch]
317+
if referredPlatform == nil {
313318
return targetPackage, platformRelease, board, buildProperties, nil,
314-
fmt.Errorf(tr("missing platform %[1]s:%[2]s referenced by board %[3]s"), referredPackage, fqbn.PlatformArch, fqbn)
319+
fmt.Errorf(tr("missing platform %[1]s:%[2]s referenced by board %[3]s"), referredPackageName, fqbn.PlatformArch, fqbn)
315320
}
316-
buildPlatformRelease = pme.GetInstalledPlatformRelease(buildPlatform)
317-
if buildPlatformRelease == nil {
321+
referredPlatformRelease = pme.GetInstalledPlatformRelease(referredPlatform)
322+
if referredPlatformRelease == nil {
318323
return targetPackage, platformRelease, board, buildProperties, nil,
319-
fmt.Errorf(tr("missing platform release %[1]s:%[2]s referenced by board %[3]s"), referredPackage, fqbn.PlatformArch, fqbn)
324+
fmt.Errorf(tr("missing platform release %[1]s:%[2]s referenced by board %[3]s"), referredPackageName, fqbn.PlatformArch, fqbn)
320325
}
321326
}
322327

323328
// Runtime build properties
329+
buildPlatformRelease := platformRelease
330+
if referredCore != "" {
331+
buildPlatformRelease = referredPlatformRelease
332+
}
324333
buildProperties.Merge(platformRelease.RuntimeProperties())
325-
buildProperties.SetPath("build.core.path", buildPlatformRelease.InstallDir.Join("cores", coreParts[0]))
334+
buildProperties.SetPath("build.core.path", buildPlatformRelease.InstallDir.Join("cores", core))
326335
buildProperties.SetPath("build.system.path", buildPlatformRelease.InstallDir.Join("system"))
327336
for _, tool := range pme.GetAllInstalledToolsReleases() {
328337
buildProperties.Merge(tool.RuntimeProperties())

0 commit comments

Comments
 (0)