From a89f5e68cf5cc5e323d099cb798dfd9cc6c0c11a Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Fri, 4 Apr 2014 12:04:57 +0200 Subject: [PATCH] Explicitly define compiler.path in avr/platform.txt Previously, this relied on an (ugly, avr-specific) magic default for the compiler.path variable, set by the IDE. This allowed the IDE to fall back to a system-wide toolchain when no bundled toolchain was found (by making compiler.path empty). However, - this only worked for avr, not sam, - this worked only for gcc, a system-wide avrdude would break on the avrdude.conf path in platform.txt, and This would mean that automatic system-wide fallback didn't work in all situations, so you'd still have to modify platform.txt (or create platform.local.txt). Since doing that explictly is the most reliable way, this commit removes the partial-working ability to do this automatically. Note that the code to automatically set compiler.path is still kept around, in case third-party hardware still relies on this. At some point, this code should be removed, but for now it just shows a warning message. --- app/src/processing/app/debug/Compiler.java | 8 +++++++- hardware/arduino/avr/platform.txt | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/processing/app/debug/Compiler.java b/app/src/processing/app/debug/Compiler.java index a3f8940a7..92f25a1c5 100644 --- a/app/src/processing/app/debug/Compiler.java +++ b/app/src/processing/app/debug/Compiler.java @@ -197,8 +197,14 @@ public class Compiler implements MessageConsumer { targetArch = targetPlatform.getId(); p.put("build.arch", targetArch.toUpperCase()); - if (!p.containsKey("compiler.path")) + // Platform.txt should define its own compiler.path. For + // compatibility with earlier 1.5 versions, we define a (ugly, + // avr-specific) default for it, but this should be removed at some + // point. + if (!p.containsKey("compiler.path")) { + System.err.println(_("Third-party platform.txt does not define compiler.path. Please report this to the third-party hardware maintainer.")); p.put("compiler.path", Base.getAvrBasePath()); + } // Core folder TargetPlatform tp = corePlatform; diff --git a/hardware/arduino/avr/platform.txt b/hardware/arduino/avr/platform.txt index d1b5fd3ef..58af56b07 100644 --- a/hardware/arduino/avr/platform.txt +++ b/hardware/arduino/avr/platform.txt @@ -12,7 +12,7 @@ version=1.5.6 # --------------------- # Default "compiler.path" is correct, change only if you want to overidde the initial value -#compiler.path={ide.path}/tools/avr/bin/.. +compiler.path={runtime.ide.path}/hardware/tools/avr/bin/ compiler.c.cmd=avr-gcc compiler.c.flags=-c -g -Os -w -ffunction-sections -fdata-sections -MMD compiler.c.elf.flags=-Os -Wl,--gc-sections