Skip to content

Commit 96a5ca5

Browse files
committed
Moved BuildOptionsJSON into Context structure
Signed-off-by: Cristian Maglie <[email protected]>
1 parent ab56609 commit 96a5ca5

9 files changed

+18
-40
lines changed

src/arduino.cc/builder/constants/constants.go

-3
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,6 @@ const CTAGS = "ctags"
7777
const CTX_ACTUAL_PLATFORM = "actualPlatform"
7878
const CTX_ARCHIVE_FILE_PATH_CORE = "archiveFileCore"
7979
const CTX_BUILD_CORE = "buildCore"
80-
const CTX_BUILD_OPTIONS = "buildOptions"
81-
const CTX_BUILD_OPTIONS_JSON = "buildOptionsJson"
82-
const CTX_BUILD_OPTIONS_PREVIOUS_JSON = "buildOptionsPreviousJson"
8380
const CTX_BUILD_PROPERTIES = "buildProperties"
8481
const CTX_COLLECTED_SOURCE_FILES_QUEUE = "collectedSourceFilesQueue"
8582
const CTX_FILE_PATH_TO_READ = "filePathToRead"

src/arduino.cc/builder/create_build_options_map.go

+1-4
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
package builder
3131

3232
import (
33-
"arduino.cc/builder/constants"
3433
"arduino.cc/builder/i18n"
3534
"arduino.cc/builder/types"
3635
"encoding/json"
@@ -40,14 +39,12 @@ type CreateBuildOptionsMap struct{}
4039

4140
func (s *CreateBuildOptionsMap) Run(context map[string]interface{}, ctx *types.Context) error {
4241
buildOptions := ctx.ExtractBuildOptions()
43-
context[constants.CTX_BUILD_OPTIONS] = buildOptions
44-
4542
bytes, err := json.MarshalIndent(buildOptions, "", " ")
4643
if err != nil {
4744
return i18n.WrapError(err)
4845
}
4946

50-
context[constants.CTX_BUILD_OPTIONS_JSON] = string(bytes)
47+
ctx.BuildOptionsJson = string(bytes)
5148

5249
return nil
5350
}

src/arduino.cc/builder/load_previous_build_options.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func (s *LoadPreviousBuildOptionsMap) Run(context map[string]interface{}, ctx *t
5656
return i18n.WrapError(err)
5757
}
5858

59-
context[constants.CTX_BUILD_OPTIONS_PREVIOUS_JSON] = string(bytes)
59+
ctx.BuildOptionsJsonPrevious = string(bytes)
6060

6161
return nil
6262
}

src/arduino.cc/builder/store_build_options_map.go

