Skip to content

Commit c68454f

Browse files
committed
SourceFile collectors data are now in Context
Signed-off-by: Cristian Maglie <[email protected]>
1 parent 96a5ca5 commit c68454f

17 files changed

+65
-82
lines changed

Diff for: src/arduino.cc/builder/add_additional_entries_to_context.go

+3-5
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,10 @@ func (s *AddAdditionalEntriesToContext) Run(context map[string]interface{}, ctx
6868
ctx.WarningsLevel = DEFAULT_WARNINGS_LEVEL
6969
}
7070

71-
sourceFiles := &types.UniqueStringQueue{}
72-
context[constants.CTX_COLLECTED_SOURCE_FILES_QUEUE] = sourceFiles
73-
foldersWithSources := &types.UniqueSourceFolderQueue{}
74-
context[constants.CTX_FOLDERS_WITH_SOURCES_QUEUE] = foldersWithSources
71+
ctx.CollectedSourceFiles = &types.UniqueStringQueue{}
72+
ctx.FoldersWithSourceFiles = &types.UniqueSourceFolderQueue{}
7573

76-
context[constants.CTX_LIBRARY_RESOLUTION_RESULTS] = make(map[string]types.LibraryResolutionResult)
74+
ctx.LibrariesResolutionResults = make(map[string]types.LibraryResolutionResult)
7775
context[constants.CTX_HARDWARE_REWRITE_RESULTS] = make(map[*types.Platform][]types.PlatforKeyRewrite)
7876

7977
return nil

Diff for: src/arduino.cc/builder/collect_all_source_files_from_folders_with_sources.go

