From 61b7906cedacde99011f1eb70efc55819cd5fe38 Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Tue, 12 Sep 2017 13:00:04 +0200 Subject: [PATCH 1/2] Only use builtin_tools_versions.txt if its folder is builtin Otherwise, all board manager folder was considered builtin (due to the recursive search in findBuiltinToolsVersionsFile() ) Fixes #246 --- src/arduino.cc/builder/constants/constants.go | 1 + src/arduino.cc/builder/tools_loader.go | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/arduino.cc/builder/constants/constants.go b/src/arduino.cc/builder/constants/constants.go index aa93440f..d83ee273 100644 --- a/src/arduino.cc/builder/constants/constants.go +++ b/src/arduino.cc/builder/constants/constants.go @@ -157,6 +157,7 @@ const MSG_BUILD_OPTIONS_CHANGED = "Build options changed, rebuilding all" const MSG_CANT_FIND_SKETCH_IN_PATH = "Unable to find {0} in {1}" const MSG_FQBN_INVALID = "{0} is not a valid fully qualified board name. Required format is targetPackageName:targetPlatformName:targetBoardName." const MSG_INVALID_QUOTING = "Invalid quoting: no closing [{0}] char found." +const MSG_IGNORED_BUILTIN_TOOLS_TXT = "Skipping {0}; please consider removing that file since it may hurt older Arduino installations" const MSG_LIB_LEGACY = "(legacy)" const MSG_LIBRARIES_MULTIPLE_LIBS_FOUND_FOR = "Multiple libraries were found for \"{0}\"" const MSG_LIBRARIES_NOT_USED = " Not used: {0}" diff --git a/src/arduino.cc/builder/tools_loader.go b/src/arduino.cc/builder/tools_loader.go index 621a5391..2c96824b 100644 --- a/src/arduino.cc/builder/tools_loader.go +++ b/src/arduino.cc/builder/tools_loader.go @@ -52,6 +52,13 @@ func (s *ToolsLoader) Run(ctx *types.Context) error { if err != nil { return i18n.WrapError(err) } + builtinHardwareFolder, err := filepath.Abs(filepath.Join(ctx.BuiltInLibrariesFolders[0], "..")) + + if builtinToolsVersionsFile != constants.EMPTY_STRING && !strings.Contains(builtinToolsVersionsFile, builtinHardwareFolder) { + ctx.GetLogger().Println(constants.LOG_LEVEL_WARN, constants.MSG_IGNORED_BUILTIN_TOOLS_TXT, builtinToolsVersionsFile) + builtinToolsVersionsFile = constants.EMPTY_STRING + } + if builtinToolsVersionsFile != constants.EMPTY_STRING { err = loadToolsFrom(&tools, builtinToolsVersionsFile) if err != nil { From 922009332395ab5e3e28c757fa0897315229576d Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Tue, 12 Sep 2017 14:48:07 +0200 Subject: [PATCH 2/2] Only access BuiltInLibrariesFolders if initialized --- src/arduino.cc/builder/tools_loader.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/arduino.cc/builder/tools_loader.go b/src/arduino.cc/builder/tools_loader.go index 2c96824b..d7bed7aa 100644 --- a/src/arduino.cc/builder/tools_loader.go +++ b/src/arduino.cc/builder/tools_loader.go @@ -52,7 +52,10 @@ func (s *ToolsLoader) Run(ctx *types.Context) error { if err != nil { return i18n.WrapError(err) } - builtinHardwareFolder, err := filepath.Abs(filepath.Join(ctx.BuiltInLibrariesFolders[0], "..")) + builtinHardwareFolder := "" + if len(ctx.BuiltInLibrariesFolders) > 0 { + builtinHardwareFolder, err = filepath.Abs(filepath.Join(ctx.BuiltInLibrariesFolders[0], "..")) + } if builtinToolsVersionsFile != constants.EMPTY_STRING && !strings.Contains(builtinToolsVersionsFile, builtinHardwareFolder) { ctx.GetLogger().Println(constants.LOG_LEVEL_WARN, constants.MSG_IGNORED_BUILTIN_TOOLS_TXT, builtinToolsVersionsFile)