Skip to content

Bugfix: do not overwrite board properties during compile #1820

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Aug 2, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 0 additions & 47 deletions legacy/builder/add_build_board_property_if_missing.go

This file was deleted.

1 change: 0 additions & 1 deletion legacy/builder/container_setup.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ func (s *ContainerSetupHardwareToolsLibsSketchAndProps) Run(ctx *types.Context)
&RewriteHardwareKeys{},
&TargetBoardResolver{},
&ToolsLoader{},
&AddBuildBoardPropertyIfMissing{},
&LibrariesLoader{},
}

Expand Down
3 changes: 1 addition & 2 deletions legacy/builder/setup_build_properties.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,11 @@ func (s *SetupBuildProperties) Run(ctx *types.Context) error {

targetPlatform := ctx.TargetPlatform
actualPlatform := ctx.ActualPlatform
targetBoard := ctx.TargetBoard

buildProperties := properties.NewMap()
buildProperties.Merge(actualPlatform.Properties)
buildProperties.Merge(targetPlatform.Properties)
buildProperties.Merge(targetBoard.Properties)
buildProperties.Merge(ctx.TargetBoardBuildProperties)

if ctx.BuildPath != nil {
buildProperties.SetPath("build.path", ctx.BuildPath)
Expand Down
13 changes: 10 additions & 3 deletions legacy/builder/target_board_resolver.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,7 @@ func (s *TargetBoardResolver) Run(ctx *types.Context) error {
return fmt.Errorf("%s: %w", tr("Error resolving FQBN"), err)
}

targetBoard.Properties = buildProperties // FIXME....

core := targetBoard.Properties.Get("build.core")
core := buildProperties.Get("build.core")
if core == "" {
core = "arduino"
}
Expand All @@ -44,8 +42,17 @@ func (s *TargetBoardResolver) Run(ctx *types.Context) error {
ctx.Info(tr("Using core '%[1]s' from platform in folder: %[2]s", core, actualPlatform.InstallDir))
}

if buildProperties.Get("build.board") == "" {
architecture := targetBoard.PlatformRelease.Platform.Architecture
defaultBuildBoard := strings.ToUpper(architecture + "_" + targetBoard.BoardID)
buildProperties.Set("build.board", defaultBuildBoard)
ctx.Info(tr("Warning: Board %[1]s doesn't define a %[2]s preference. Auto-set to: %[3]s",
targetBoard.String(), "'build.board'", defaultBuildBoard))
}

ctx.BuildCore = core
ctx.TargetBoard = targetBoard
ctx.TargetBoardBuildProperties = buildProperties
ctx.TargetPlatform = targetPlatform
ctx.TargetPackage = targetPackage
ctx.ActualPlatform = actualPlatform
Expand Down
12 changes: 6 additions & 6 deletions legacy/builder/test/add_build_board_property_if_missing_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ func TestAddBuildBoardPropertyIfMissing(t *testing.T) {
commands := []types.Command{
&builder.HardwareLoader{},
&builder.TargetBoardResolver{},
&builder.AddBuildBoardPropertyIfMissing{},
}

for _, command := range commands {
Expand All @@ -60,8 +59,9 @@ func TestAddBuildBoardPropertyIfMissing(t *testing.T) {
require.Equal(t, "avr", targetPlatform.Platform.Architecture)
targetBoard := ctx.TargetBoard
require.Equal(t, "mymega", targetBoard.BoardID)
require.Equal(t, "atmega2560", targetBoard.Properties.Get("build.mcu"))
require.Equal(t, "AVR_MYMEGA2560", targetBoard.Properties.Get("build.board"))
targetBoardBuildProperties := ctx.TargetBoardBuildProperties
require.Equal(t, "atmega2560", targetBoardBuildProperties.Get("build.mcu"))
require.Equal(t, "AVR_MYMEGA", targetBoardBuildProperties.Get("build.board"))
}

func TestAddBuildBoardPropertyIfMissingNotMissing(t *testing.T) {
Expand All @@ -76,7 +76,6 @@ func TestAddBuildBoardPropertyIfMissingNotMissing(t *testing.T) {
commands := []types.Command{
&builder.HardwareLoader{},
&builder.TargetBoardResolver{},
&builder.AddBuildBoardPropertyIfMissing{},
}

for _, command := range commands {
Expand All @@ -90,6 +89,7 @@ func TestAddBuildBoardPropertyIfMissingNotMissing(t *testing.T) {
require.Equal(t, "avr", targetPlatform.Platform.Architecture)
targetBoard := ctx.TargetBoard
require.Equal(t, "mymega", targetBoard.BoardID)
require.Equal(t, "atmega1280", targetBoard.Properties.Get("build.mcu"))
require.Equal(t, "AVR_MYMEGA", targetBoard.Properties.Get("build.board"))
targetBoardBuildProperties := ctx.TargetBoardBuildProperties
require.Equal(t, "atmega1280", targetBoardBuildProperties.Get("build.mcu"))
require.Equal(t, "MYMEGA1280", targetBoardBuildProperties.Get("build.board"))
}
24 changes: 15 additions & 9 deletions legacy/builder/test/target_board_resolver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ func TestTargetBoardResolverUno(t *testing.T) {
require.Equal(t, "avr", targetPlatform.Platform.Architecture)
targetBoard := ctx.TargetBoard
require.Equal(t, "uno", targetBoard.BoardID)
require.Equal(t, "atmega328p", targetBoard.Properties.Get("build.mcu"))
targetBoardBuildProperties := ctx.TargetBoardBuildProperties
require.Equal(t, "atmega328p", targetBoardBuildProperties.Get("build.mcu"))
}

func TestTargetBoardResolverDue(t *testing.T) {
Expand All @@ -72,7 +73,8 @@ func TestTargetBoardResolverDue(t *testing.T) {
require.Equal(t, "sam", targetPlatform.Platform.Architecture)
targetBoard := ctx.TargetBoard
require.Equal(t, "arduino_due_x", targetBoard.BoardID)
require.Equal(t, "cortex-m3", targetBoard.Properties.Get("build.mcu"))
targetBoardBuildProperties := ctx.TargetBoardBuildProperties
require.Equal(t, "cortex-m3", targetBoardBuildProperties.Get("build.mcu"))
}

func TestTargetBoardResolverMega1280(t *testing.T) {
Expand All @@ -97,8 +99,9 @@ func TestTargetBoardResolverMega1280(t *testing.T) {
require.Equal(t, "avr", targetPlatform.Platform.Architecture)
targetBoard := ctx.TargetBoard
require.Equal(t, "mega", targetBoard.BoardID)
require.Equal(t, "atmega1280", targetBoard.Properties.Get("build.mcu"))
require.Equal(t, "AVR_MEGA", targetBoard.Properties.Get("build.board"))
targetBoardBuildProperties := ctx.TargetBoardBuildProperties
require.Equal(t, "atmega1280", targetBoardBuildProperties.Get("build.mcu"))
require.Equal(t, "AVR_MEGA", targetBoardBuildProperties.Get("build.board"))
}

func TestTargetBoardResolverMega2560(t *testing.T) {
Expand All @@ -123,8 +126,9 @@ func TestTargetBoardResolverMega2560(t *testing.T) {
require.Equal(t, "avr", targetPlatform.Platform.Architecture)
targetBoard := ctx.TargetBoard
require.Equal(t, "mega", targetBoard.BoardID)
require.Equal(t, "atmega2560", targetBoard.Properties.Get("build.mcu"))
require.Equal(t, "AVR_MEGA2560", targetBoard.Properties.Get("build.board"))
targetBoardBuildProperties := ctx.TargetBoardBuildProperties
require.Equal(t, "atmega2560", targetBoardBuildProperties.Get("build.mcu"))
require.Equal(t, "AVR_MEGA2560", targetBoardBuildProperties.Get("build.board"))
}

func TestTargetBoardResolverCustomYun(t *testing.T) {
Expand All @@ -149,8 +153,9 @@ func TestTargetBoardResolverCustomYun(t *testing.T) {
require.Equal(t, "avr", targetPlatform.Platform.Architecture)
targetBoard := ctx.TargetBoard
require.Equal(t, "custom_yun", targetBoard.BoardID)
require.Equal(t, "atmega32u4", targetBoard.Properties.Get("build.mcu"))
require.Equal(t, "AVR_YUN", targetBoard.Properties.Get("build.board"))
targetBoardBuildProperties := ctx.TargetBoardBuildProperties
require.Equal(t, "atmega32u4", targetBoardBuildProperties.Get("build.mcu"))
require.Equal(t, "AVR_YUN", targetBoardBuildProperties.Get("build.board"))
}

func TestTargetBoardResolverCustomCore(t *testing.T) {
Expand All @@ -176,5 +181,6 @@ func TestTargetBoardResolverCustomCore(t *testing.T) {
targetBoard := ctx.TargetBoard
require.Equal(t, "attiny841", targetBoard.BoardID)
require.Equal(t, "tiny841", ctx.BuildCore)
require.Equal(t, "tiny14", targetBoard.Properties.Get("build.variant"))
targetBoardBuildProperties := ctx.TargetBoardBuildProperties
require.Equal(t, "tiny14", targetBoardBuildProperties.Get("build.variant"))
}
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@ mymega.menu.cpu.atmega2560.bootloader.extended_fuses=0xFD
mymega.menu.cpu.atmega2560.bootloader.file={bootloader._folder}/stk500boot_v2_mega2560.hex

mymega.menu.cpu.atmega2560.build.mcu=atmega2560
mymega.menu.cpu.atmega2560.build.board=AVR_MYMEGA2560
# Do not define build.board to test autogeneration
#mymega.menu.cpu.atmega2560.build.board=AVR_MYMEGA2560

mymega.menu.cpu.atmega1280=ATmega1280

Expand All @@ -84,4 +85,5 @@ mymega.menu.cpu.atmega1280.bootloader.extended_fuses=0xF5
mymega.menu.cpu.atmega1280.bootloader.file={bootloader._folder}/ATmegaBOOT_168_atmega1280.hex

mymega.menu.cpu.atmega1280.build.mcu=atmega1280
mymega.menu.cpu.atmega1280.build.board=AVR_MYMEGA
# define custom build.board for testing
mymega.menu.cpu.atmega1280.build.board=MYMEGA1280
19 changes: 10 additions & 9 deletions legacy/builder/types/context.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,15 +82,16 @@ type Context struct {
BuildOptionsJson string
BuildOptionsJsonPrevious string

PackageManager *packagemanager.PackageManager
Hardware cores.Packages
AllTools []*cores.ToolRelease
RequiredTools []*cores.ToolRelease
TargetBoard *cores.Board
TargetPackage *cores.Package
TargetPlatform *cores.PlatformRelease
ActualPlatform *cores.PlatformRelease
USBVidPid string
PackageManager *packagemanager.PackageManager
Hardware cores.Packages
AllTools []*cores.ToolRelease
RequiredTools []*cores.ToolRelease
TargetBoard *cores.Board
TargetBoardBuildProperties *properties.Map
TargetPackage *cores.Package
TargetPlatform *cores.PlatformRelease
ActualPlatform *cores.PlatformRelease
USBVidPid string

PlatformKeyRewrites PlatforKeysRewrite
HardwareRewriteResults map[*cores.PlatformRelease][]PlatforKeyRewrite
Expand Down