@@ -527,6 +527,10 @@ private static void setTheEnvironmentVariablesSetTheDefaults(IContributedEnviron
527
527
var = new EnvironmentVariable (ENV_KEY_HARDWARE_PATH , platformFile .removeLastSegments (3 ).toString ());
528
528
contribEnv .addVariable (var , confDesc );
529
529
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
+
530
534
// I'm not sure why but till now arduino refused to put this in the platform.txt file
531
535
// I won't call them idiots for this but it is getting close
532
536
var = new EnvironmentVariable (ENV_KEY_SOFTWARE , "ARDUINO" );
@@ -535,18 +539,18 @@ private static void setTheEnvironmentVariablesSetTheDefaults(IContributedEnviron
535
539
contribEnv .addVariable (var , confDesc );
536
540
// End of section permitting denigrating remarks on arduino software development team
537
541
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.
550
554
551
555
// For Teensy I added a flag that allows to compile everything in one
552
556
// project not using the archiving functionality
@@ -864,6 +868,20 @@ private static void setTheEnvironmentVariablesPostProcessing(IContributedEnviron
864
868
contribEnv .addVariable (var , confDesc );
865
869
}
866
870
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
+
867
885
}
868
886
869
887
/**
@@ -915,7 +933,7 @@ public static String MakeEnvironmentString(String inputString) {
915
933
// "").replaceAll("\"\\{object_file}\"",
916
934
// "").replaceAll("\"\\{source_file}\"", "")
917
935
// .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 );
919
937
StringBuilder sb = new StringBuilder (ret );
920
938
String regex = "\\ {[^}]*\\ }" ;
921
939
Pattern p = Pattern .compile (regex ); // Create the pattern.
0 commit comments