From 2c6f6e76c4b538c1175e047355c1bb3466e003e2 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 2 Aug 2016 12:12:00 +0200 Subject: [PATCH] Boards tools are resolved using informations from package_index.json --- .../packages/ContributionsIndexer.java | 8 ++++++++ arduino-core/src/processing/app/BaseNoGui.java | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java b/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java index 660b6a972..5e8fb03ab 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java @@ -439,4 +439,12 @@ public class ContributionsIndexer { return platformOptional.orElse(null); } + + public ContributedPlatform getContributedPlaform(TargetPlatform targetPlatform) { + for (ContributedPlatform plat : getInstalledPlatforms()) { + if (plat.getInstalledFolder().equals(targetPlatform.getFolder())) + return plat; + } + return null; + } } diff --git a/arduino-core/src/processing/app/BaseNoGui.java b/arduino-core/src/processing/app/BaseNoGui.java index 8ddb29cdc..41cf541b5 100644 --- a/arduino-core/src/processing/app/BaseNoGui.java +++ b/arduino-core/src/processing/app/BaseNoGui.java @@ -6,6 +6,7 @@ import cc.arduino.UploaderUtils; import cc.arduino.contributions.GPGDetachedSignatureVerifier; import cc.arduino.contributions.SignatureVerificationFailedException; import cc.arduino.contributions.libraries.LibrariesIndexer; +import cc.arduino.contributions.packages.ContributedPlatform; import cc.arduino.contributions.packages.ContributedTool; import cc.arduino.contributions.packages.ContributionsIndexer; import cc.arduino.files.DeleteFilesOnShutdown; @@ -160,6 +161,18 @@ public class BaseNoGui { } } prefs.put("name", extendedName); + + // Resolve tools needed for this board + ContributedPlatform platform = indexer.getContributedPlaform(getTargetPlatform()); + if (platform != null) { + String prefix = "runtime.tools."; + for (ContributedTool tool : platform.getResolvedTools()) { + File folder = tool.getDownloadableContribution(getPlatform()).getInstalledFolder(); + String toolPath = folder.getAbsolutePath(); + PreferencesData.set(prefix + tool.getName() + ".path", toolPath); + PreferencesData.set(prefix + tool.getName() + "-" + tool.getVersion() + ".path", toolPath); + } + } return prefs; }