+2-3
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/gohasissues"
3534
"arduino.cc/builder/i18n"
3635
"arduino.cc/builder/types"
@@ -44,8 +43,8 @@ import (
4443
type CollectAllSourceFilesFromFoldersWithSources struct{}
4544

4645
func (s *CollectAllSourceFilesFromFoldersWithSources) Run(context map[string]interface{}, ctx *types.Context) error {
47-
foldersWithSources := context[constants.CTX_FOLDERS_WITH_SOURCES_QUEUE].(*types.UniqueSourceFolderQueue)
48-
sourceFiles := context[constants.CTX_COLLECTED_SOURCE_FILES_QUEUE].(*types.UniqueStringQueue)
46+
foldersWithSources := ctx.FoldersWithSourceFiles
47+
sourceFiles := ctx.CollectedSourceFiles
4948

5049
filePaths := []string{}
5150
for !foldersWithSources.Empty() {

Diff for: src/arduino.cc/builder/constants/constants.go

-4
Original file line numberDiff line numberDiff line change
@@ -78,18 +78,14 @@ const CTX_ACTUAL_PLATFORM = "actualPlatform"
7878
const CTX_ARCHIVE_FILE_PATH_CORE = "archiveFileCore"
7979
const CTX_BUILD_CORE = "buildCore"
8080
const CTX_BUILD_PROPERTIES = "buildProperties"
81-
const CTX_COLLECTED_SOURCE_FILES_QUEUE = "collectedSourceFilesQueue"
8281
const CTX_FILE_PATH_TO_READ = "filePathToRead"
83-
const CTX_FOLDERS_WITH_SOURCES_QUEUE = "foldersWithSourcesQueue"
8482
const CTX_GCC_MINUS_E_SOURCE = "gccMinusESource"
8583
const CTX_GCC_MINUS_M_OUTPUT = "gccMinusMOutput"
8684
const CTX_HARDWARE = "hardware"
8785
const CTX_HARDWARE_REWRITE_RESULTS = "hardwareRewriteResults"
88-
const CTX_IMPORTED_LIBRARIES = "importedLibraries"
8986
const CTX_INCLUDE_FOLDERS = "includeFolders"
9087
const CTX_INCLUDE_SECTION = "includeSection"
9188
const CTX_INCLUDES_JUST_FOUND = "includesJustFound"
92-
const CTX_LIBRARY_RESOLUTION_RESULTS = "libraryResolutionResults"
9389
const CTX_LINE_OFFSET = "lineOffset"
9490
const CTX_OBJECT_FILES_CORE = "objectFilesCore"
9591
const CTX_OBJECT_FILES_LIBRARIES = "objectFilesLibraries"

Diff for: src/arduino.cc/builder/container_find_includes.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ func (s *ContainerFindIncludes) Run(context map[string]interface{}, ctx *types.C
5252
return i18n.WrapError(err)
5353
}
5454

55-
foldersWithSources := context[constants.CTX_FOLDERS_WITH_SOURCES_QUEUE].(*types.UniqueSourceFolderQueue)
55+
foldersWithSources := ctx.FoldersWithSourceFiles
5656
foldersWithSources.Push(types.SourceFolder{Folder: ctx.SketchBuildPath, Recurse: true})
57-
if utils.MapHas(context, constants.CTX_IMPORTED_LIBRARIES) {
58-
for _, library := range context[constants.CTX_IMPORTED_LIBRARIES].([]*types.Library) {
57+
if len(ctx.ImportedLibraries) > 0 {
58+
for _, library := range ctx.ImportedLibraries {
5959
sourceFolders := types.LibraryToSourceFolder(library)
6060
for _, sourceFolder := range sourceFolders {
6161
foldersWithSources.Push(sourceFolder)
@@ -68,7 +68,7 @@ func (s *ContainerFindIncludes) Run(context map[string]interface{}, ctx *types.C
6868
return i18n.WrapError(err)
6969
}
7070

71-
sourceFilePaths := context[constants.CTX_COLLECTED_SOURCE_FILES_QUEUE].(*types.UniqueStringQueue)
71+
sourceFilePaths := ctx.CollectedSourceFiles
7272

7373
for !sourceFilePaths.Empty() {
7474
err = findIncludesUntilDone(context, ctx, sourceFilePaths.Pop().(string))
@@ -100,7 +100,7 @@ func runCommand(context map[string]interface{}, ctx *types.Context, command type
100100

101101
func findIncludesUntilDone(context map[string]interface{}, ctx *types.Context, sourceFilePath string) error {
102102
targetFilePath := utils.NULLFile()
103-
importedLibraries := context[constants.CTX_IMPORTED_LIBRARIES].([]*types.Library)
103+
importedLibraries := ctx.ImportedLibraries
104104
done := false
105105
for !done {
106106
commands := []types.Command{
@@ -116,11 +116,11 @@ func findIncludesUntilDone(context map[string]interface{}, ctx *types.Context, s
116116
}
117117
if len(context[constants.CTX_INCLUDES_JUST_FOUND].([]string)) == 0 {
118118
done = true
119-
} else if len(context[constants.CTX_IMPORTED_LIBRARIES].([]*types.Library)) == len(importedLibraries) {
119+
} else if len(ctx.ImportedLibraries) == len(importedLibraries) {
120120
err := runCommand(context, ctx, &GCCPreprocRunner{TargetFileName: constants.FILE_CTAGS_TARGET_FOR_GCC_MINUS_E})
121121
return i18n.WrapError(err)
122122
}
123-
importedLibraries = context[constants.CTX_IMPORTED_LIBRARIES].([]*types.Library)
123+
importedLibraries = ctx.ImportedLibraries
124124
context[constants.CTX_INCLUDES_JUST_FOUND] = []string{}
125125
}
126126
return nil

Diff for: src/arduino.cc/builder/fail_if_imported_library_is_wrong.go

+2-4
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,20 @@ import (
3333
"arduino.cc/builder/constants"
3434
"arduino.cc/builder/i18n"
3535
"arduino.cc/builder/types"
36-
"arduino.cc/builder/utils"
3736
"os"
3837
"path/filepath"
3938
)
4039

4140
type FailIfImportedLibraryIsWrong struct{}
4241

4342
func (s *FailIfImportedLibraryIsWrong) Run(context map[string]interface{}, ctx *types.Context) error {
44-
if !utils.MapHas(context, constants.CTX_IMPORTED_LIBRARIES) {
43+
if len(ctx.ImportedLibraries) == 0 {
4544
return nil
4645
}
4746

4847
logger := ctx.GetLogger()
49-
importedLibraries := context[constants.CTX_IMPORTED_LIBRARIES].([]*types.Library)
5048

51-
for _, library := range importedLibraries {
49+
for _, library := range ctx.ImportedLibraries {
5250
if !library.IsLegacy {
5351
if stat, err := os.Stat(filepath.Join(library.Folder, constants.LIBRARY_FOLDER_ARCH)); err == nil && stat.IsDir() {
5452
return i18n.ErrorfWithLogger(logger, constants.MSG_ARCH_FOLDER_NOT_SUPPORTED)

Diff for: src/arduino.cc/builder/includes_to_include_folders.go

+4-7
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,15 @@ func (s *IncludesToIncludeFolders) Run(context map[string]interface{}, ctx *type
4747

4848
platform := context[constants.CTX_TARGET_PLATFORM].(*types.Platform)
4949
actualPlatform := context[constants.CTX_ACTUAL_PLATFORM].(*types.Platform)
50-
libraryResolutionResults := context[constants.CTX_LIBRARY_RESOLUTION_RESULTS].(map[string]types.LibraryResolutionResult)
50+
libraryResolutionResults := ctx.LibrariesResolutionResults
51+
importedLibraries := ctx.ImportedLibraries
5152

52-
importedLibraries := []*types.Library{}
53-
if utils.MapHas(context, constants.CTX_IMPORTED_LIBRARIES) {
54-
importedLibraries = context[constants.CTX_IMPORTED_LIBRARIES].([]*types.Library)
55-
}
5653
newlyImportedLibraries, err := resolveLibraries(includes, headerToLibraries, importedLibraries, []*types.Platform{actualPlatform, platform}, libraryResolutionResults)
5754
if err != nil {
5855
return i18n.WrapError(err)
5956
}
6057

61-
foldersWithSources := context[constants.CTX_FOLDERS_WITH_SOURCES_QUEUE].(*types.UniqueSourceFolderQueue)
58+
foldersWithSources := ctx.FoldersWithSourceFiles
6259

6360
for _, newlyImportedLibrary := range newlyImportedLibraries {
6461
if !sliceContainsLibrary(importedLibraries, newlyImportedLibrary) {
@@ -70,7 +67,7 @@ func (s *IncludesToIncludeFolders) Run(context map[string]interface{}, ctx *type
7067
}
7168
}
7269

73-
context[constants.CTX_IMPORTED_LIBRARIES] = importedLibraries
70+
ctx.ImportedLibraries = importedLibraries
7471

7572
buildProperties := context[constants.CTX_BUILD_PROPERTIES].(props.PropertiesMap)
7673
verbose := ctx.Verbose

Diff for: src/arduino.cc/builder/phases/libraries_builder.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func (s *LibrariesBuilder) Run(context map[string]interface{}, ctx *types.Contex
4747
buildProperties := context[constants.CTX_BUILD_PROPERTIES].(props.PropertiesMap)
4848
includes := context[constants.CTX_INCLUDE_FOLDERS].([]string)
4949
includes = utils.Map(includes, utils.WrapWithHyphenI)
50-
libraries := context[constants.CTX_IMPORTED_LIBRARIES].([]*types.Library)
50+
libraries := ctx.ImportedLibraries
5151
verbose := ctx.Verbose
5252
warningsLevel := ctx.WarningsLevel
5353
logger := ctx.GetLogger()

Diff for: src/arduino.cc/builder/print_used_and_not_used_libraries.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func (s *PrintUsedAndNotUsedLibraries) Run(context map[string]interface{}, ctx *
4444
}
4545

4646
logger := ctx.GetLogger()
47-
libraryResolutionResults := context[constants.CTX_LIBRARY_RESOLUTION_RESULTS].(map[string]types.LibraryResolutionResult)
47+
libraryResolutionResults := ctx.LibrariesResolutionResults
4848

4949
for header, libResResult := range libraryResolutionResults {
5050
if !libResResult.IsLibraryFromPlatform {

Diff for: src/arduino.cc/builder/print_used_libraries_if_verbose.go

+2-5
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ package builder
3232
import (
3333
"arduino.cc/builder/constants"
3434
"arduino.cc/builder/types"
35-
"arduino.cc/builder/utils"
3635
"time"
3736
)
3837

@@ -42,13 +41,11 @@ func (s *PrintUsedLibrariesIfVerbose) Run(context map[string]interface{}, ctx *t
4241
verbose := ctx.Verbose
4342
logger := ctx.GetLogger()
4443

45-
if !verbose || !utils.MapHas(context, constants.CTX_IMPORTED_LIBRARIES) {
44+
if !verbose || len(ctx.ImportedLibraries) == 0 {
4645
return nil
4746
}
4847

49-
importedLibraries := context[constants.CTX_IMPORTED_LIBRARIES].([]*types.Library)
50-
51-
for _, library := range importedLibraries {
48+
for _, library := range ctx.ImportedLibraries {
5249
legacy := constants.EMPTY_STRING
5350
if library.IsLegacy {
5451
legacy = constants.MSG_LIB_LEGACY

Diff for: src/arduino.cc/builder/test/add_additional_entries_to_context_test.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ func TestAddAdditionalEntriesToContextNoBuildPath(t *testing.T) {
5252

5353
require.NotNil(t, ctx.WarningsLevel)
5454

55-
require.True(t, context[constants.CTX_COLLECTED_SOURCE_FILES_QUEUE].(*types.UniqueStringQueue).Empty())
56-
require.True(t, context[constants.CTX_FOLDERS_WITH_SOURCES_QUEUE].(*types.UniqueSourceFolderQueue).Empty())
55+
require.True(t, ctx.CollectedSourceFiles.Empty())
56+
require.True(t, ctx.FoldersWithSourceFiles.Empty())
5757

58-
require.Equal(t, 0, len(context[constants.CTX_LIBRARY_RESOLUTION_RESULTS].(map[string]types.LibraryResolutionResult)))
58+
require.Equal(t, 0, len(ctx.LibrariesResolutionResults))
5959
}
6060

6161
func TestAddAdditionalEntriesToContextWithBuildPath(t *testing.T) {
@@ -73,8 +73,8 @@ func TestAddAdditionalEntriesToContextWithBuildPath(t *testing.T) {
7373

7474
require.NotNil(t, ctx.WarningsLevel)
7575

76-
require.True(t, context[constants.CTX_COLLECTED_SOURCE_FILES_QUEUE].(*types.UniqueStringQueue).Empty())
77-
require.True(t, context[constants.CTX_FOLDERS_WITH_SOURCES_QUEUE].(*types.UniqueSourceFolderQueue).Empty())
76+
require.True(t, ctx.CollectedSourceFiles.Empty())
77+
require.True(t, ctx.FoldersWithSourceFiles.Empty())
7878

79-
require.Equal(t, 0, len(context[constants.CTX_LIBRARY_RESOLUTION_RESULTS].(map[string]types.LibraryResolutionResult)))
79+
require.Equal(t, 0, len(ctx.LibrariesResolutionResults))
8080
}

Diff for: src/arduino.cc/builder/test/collect_all_source_files_from_folders_with_sources_test.go

+6-7
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/types"
3635
"github.com/stretchr/testify/require"
3736
"path/filepath"
@@ -44,10 +43,10 @@ func TestCollectAllSourceFilesFromFoldersWithSources(t *testing.T) {
4443
ctx := &types.Context{}
4544

4645
sourceFiles := &types.UniqueStringQueue{}
47-
context[constants.CTX_COLLECTED_SOURCE_FILES_QUEUE] = sourceFiles
46+
ctx.CollectedSourceFiles = sourceFiles
4847
foldersWithSources := &types.UniqueSourceFolderQueue{}
4948
foldersWithSources.Push(types.SourceFolder{Folder: Abs(t, "sketch_with_config"), Recurse: true})
50-
context[constants.CTX_FOLDERS_WITH_SOURCES_QUEUE] = foldersWithSources
49+
ctx.FoldersWithSourceFiles = foldersWithSources
5150

5251
commands := []types.Command{
5352
&builder.CollectAllSourceFilesFromFoldersWithSources{},
@@ -71,10 +70,10 @@ func TestCollectAllSourceFilesFromFoldersWithSourcesOfLibrary(t *testing.T) {
7170
ctx := &types.Context{}
7271

7372
sourceFiles := &types.UniqueStringQueue{}
74-
context[constants.CTX_COLLECTED_SOURCE_FILES_QUEUE] = sourceFiles
73+
ctx.CollectedSourceFiles = sourceFiles
7574
foldersWithSources := &types.UniqueSourceFolderQueue{}
7675
foldersWithSources.Push(types.SourceFolder{Folder: Abs(t, filepath.Join("downloaded_libraries", "Bridge")), Recurse: true})
77-
context[constants.CTX_FOLDERS_WITH_SOURCES_QUEUE] = foldersWithSources
76+
ctx.FoldersWithSourceFiles = foldersWithSources
7877

7978
commands := []types.Command{
8079
&builder.CollectAllSourceFilesFromFoldersWithSources{},
@@ -106,12 +105,12 @@ func TestCollectAllSourceFilesFromFoldersWithSourcesOfOldLibrary(t *testing.T) {
106105
ctx := &types.Context{}
107106

108107
sourceFiles := &types.UniqueStringQueue{}
109-
context[constants.CTX_COLLECTED_SOURCE_FILES_QUEUE] = sourceFiles
108+
ctx.CollectedSourceFiles = sourceFiles
110109
foldersWithSources := &types.UniqueSourceFolderQueue{}
111110
foldersWithSources.Push(types.SourceFolder{Folder: Abs(t, filepath.Join("libraries", "ShouldNotRecurseWithOldLibs")), Recurse: false})
112111
foldersWithSources.Push(types.SourceFolder{Folder: Abs(t, filepath.Join("libraries", "ShouldNotRecurseWithOldLibs", "utility")), Recurse: false})
113112
foldersWithSources.Push(types.SourceFolder{Folder: Abs(t, "non existent folder"), Recurse: false})
114-
context[constants.CTX_FOLDERS_WITH_SOURCES_QUEUE] = foldersWithSources
113+
ctx.FoldersWithSourceFiles = foldersWithSources
115114

116115
commands := []types.Command{
117116
&builder.CollectAllSourceFilesFromFoldersWithSources{},

Diff for: src/arduino.cc/builder/test/includes_finder_with_gcc_test.go

+4-5
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/types"
3635
"arduino.cc/builder/utils"
3736
"github.com/stretchr/testify/require"
@@ -108,7 +107,7 @@ func TestIncludesFinderWithGCCSketchWithConfig(t *testing.T) {
108107
require.Equal(t, 1, len(includes))
109108
require.True(t, utils.SliceContains(includes, "Bridge.h"))
110109

111-
importedLibraries := context[constants.CTX_IMPORTED_LIBRARIES].([]*types.Library)
110+
importedLibraries := ctx.ImportedLibraries
112111
require.Equal(t, 1, len(importedLibraries))
113112
require.Equal(t, "Bridge", importedLibraries[0].Name)
114113
}
@@ -153,7 +152,7 @@ func TestIncludesFinderWithGCCSketchWithDependendLibraries(t *testing.T) {
153152
require.Equal(t, "library3.h", includes[2])
154153
require.Equal(t, "library4.h", includes[3])
155154

156-
importedLibraries := context[constants.CTX_IMPORTED_LIBRARIES].([]*types.Library)
155+
importedLibraries := ctx.ImportedLibraries
157156
require.Equal(t, 4, len(importedLibraries))
158157

159158
sort.Sort(ByLibraryName(importedLibraries))
@@ -199,7 +198,7 @@ func TestIncludesFinderWithGCCSketchWithThatChecksIfSPIHasTransactions(t *testin
199198
require.Equal(t, 1, len(includes))
200199
require.Equal(t, "SPI.h", includes[0])
201200

202-
importedLibraries := context[constants.CTX_IMPORTED_LIBRARIES].([]*types.Library)
201+
importedLibraries := ctx.ImportedLibraries
203202
require.Equal(t, 1, len(importedLibraries))
204203
require.Equal(t, "SPI", importedLibraries[0].Name)
205204
}
@@ -244,7 +243,7 @@ func TestIncludesFinderWithGCCSketchWithThatChecksIfSPIHasTransactionsAndInclude
244243
require.Equal(t, "Inexistent.h", includes[0])
245244
require.Equal(t, "SPI.h", includes[1])
246245

247-
importedLibraries := context[constants.CTX_IMPORTED_LIBRARIES].([]*types.Library)
246+
importedLibraries := ctx.ImportedLibraries
248247
require.Equal(t, 1, len(importedLibraries))
249248
require.Equal(t, "SPI", importedLibraries[0].Name)
250249
}

0 commit comments

Comments
 (0)