+1-5
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,6 @@ import (
3939
type StoreBuildOptionsMap struct{}
4040

4141
func (s *StoreBuildOptionsMap) Run(context map[string]interface{}, ctx *types.Context) error {
42-
buildPath := ctx.BuildPath
43-
buildOptionsJson := context[constants.CTX_BUILD_OPTIONS_JSON].(string)
44-
45-
utils.WriteFile(filepath.Join(buildPath, constants.BUILD_OPTIONS_FILE), buildOptionsJson)
46-
42+
utils.WriteFile(filepath.Join(ctx.BuildPath, constants.BUILD_OPTIONS_FILE), ctx.BuildOptionsJson)
4743
return nil
4844
}

src/arduino.cc/builder/test/create_build_options_map_test.go

+1-15
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,7 @@ package test
3131

3232
import (
3333
"arduino.cc/builder"
34-
"arduino.cc/builder/constants"
35-
"arduino.cc/builder/props"
3634
"arduino.cc/builder/types"
37-
"arduino.cc/builder/utils"
3835
"github.com/stretchr/testify/require"
3936
"testing"
4037
)
@@ -57,17 +54,6 @@ func TestCreateBuildOptionsMap(t *testing.T) {
5754
err := create.Run(context, ctx)
5855
NoError(t, err)
5956

60-
buildOptions := context[constants.CTX_BUILD_OPTIONS].(props.PropertiesMap)
61-
require.Equal(t, 8, len(utils.KeysOfMapOfString(buildOptions)))
62-
require.Equal(t, "hardware,hardware2", buildOptions["hardwareFolders"])
63-
require.Equal(t, "tools", buildOptions["toolsFolders"])
64-
require.Equal(t, "", buildOptions["builtInLibrariesFolders"])
65-
require.Equal(t, "", buildOptions["customBuildProperties"])
66-
require.Equal(t, "libraries", buildOptions["otherLibrariesFolders"])
67-
require.Equal(t, "fqbn", buildOptions["fqbn"])
68-
require.Equal(t, "sketchLocation", buildOptions["sketchLocation"])
69-
require.Equal(t, "ideVersion", buildOptions["runtime.ide.version"])
70-
7157
require.Equal(t, "{\n"+
7258
" \"builtInLibrariesFolders\": \"\",\n"+
7359
" \"customBuildProperties\": \"\",\n"+
@@ -77,5 +63,5 @@ func TestCreateBuildOptionsMap(t *testing.T) {
7763
" \"runtime.ide.version\": \"ideVersion\",\n"+
7864
" \"sketchLocation\": \"sketchLocation\",\n"+
7965
" \"toolsFolders\": \"tools\"\n"+
80-
"}", context[constants.CTX_BUILD_OPTIONS_JSON].(string))
66+
"}", ctx.BuildOptionsJson)
8167
}

src/arduino.cc/builder/test/load_previous_build_options_map_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func TestLoadPreviousBuildOptionsMap(t *testing.T) {
5454
err = command.Run(context, ctx)
5555
NoError(t, err)
5656

57-
require.Equal(t, "test", context[constants.CTX_BUILD_OPTIONS_PREVIOUS_JSON])
57+
require.Equal(t, "test", ctx.BuildOptionsJsonPrevious)
5858
}
5959

6060
func TestLoadPreviousBuildOptionsMapMissingFile(t *testing.T) {
@@ -68,5 +68,5 @@ func TestLoadPreviousBuildOptionsMapMissingFile(t *testing.T) {
6868
err := command.Run(context, ctx)
6969
NoError(t, err)
7070

71-
require.False(t, utils.MapHas(context, constants.CTX_BUILD_OPTIONS_PREVIOUS_JSON))
71+
require.Empty(t, ctx.BuildOptionsJsonPrevious)
7272
}

src/arduino.cc/builder/test/wipeout_build_path_if_build_options_changed_test.go

+5-6
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ package test
3131

3232
import (
3333
"arduino.cc/builder"
34-
"arduino.cc/builder/constants"
3534
"arduino.cc/builder/gohasissues"
3635
"arduino.cc/builder/types"
3736
"arduino.cc/builder/utils"
@@ -48,8 +47,8 @@ func TestWipeoutBuildPathIfBuildOptionsChanged(t *testing.T) {
4847
buildPath := SetupBuildPath(t, ctx)
4948
defer os.RemoveAll(buildPath)
5049

51-
context[constants.CTX_BUILD_OPTIONS_PREVIOUS_JSON] = "old"
52-
context[constants.CTX_BUILD_OPTIONS_JSON] = "new"
50+
ctx.BuildOptionsJsonPrevious = "old"
51+
ctx.BuildOptionsJson = "new"
5352

5453
utils.TouchFile(filepath.Join(buildPath, "should_be_deleted.txt"))
5554

@@ -80,7 +79,7 @@ func TestWipeoutBuildPathIfBuildOptionsChangedNoPreviousBuildOptions(t *testing.
8079
buildPath := SetupBuildPath(t, ctx)
8180
defer os.RemoveAll(buildPath)
8281

83-
context[constants.CTX_BUILD_OPTIONS_JSON] = "new"
82+
ctx.BuildOptionsJson = "new"
8483

8584
utils.TouchFile(filepath.Join(buildPath, "should_not_be_deleted.txt"))
8685

@@ -111,8 +110,8 @@ func TestWipeoutBuildPathIfBuildOptionsChangedBuildOptionsMatch(t *testing.T) {
111110
buildPath := SetupBuildPath(t, ctx)
112111
defer os.RemoveAll(buildPath)
113112

114-
context[constants.CTX_BUILD_OPTIONS_PREVIOUS_JSON] = "options"
115-
context[constants.CTX_BUILD_OPTIONS_JSON] = "options"
113+
ctx.BuildOptionsJsonPrevious = "options"
114+
ctx.BuildOptionsJson = "options"
116115

117116
utils.TouchFile(filepath.Join(buildPath, "should_not_be_deleted.txt"))
118117

src/arduino.cc/builder/types/context.go

+4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ type Context struct {
1616
ArduinoAPIVersion string
1717
FQBN string
1818

19+
// Build options are serialized here
20+
BuildOptionsJson string
21+
BuildOptionsJsonPrevious string
22+
1923
BuildPath string
2024
SketchBuildPath string
2125
CoreBuildPath string

src/arduino.cc/builder/wipeout_build_path_if_build_options_changed.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ import (
3434
"arduino.cc/builder/gohasissues"
3535
"arduino.cc/builder/i18n"
3636
"arduino.cc/builder/types"
37-
"arduino.cc/builder/utils"
3837
"os"
3938
"path/filepath"
4039
"regexp"
@@ -43,11 +42,11 @@ import (
4342
type WipeoutBuildPathIfBuildOptionsChanged struct{}
4443

4544
func (s *WipeoutBuildPathIfBuildOptionsChanged) Run(context map[string]interface{}, ctx *types.Context) error {
46-
if !utils.MapHas(context, constants.CTX_BUILD_OPTIONS_PREVIOUS_JSON) {
45+
if ctx.BuildOptionsJsonPrevious == "" {
4746
return nil
4847
}
49-
buildOptionsJson := context[constants.CTX_BUILD_OPTIONS_JSON].(string)
50-
previousBuildOptionsJson := context[constants.CTX_BUILD_OPTIONS_PREVIOUS_JSON].(string)
48+
buildOptionsJson := ctx.BuildOptionsJson
49+
previousBuildOptionsJson := ctx.BuildOptionsJsonPrevious
5150
logger := ctx.GetLogger()
5251

5352
if buildOptionsJson == previousBuildOptionsJson {

0 commit comments

Comments
 (0)