Skip to content

Commit f742438

Browse files
committed
Relax library matching rules when detecting libraries
This allows to set the correct library priority, for example, if the library is named "My Library" but the include file is "my_library.h". Signed-off-by: Cristian Maglie <[email protected]>
1 parent 8395d7d commit f742438

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

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

+8-4
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ func findBestLibraryWithHeader(header string, libraries []*types.Library) *types
218218

219219
func findLibWithName(name string, libraries []*types.Library) *types.Library {
220220
for _, library := range libraries {
221-
if library.Name == name {
221+
if simplifyName(library.Name) == simplifyName(name) {
222222
return library
223223
}
224224
}
@@ -227,7 +227,7 @@ func findLibWithName(name string, libraries []*types.Library) *types.Library {
227227

228228
func findLibWithNameStartingWith(name string, libraries []*types.Library) *types.Library {
229229
for _, library := range libraries {
230-
if strings.HasPrefix(library.Name, name) {
230+
if strings.HasPrefix(simplifyName(library.Name), simplifyName(name)) {
231231
return library
232232
}
233233
}
@@ -236,7 +236,7 @@ func findLibWithNameStartingWith(name string, libraries []*types.Library) *types
236236

237237
func findLibWithNameEndingWith(name string, libraries []*types.Library) *types.Library {
238238
for _, library := range libraries {
239-
if strings.HasSuffix(library.Name, name) {
239+
if strings.HasSuffix(simplifyName(library.Name), simplifyName(name)) {
240240
return library
241241
}
242242
}
@@ -245,13 +245,17 @@ func findLibWithNameEndingWith(name string, libraries []*types.Library) *types.L
245245

246246
func findLibWithNameContaining(name string, libraries []*types.Library) *types.Library {
247247
for _, library := range libraries {
248-
if strings.Contains(library.Name, name) {
248+
if strings.Contains(simplifyName(library.Name), simplifyName(name)) {
249249
return library
250250
}
251251
}
252252
return nil
253253
}
254254

255+
func simplifyName(name string) string {
256+
return strings.ToLower(strings.Replace(name, "_", " ", -1))
257+
}
258+
255259
// thank you golang: I can not use/recycle/adapt utils.SliceContains
256260
func sliceContainsLibrary(slice []*types.Library, target *types.Library) bool {
257261
for _, value := range slice {

0 commit comments

Comments
 (0)