From 1c1369d3b19351b1aef42d4c08cef211dbf4c9aa Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Thu, 24 Nov 2016 12:16:40 +0100 Subject: [PATCH] Include hpp and hh files when searching for libraries Fixes #181 Syncs up with https://github.com/arduino/Arduino/pull/3485 Signed-off-by: Martino Facchin --- src/arduino.cc/builder/builder.go | 2 +- src/arduino.cc/builder/builder_utils/utils.go | 2 +- src/arduino.cc/builder/libraries_loader.go | 2 +- src/arduino.cc/builder/utils/utils.go | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/arduino.cc/builder/builder.go b/src/arduino.cc/builder/builder.go index c3202521..fa176f1d 100644 --- a/src/arduino.cc/builder/builder.go +++ b/src/arduino.cc/builder/builder.go @@ -43,7 +43,7 @@ import ( ) var MAIN_FILE_VALID_EXTENSIONS = map[string]bool{".ino": true, ".pde": true} -var ADDITIONAL_FILE_VALID_EXTENSIONS = map[string]bool{".h": true, ".c": true, ".hpp": true, ".cpp": true, ".s": true} +var ADDITIONAL_FILE_VALID_EXTENSIONS = map[string]bool{".h": true, ".c": true, ".hpp": true, ".hh": true, ".cpp": true, ".s": true} var ADDITIONAL_FILE_VALID_EXTENSIONS_NO_HEADERS = map[string]bool{".c": true, ".cpp": true, ".s": true} var LIBRARY_MANDATORY_PROPERTIES = []string{constants.LIBRARY_NAME, constants.LIBRARY_VERSION, constants.LIBRARY_AUTHOR, constants.LIBRARY_MAINTAINER} diff --git a/src/arduino.cc/builder/builder_utils/utils.go b/src/arduino.cc/builder/builder_utils/utils.go index a7ee060a..d740d430 100644 --- a/src/arduino.cc/builder/builder_utils/utils.go +++ b/src/arduino.cc/builder/builder_utils/utils.go @@ -89,7 +89,7 @@ func compileFilesWithExtensionWithRecipe(objectFiles []string, sourcePath string } func findFilesInFolder(sourcePath string, extension string, recurse bool) ([]string, error) { - files, err := utils.ReadDirFiltered(sourcePath, utils.FilterFilesWithExtension(extension)) + files, err := utils.ReadDirFiltered(sourcePath, utils.FilterFilesWithExtensions(extension)) if err != nil { return nil, i18n.WrapError(err) } diff --git a/src/arduino.cc/builder/libraries_loader.go b/src/arduino.cc/builder/libraries_loader.go index ba2a0c7a..1e4b70e5 100644 --- a/src/arduino.cc/builder/libraries_loader.go +++ b/src/arduino.cc/builder/libraries_loader.go @@ -91,7 +91,7 @@ func (s *LibrariesLoader) Run(ctx *types.Context) error { headerToLibraries := make(map[string][]*types.Library) for _, library := range libraries { - headers, err := utils.ReadDirFiltered(library.SrcFolder, utils.FilterFilesWithExtension(".h")) + headers, err := utils.ReadDirFiltered(library.SrcFolder, utils.FilterFilesWithExtensions(".h", ".hpp", ".hh")) if err != nil { return i18n.WrapError(err) } diff --git a/src/arduino.cc/builder/utils/utils.go b/src/arduino.cc/builder/utils/utils.go index 7338805e..a3bd44e9 100644 --- a/src/arduino.cc/builder/utils/utils.go +++ b/src/arduino.cc/builder/utils/utils.go @@ -138,11 +138,11 @@ func FilterDirs(files []os.FileInfo) []os.FileInfo { return filtered } -func FilterFilesWithExtension(extension string) filterFiles { +func FilterFilesWithExtensions(extensions ...string) filterFiles { return func(files []os.FileInfo) []os.FileInfo { var filtered []os.FileInfo for _, file := range files { - if !file.IsDir() && filepath.Ext(file.Name()) == extension { + if !file.IsDir() && SliceContains(extensions, filepath.Ext(file.Name())) { filtered = append(filtered, file) } }