diff --git a/arduino-core/src/processing/app/BaseNoGui.java b/arduino-core/src/processing/app/BaseNoGui.java index 547e91bc88e..6c0e29c3129 100644 --- a/arduino-core/src/processing/app/BaseNoGui.java +++ b/arduino-core/src/processing/app/BaseNoGui.java @@ -21,7 +21,6 @@ import processing.app.packages.UserLibrary; import java.io.*; -import java.net.URISyntaxException; import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; @@ -635,7 +634,7 @@ static public void initPackages() throws Exception { loadHardware(getHardwareFolder()); loadContributedHardware(indexer); loadHardware(getSketchbookHardwareFolder()); - createToolPreferences(indexer); + createToolPreferences(indexer.getInstalledTools(), true); librariesIndexer = new LibrariesIndexer(BaseNoGui.getSettingsFolder(), indexer); File librariesIndexFile = librariesIndexer.getIndexFile(); @@ -826,12 +825,13 @@ static protected void loadContributedHardware(ContributionsIndexer indexer) { } } - static private void createToolPreferences(ContributionsIndexer indexer) { - // Remove previous runtime preferences - final String prefix = "runtime.tools."; - PreferencesData.removeAllKeysWithPrefix(prefix); + public static void createToolPreferences(Collection installedTools, boolean removeOldKeys) { + String prefix = "runtime.tools."; + if (removeOldKeys) { + PreferencesData.removeAllKeysWithPrefix(prefix); + } - for (ContributedTool tool : indexer.getInstalledTools()) { + for (ContributedTool tool : installedTools) { File installedFolder = tool.getDownloadableContribution(getPlatform()).getInstalledFolder(); if (installedFolder != null) { PreferencesData.set(prefix + tool.getName() + ".path", installedFolder.getAbsolutePath()); diff --git a/arduino-core/src/processing/app/debug/Compiler.java b/arduino-core/src/processing/app/debug/Compiler.java index 746961bac48..0c5ec8057ca 100644 --- a/arduino-core/src/processing/app/debug/Compiler.java +++ b/arduino-core/src/processing/app/debug/Compiler.java @@ -34,6 +34,8 @@ import java.util.stream.Stream; import cc.arduino.MyStreamPumper; +import cc.arduino.contributions.packages.ContributedPlatform; +import cc.arduino.contributions.packages.ContributedTool; import cc.arduino.packages.BoardPort; import cc.arduino.packages.Uploader; import cc.arduino.packages.UploaderFactory; @@ -613,7 +615,13 @@ private PreferencesMap createBuildPreferences(String _buildPath, } else { p.put("build.variant.path", ""); } - + + ContributedPlatform installedPlatform = BaseNoGui.indexer.getInstalled(referencePlatform.getContainerPackage().getId(), referencePlatform.getId()); + if (installedPlatform != null) { + List tools = installedPlatform.getResolvedTools(); + BaseNoGui.createToolPreferences(tools, false); + } + // Build Time Date d = new Date(); GregorianCalendar cal = new GregorianCalendar();