Skip to content

Commit 3fdf1b0

Browse files
committed
Removed duplication of extensions table
1 parent 6e47c95 commit 3fdf1b0

File tree

3 files changed

+32
-19
lines changed

3 files changed

+32
-19
lines changed

legacy/builder/builder.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,6 @@ import (
3030

3131
var tr = i18n.Tr
3232

33-
var MAIN_FILE_VALID_EXTENSIONS = map[string]bool{".ino": true, ".pde": true}
34-
var ADDITIONAL_FILE_VALID_EXTENSIONS = map[string]bool{".h": true, ".c": true, ".hpp": true, ".hh": true, ".cpp": true, ".S": true}
35-
var ADDITIONAL_FILE_VALID_EXTENSIONS_NO_HEADERS = map[string]bool{".c": true, ".cpp": true, ".S": true}
36-
37-
var MainFileValidExtensions = []string{".ino", ".pde"}
38-
var AdditionalFileValidExtensions = []string{".h", ".c", ".hpp", ".hh", ".cpp", ".S"}
39-
var AdditionalFileValidExtensionsNoHeaders = []string{".c", ".cpp", ".S"}
40-
4133
const DEFAULT_DEBUG_LEVEL = 5
4234
const DEFAULT_WARNINGS_LEVEL = "none"
4335
const DEFAULT_SOFTWARE = "ARDUINO"

legacy/builder/container_find_includes.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ import (
9898
"os/exec"
9999
"time"
100100

101+
"github.com/arduino/arduino-cli/arduino/globals"
101102
"github.com/arduino/arduino-cli/arduino/libraries"
102103
"github.com/arduino/arduino-cli/legacy/builder/builder_utils"
103104
"github.com/arduino/arduino-cli/legacy/builder/types"
@@ -406,7 +407,11 @@ func findIncludesUntilDone(ctx *types.Context, cache *includeCache, sourceFile t
406407
}
407408

408409
func queueSourceFilesFromFolder(ctx *types.Context, queue *types.UniqueSourceFileQueue, origin interface{}, folder *paths.Path, recurse bool) error {
409-
filePaths, err := utils.FindFilesInFolder(folder, recurse, AdditionalFileValidExtensionsNoHeaders)
410+
sourceFileExtensions := []string{}
411+
for k := range globals.SourceFilesValidExtensions {
412+
sourceFileExtensions = append(sourceFileExtensions, k)
413+
}
414+
filePaths, err := utils.FindFilesInFolder(folder, recurse, sourceFileExtensions)
410415
if err != nil {
411416
return errors.WithStack(err)
412417
}

legacy/builder/create_cmake_rule.go

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,22 @@ import (
2323

2424
properties "github.com/arduino/go-properties-orderedmap"
2525

26+
"github.com/arduino/arduino-cli/arduino/globals"
2627
"github.com/arduino/arduino-cli/legacy/builder/builder_utils"
2728
"github.com/arduino/arduino-cli/legacy/builder/constants"
2829
"github.com/arduino/arduino-cli/legacy/builder/types"
2930
"github.com/arduino/arduino-cli/legacy/builder/utils"
3031
)
3132

32-
var VALID_EXPORT_EXTENSIONS = map[string]bool{".h": true, ".c": true, ".hpp": true, ".hh": true, ".cpp": true, ".S": true, ".a": true, ".properties": true}
33-
34-
var ValidExportExtensions = []string{".h", ".c", ".hpp", ".hh", ".cpp", ".S", ".a", ".properties"}
35-
var DotHExtension = []string{".h", ".hh", ".hpp"}
36-
var DotAExtension = []string{".a"}
33+
func stringArrayToLookupFunction(in []string) func(string) bool {
34+
out := map[string]bool{}
35+
for _, i := range in {
36+
out[i] = true
37+
}
38+
return func(s string) bool {
39+
return out[s]
40+
}
41+
}
3742

3843
type ExportProjectCMake struct {
3944
// Was there an error while compiling the sketch?
@@ -43,6 +48,17 @@ type ExportProjectCMake struct {
4348
var lineMatcher = regexp.MustCompile(`^#line\s\d+\s"`)
4449

4550
func (s *ExportProjectCMake) Run(ctx *types.Context) error {
51+
var validExportExtensions = []string{".a", ".properties"}
52+
for ext := range globals.SourceFilesValidExtensions {
53+
validExportExtensions = append(validExportExtensions, ext)
54+
}
55+
var dotHExtension = []string{}
56+
for ext := range globals.HeaderFilesValidExtensions {
57+
validExportExtensions = append(validExportExtensions, ext)
58+
dotHExtension = append(dotHExtension, ext)
59+
}
60+
var dotAExtension = []string{".a"}
61+
4662
if s.SketchError || !canExportCmakeProject(ctx) {
4763
return nil
4864
}
@@ -65,7 +81,7 @@ func (s *ExportProjectCMake) Run(ctx *types.Context) error {
6581
cmakeFile := cmakeFolder.Join("CMakeLists.txt")
6682

6783
dynamicLibsFromPkgConfig := map[string]bool{}
68-
extensions := func(ext string) bool { return VALID_EXPORT_EXTENSIONS[ext] }
84+
extensions := stringArrayToLookupFunction(validExportExtensions)
6985
for _, library := range ctx.ImportedLibraries {
7086
// Copy used libraries in the correct folder
7187
libDir := libBaseFolder.Join(library.Name)
@@ -90,7 +106,7 @@ func (s *ExportProjectCMake) Run(ctx *types.Context) error {
90106
}
91107

92108
// Remove stray folders contining incompatible or not needed libraries archives
93-
files, _ := utils.FindFilesInFolder(libDir.Join("src"), true, DotAExtension)
109+
files, _ := utils.FindFilesInFolder(libDir.Join("src"), true, dotAExtension)
94110
for _, file := range files {
95111
staticLibDir := file.Parent()
96112
if !isStaticLib || !strings.Contains(staticLibDir.String(), mcu) {
@@ -126,7 +142,7 @@ func (s *ExportProjectCMake) Run(ctx *types.Context) error {
126142
}
127143

128144
// remove "#line 1 ..." from exported c_make folder sketch
129-
sketchFiles, _ := utils.FindFilesInFolder(cmakeFolder.Join("sketch"), false, ValidExportExtensions)
145+
sketchFiles, _ := utils.FindFilesInFolder(cmakeFolder.Join("sketch"), false, validExportExtensions)
130146

131147
for _, file := range sketchFiles {
132148
input, err := file.ReadFile()
@@ -160,11 +176,11 @@ func (s *ExportProjectCMake) Run(ctx *types.Context) error {
160176
extractCompileFlags(ctx, "recipe.cpp.o.pattern", &defines, &dynamicLibsFromGccMinusL, &linkerflags, &linkDirectories)
161177

162178
// Extract folders with .h in them for adding in include list
163-
headerFiles, _ := utils.FindFilesInFolder(cmakeFolder, true, DotHExtension)
179+
headerFiles, _ := utils.FindFilesInFolder(cmakeFolder, true, dotHExtension)
164180
foldersContainingDotH := findUniqueFoldersRelative(headerFiles.AsStrings(), cmakeFolder.String())
165181

166182
// Extract folders with .a in them for adding in static libs paths list
167-
staticLibs, _ := utils.FindFilesInFolder(cmakeFolder, true, DotAExtension)
183+
staticLibs, _ := utils.FindFilesInFolder(cmakeFolder, true, dotAExtension)
168184

169185
// Generate the CMakeLists global file
170186

0 commit comments

Comments
 (0)