Skip to content

Commit fc9d4d9

Browse files
Revert fix for arduino#37 and always show "multiple libraries warning" again
This reverts commit 2058479: Adding info in LibraryResolutionResult about whether selected library comes from a platform or from outside. If the former and there are duplicates, no warning is printed Additionally, the librariesInSomePlatform function and librariesInPlatforms variable in resolveLibrary are removed, since these are now unused. The original suggestion in arduino#37 was that if a platform library overrides a builtin library, no warning would be needed. The implementation, however, was hiding the warning whenever a platform library was overriding any other library, including a user library, which seems harmful (This was [reported on the devlist][1]). This commit reverts the exception added for arduino#37, making the warning appear unconditionally again. In a future commit, a better solution for arduino#37 will be added. [1]: https://groups.google.com/a/arduino.cc/d/msg/developers/1kkIqIsbuzU/0-abwr1gBQAJ Signed-off-by: Matthijs Kooijman <[email protected]>
1 parent f2d04ca commit fc9d4d9

File tree

4 files changed

+5
-51
lines changed

4 files changed

+5
-51
lines changed

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

+1-15
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,6 @@ func resolveLibrary(header string, headerToLibraries map[string][]*types.Library
123123

124124
reverse(libraries)
125125

126-
librariesInPlatforms := librariesInSomePlatform(libraries, platforms)
127-
128126
var library *types.Library
129127

130128
for _, platform := range platforms {
@@ -149,8 +147,7 @@ func resolveLibrary(header string, headerToLibraries map[string][]*types.Library
149147

150148
library = useAlreadyImportedLibraryWithSameNameIfExists(library, markImportedLibrary)
151149

152-
isLibraryFromPlatform := findLibraryIn(librariesInPlatforms, library) != nil
153-
libraryResolutionResults[header] = types.LibraryResolutionResult{Library: library, IsLibraryFromPlatform: isLibraryFromPlatform, NotUsedLibraries: filterOutLibraryFrom(libraries, library)}
150+
libraryResolutionResults[header] = types.LibraryResolutionResult{Library: library, NotUsedLibraries: filterOutLibraryFrom(libraries, library)}
154151

155152
markImportedLibrary[library] = true
156153
}
@@ -162,17 +159,6 @@ func reverse(data []*types.Library) {
162159
}
163160
}
164161

165-
func librariesInSomePlatform(libraries []*types.Library, platforms []*types.Platform) []*types.Library {
166-
librariesInPlatforms := []*types.Library{}
167-
for _, platform := range platforms {
168-
if platform != nil {
169-
librariesWithinSpecifiedPlatform := librariesWithinPlatform(libraries, platform)
170-
librariesInPlatforms = append(librariesInPlatforms, librariesWithinSpecifiedPlatform...)
171-
}
172-
}
173-
return librariesInPlatforms
174-
}
175-
176162
func markImportedLibraryContainsOneOfCandidates(markImportedLibrary map[*types.Library]bool, libraries []*types.Library) bool {
177163
for markedLibrary, _ := range markImportedLibrary {
178164
for _, library := range libraries {

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

+4-6
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,10 @@ func (s *PrintUsedAndNotUsedLibraries) Run(ctx *types.Context) error {
4747
libraryResolutionResults := ctx.LibrariesResolutionResults
4848

4949
for header, libResResult := range libraryResolutionResults {
50-
if !libResResult.IsLibraryFromPlatform {
51-
logger.Fprintln(os.Stdout, constants.LOG_LEVEL_WARN, constants.MSG_LIBRARIES_MULTIPLE_LIBS_FOUND_FOR, header)
52-
logger.Fprintln(os.Stdout, constants.LOG_LEVEL_WARN, constants.MSG_LIBRARIES_USED, libResResult.Library.Folder)
53-
for _, notUsedLibrary := range libResResult.NotUsedLibraries {
54-
logger.Fprintln(os.Stdout, constants.LOG_LEVEL_WARN, constants.MSG_LIBRARIES_NOT_USED, notUsedLibrary.Folder)
55-
}
50+
logger.Fprintln(os.Stdout, constants.LOG_LEVEL_WARN, constants.MSG_LIBRARIES_MULTIPLE_LIBS_FOUND_FOR, header)
51+
logger.Fprintln(os.Stdout, constants.LOG_LEVEL_WARN, constants.MSG_LIBRARIES_USED, libResResult.Library.Folder)
52+
for _, notUsedLibrary := range libResResult.NotUsedLibraries {
53+
logger.Fprintln(os.Stdout, constants.LOG_LEVEL_WARN, constants.MSG_LIBRARIES_NOT_USED, notUsedLibrary.Folder)
5654
}
5755
}
5856

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

-29
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,6 @@ func TestIncludesToIncludeFolders(t *testing.T) {
7373
importedLibraries := ctx.ImportedLibraries
7474
require.Equal(t, 1, len(importedLibraries))
7575
require.Equal(t, "Bridge", importedLibraries[0].Name)
76-
77-
libraryResolutionResults := ctx.LibrariesResolutionResults
78-
require.NotNil(t, libraryResolutionResults)
79-
require.False(t, libraryResolutionResults["Bridge.h"].IsLibraryFromPlatform)
8076
}
8177

8278
func TestIncludesToIncludeFoldersSketchWithIfDef(t *testing.T) {
@@ -112,9 +108,6 @@ func TestIncludesToIncludeFoldersSketchWithIfDef(t *testing.T) {
112108

113109
importedLibraries := ctx.ImportedLibraries
114110
require.Equal(t, 0, len(importedLibraries))
115-
116-
libraryResolutionResults := ctx.LibrariesResolutionResults
117-
require.NotNil(t, libraryResolutionResults)
118111
}
119112

120113
func TestIncludesToIncludeFoldersIRremoteLibrary(t *testing.T) {
@@ -153,11 +146,6 @@ func TestIncludesToIncludeFoldersIRremoteLibrary(t *testing.T) {
153146
require.Equal(t, 2, len(importedLibraries))
154147
require.Equal(t, "Bridge", importedLibraries[0].Name)
155148
require.Equal(t, "IRremote", importedLibraries[1].Name)
156-
157-
libraryResolutionResults := ctx.LibrariesResolutionResults
158-
require.NotNil(t, libraryResolutionResults)
159-
require.False(t, libraryResolutionResults["Bridge.h"].IsLibraryFromPlatform)
160-
require.False(t, libraryResolutionResults["IRremote.h"].IsLibraryFromPlatform)
161149
}
162150

163151
func TestIncludesToIncludeFoldersANewLibrary(t *testing.T) {
@@ -196,11 +184,6 @@ func TestIncludesToIncludeFoldersANewLibrary(t *testing.T) {
196184
require.Equal(t, 2, len(importedLibraries))
197185
require.Equal(t, "ANewLibrary-master", importedLibraries[0].Name)
198186
require.Equal(t, "IRremote", importedLibraries[1].Name)
199-
200-
libraryResolutionResults := ctx.LibrariesResolutionResults
201-
require.NotNil(t, libraryResolutionResults)
202-
require.False(t, libraryResolutionResults["anewlibrary.h"].IsLibraryFromPlatform)
203-
require.False(t, libraryResolutionResults["IRremote.h"].IsLibraryFromPlatform)
204187
}
205188

206189
func TestIncludesToIncludeFoldersDuplicateLibs(t *testing.T) {
@@ -238,10 +221,6 @@ func TestIncludesToIncludeFoldersDuplicateLibs(t *testing.T) {
238221
require.Equal(t, 1, len(importedLibraries))
239222
require.Equal(t, "SPI", importedLibraries[0].Name)
240223
require.Equal(t, Abs(t, filepath.Join("user_hardware", "my_avr_platform", "avr", "libraries", "SPI")), importedLibraries[0].SrcFolder)
241-
242-
libraryResolutionResults := ctx.LibrariesResolutionResults
243-
require.NotNil(t, libraryResolutionResults)
244-
require.True(t, libraryResolutionResults["SPI.h"].IsLibraryFromPlatform)
245224
}
246225

247226
func TestIncludesToIncludeFoldersDuplicateLibsWithConflictingLibsOutsideOfPlatform(t *testing.T) {
@@ -280,10 +259,6 @@ func TestIncludesToIncludeFoldersDuplicateLibsWithConflictingLibsOutsideOfPlatfo
280259
require.Equal(t, 1, len(importedLibraries))
281260
require.Equal(t, "SPI", importedLibraries[0].Name)
282261
require.Equal(t, Abs(t, filepath.Join("libraries", "SPI")), importedLibraries[0].SrcFolder)
283-
284-
libraryResolutionResults := ctx.LibrariesResolutionResults
285-
require.NotNil(t, libraryResolutionResults)
286-
require.False(t, libraryResolutionResults["SPI.h"].IsLibraryFromPlatform)
287262
}
288263

289264
func TestIncludesToIncludeFoldersDuplicateLibs2(t *testing.T) {
@@ -322,8 +297,4 @@ func TestIncludesToIncludeFoldersDuplicateLibs2(t *testing.T) {
322297
require.Equal(t, 1, len(importedLibraries))
323298
require.Equal(t, "USBHost", importedLibraries[0].Name)
324299
require.Equal(t, Abs(t, filepath.Join("libraries", "USBHost", "src")), importedLibraries[0].SrcFolder)
325-
326-
libraryResolutionResults := ctx.LibrariesResolutionResults
327-
require.NotNil(t, libraryResolutionResults)
328-
require.False(t, libraryResolutionResults["Usb.h"].IsLibraryFromPlatform)
329300
}

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

-1
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,6 @@ type SourceFolder struct {
174174

175175
type LibraryResolutionResult struct {
176176
Library *Library
177-
IsLibraryFromPlatform bool
178177
NotUsedLibraries []*Library
179178
}
180179

0 commit comments

Comments
 (0)