Skip to content

Commit be4cd58

Browse files
committed
Some fixes in relation to Arduino 1.5.8 and the upload tool.
1 parent 126f021 commit be4cd58

File tree

2 files changed

+32
-13
lines changed

2 files changed

+32
-13
lines changed

it.baeyens.arduino.common/src/it/baeyens/arduino/common/ArduinoConst.java

+1
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ public class ArduinoConst {
8989
public static final String ENV_KEY_ARCHITECTURE = ENV_KEY_ARDUINO_START + "ARCHITECTURE";
9090
public static final String ENV_KEY_BUILD_ARCH = ENV_KEY_ARDUINO_START + "BUILD.ARCH";
9191
public static final String ENV_KEY_HARDWARE_PATH = ENV_KEY_ARDUINO_START + "RUNTIME.HARDWARE.PATH";
92+
public static final String ENV_KEY_PLATFORM_PATH = ENV_KEY_ARDUINO_START + "RUNTIME.PLATFORM.PATH";
9293

9394
public static final String ENV_KEY_runtime_ide_version = ENV_KEY_ARDUINO_START + "RUNTIME.IDE.VERSION";
9495
public static final String ENV_KEY_build_path = ENV_KEY_ARDUINO_START + "BUILD.PATH";

it.baeyens.arduino.core/src/it/baeyens/arduino/tools/ArduinoHelpers.java

+31-13
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,10 @@ private static void setTheEnvironmentVariablesSetTheDefaults(IContributedEnviron
527527
var = new EnvironmentVariable(ENV_KEY_HARDWARE_PATH, platformFile.removeLastSegments(3).toString());
528528
contribEnv.addVariable(var, confDesc);
529529

530+
// from 1.5.8 onward 1 more environment variable is needed
531+
var = new EnvironmentVariable(ENV_KEY_PLATFORM_PATH, platformFile.removeLastSegments(1).toString());
532+
contribEnv.addVariable(var, confDesc);
533+
530534
// I'm not sure why but till now arduino refused to put this in the platform.txt file
531535
// I won't call them idiots for this but it is getting close
532536
var = new EnvironmentVariable(ENV_KEY_SOFTWARE, "ARDUINO");
@@ -535,18 +539,18 @@ private static void setTheEnvironmentVariablesSetTheDefaults(IContributedEnviron
535539
contribEnv.addVariable(var, confDesc);
536540
// End of section permitting denigrating remarks on arduino software development team
537541

538-
// Arduino uses the board approach for the upload tool.
539-
// as I'm not I create some special entries to work around it
540-
var = new EnvironmentVariable("A.CMD", makeEnvironmentVar("A.TOOLS.BOSSAC.CMD"));
541-
contribEnv.addVariable(var, confDesc);
542-
var = new EnvironmentVariable("A.PATH", makeEnvironmentVar("A.TOOLS.BOSSAC.PATH"));
543-
contribEnv.addVariable(var, confDesc);
544-
var = new EnvironmentVariable("A.CMD.PATH", makeEnvironmentVar("A.TOOLS.AVRDUDE.CMD.PATH"));
545-
contribEnv.addVariable(var, confDesc);
546-
var = new EnvironmentVariable("A.CONFIG.PATH", makeEnvironmentVar("A.TOOLS.AVRDUDE.CONFIG.PATH"));
547-
contribEnv.addVariable(var, confDesc); // End of section Arduino uses
548-
// the board approach for the
549-
// upload tool.
542+
// // Arduino uses the board approach for the upload tool.
543+
// // as I'm not I create some special entries to work around it
544+
// var = new EnvironmentVariable("A.CMD", makeEnvironmentVar("A.TOOLS.BOSSAC.CMD"));
545+
// contribEnv.addVariable(var, confDesc);
546+
// var = new EnvironmentVariable("A.PATH", makeEnvironmentVar("A.TOOLS.BOSSAC.PATH"));
547+
// contribEnv.addVariable(var, confDesc);
548+
// var = new EnvironmentVariable("A.CMD.PATH", makeEnvironmentVar("A.TOOLS.AVRDUDE.CMD.PATH"));
549+
// contribEnv.addVariable(var, confDesc);
550+
// var = new EnvironmentVariable("A.CONFIG.PATH", makeEnvironmentVar("A.TOOLS.AVRDUDE.CONFIG.PATH"));
551+
// contribEnv.addVariable(var, confDesc); // End of section Arduino uses
552+
// // the board approach for the
553+
// // upload tool.
550554

551555
// For Teensy I added a flag that allows to compile everything in one
552556
// project not using the archiving functionality
@@ -864,6 +868,20 @@ private static void setTheEnvironmentVariablesPostProcessing(IContributedEnviron
864868
contribEnv.addVariable(var, confDesc);
865869
}
866870

871+
// Arduino uses the board approach for the upload tool.
872+
// as I'm not I create some special entries to work around it
873+
String uploadTool = contribEnv.getVariable(ArduinoConst.ENV_KEY_upload_tool, confDesc).getValue().toUpperCase();
874+
var = new EnvironmentVariable("A.CMD", makeEnvironmentVar("A.TOOLS." + uploadTool + ".CMD"));
875+
contribEnv.addVariable(var, confDesc);
876+
var = new EnvironmentVariable("A.PATH", makeEnvironmentVar("A.TOOLS." + uploadTool + ".PATH"));
877+
contribEnv.addVariable(var, confDesc);
878+
var = new EnvironmentVariable("A.CMD.PATH", makeEnvironmentVar("A.TOOLS." + uploadTool + ".CMD.PATH"));
879+
contribEnv.addVariable(var, confDesc);
880+
var = new EnvironmentVariable("A.CONFIG.PATH", makeEnvironmentVar("A.TOOLS." + uploadTool + ".CONFIG.PATH"));
881+
contribEnv.addVariable(var, confDesc); // End of section Arduino uses
882+
// the board approach for the
883+
// upload tool.
884+
867885
}
868886

869887
/**
@@ -915,7 +933,7 @@ public static String MakeEnvironmentString(String inputString) {
915933
// "").replaceAll("\"\\{object_file}\"",
916934
// "").replaceAll("\"\\{source_file}\"", "")
917935
// .replaceAll("\\{", "\\${" + ArduinoConst.ENV_KEY_START);
918-
String ret = inputString.replaceAll("\\{", "\\${" + ArduinoConst.ENV_KEY_ARDUINO_START);
936+
String ret = inputString.replaceAll("\\{(?!\\{)", "\\${" + ArduinoConst.ENV_KEY_ARDUINO_START);
919937
StringBuilder sb = new StringBuilder(ret);
920938
String regex = "\\{[^}]*\\}";
921939
Pattern p = Pattern.compile(regex); // Create the pattern.

0 commit comments

Comments
 (0)