@@ -299,30 +299,39 @@ func (pme *Explorer) ResolveFQBN(fqbn *cores.FQBN) (
299
299
300
300
// Determine the platform used for the build (in case the board refers
301
301
// 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 {
308
313
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 )
310
315
}
311
- buildPlatform := buildPackage .Platforms [fqbn .PlatformArch ]
312
- if buildPlatform == nil {
316
+ referredPlatform := referredPackage .Platforms [fqbn .PlatformArch ]
317
+ if referredPlatform == nil {
313
318
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 )
315
320
}
316
- buildPlatformRelease = pme .GetInstalledPlatformRelease (buildPlatform )
317
- if buildPlatformRelease == nil {
321
+ referredPlatformRelease = pme .GetInstalledPlatformRelease (referredPlatform )
322
+ if referredPlatformRelease == nil {
318
323
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 )
320
325
}
321
326
}
322
327
323
328
// Runtime build properties
329
+ buildPlatformRelease := platformRelease
330
+ if referredCore != "" {
331
+ buildPlatformRelease = referredPlatformRelease
332
+ }
324
333
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 ))
326
335
buildProperties .SetPath ("build.system.path" , buildPlatformRelease .InstallDir .Join ("system" ))
327
336
for _ , tool := range pme .GetAllInstalledToolsReleases () {
328
337
buildProperties .Merge (tool .RuntimeProperties ())
0 commit comments