*/
private static void setTheEnvironmentVariablesSetTheDefaults(IContributedEnvironment contribEnv, ICConfigurationDescription confDesc,
IPath platformFile) {
// Set some default values because the platform.txt does not contain
// them
IEnvironmentVariable var = new EnvironmentVariable(ENV_KEY_ARDUINO_PATH, getArduinoPath().toString());
contribEnv.addVariable(var, confDesc);
// from 1.5.3 onwards 3 more environment variables need to be added
var = new EnvironmentVariable(ENV_KEY_ARCHITECTURE, platformFile.removeLastSegments(1).lastSegment());
contribEnv.addVariable(var, confDesc);
var = new EnvironmentVariable(ENV_KEY_BUILD_ARCH, platformFile.removeLastSegments(1).lastSegment().toUpperCase());
contribEnv.addVariable(var, confDesc);
var = new EnvironmentVariable(ENV_KEY_HARDWARE_PATH, platformFile.removeLastSegments(3).toString());
contribEnv.addVariable(var, confDesc);
// from 1.5.8 onward 1 more environment variable is needed
var = new EnvironmentVariable(ENV_KEY_PLATFORM_PATH, platformFile.removeLastSegments(1).toString());
contribEnv.addVariable(var, confDesc);
// I'm not sure why but till now arduino refused to put this in the platform.txt file
// I won't call them idiots for this but it is getting close
var = new EnvironmentVariable(ENV_KEY_SOFTWARE, "ARDUINO");
contribEnv.addVariable(var, confDesc);
var = new EnvironmentVariable(ENV_KEY_runtime_ide_version, GetARDUINODefineValue());
contribEnv.addVariable(var, confDesc);
// End of section permitting denigrating remarks on arduino software development team
// // Arduino uses the board approach for the upload tool.
// // as I'm not I create some special entries to work around it
// var = new EnvironmentVariable("A.CMD", makeEnvironmentVar("A.TOOLS.BOSSAC.CMD"));
// contribEnv.addVariable(var, confDesc);
// var = new EnvironmentVariable("A.PATH", makeEnvironmentVar("A.TOOLS.BOSSAC.PATH"));
// contribEnv.addVariable(var, confDesc);
// var = new EnvironmentVariable("A.CMD.PATH", makeEnvironmentVar("A.TOOLS.AVRDUDE.CMD.PATH"));
// contribEnv.addVariable(var, confDesc);
// var = new EnvironmentVariable("A.CONFIG.PATH", makeEnvironmentVar("A.TOOLS.AVRDUDE.CONFIG.PATH"));
// contribEnv.addVariable(var, confDesc); // End of section Arduino uses
// // the board approach for the
// // upload tool.
// For Teensy I added a flag that allows to compile everything in one
// project not using the archiving functionality
// I set the default value to: use the archiver
var = new EnvironmentVariable(ENV_KEY_use_archiver, "true");
contribEnv.addVariable(var, confDesc);
// End of Teensy specific settings
if (platformFile.segment(platformFile.segmentCount() - 2).equals("avr")) {
var = new EnvironmentVariable(ENV_KEY_compiler_path, makeEnvironmentVar("A.RUNTIME.IDE.PATH") + "/hardware/tools/avr/bin/");
contribEnv.addVariable(var, confDesc);
} else if (platformFile.segment(platformFile.segmentCount() - 2).equals("sam")) {
var = new EnvironmentVariable(ENV_KEY_build_system_path, makeEnvironmentVar("A.RUNTIME.IDE.PATH") + "/hardware/arduino/sam/system");
contribEnv.addVariable(var, confDesc);
var = new EnvironmentVariable(ENV_KEY_build_generic_path, makeEnvironmentVar("A.RUNTIME.IDE.PATH")
+ "/hardware/tools/g++_arm_none_eabi/arm-none-eabi/bin");
contribEnv.addVariable(var, confDesc);
}
// some glue to make it work
String extraPathForOS = "";
if (Platform.getWS().equals(Platform.WS_WIN32)) {
extraPathForOS = "${PathDelimiter}${" + ENV_KEY_ARDUINO_PATH + "}/hardware/tools/avr/utils/bin${PathDelimiter}${" + ENV_KEY_ARDUINO_PATH
+ "}";
}
var = new EnvironmentVariable("PATH", "${A.COMPILER.PATH}${PathDelimiter}${" + ENV_KEY_build_generic_path + "}" + extraPathForOS
+ "${PathDelimiter}${PATH}");
contribEnv.addVariable(var, confDesc);
var = new EnvironmentVariable(ENV_KEY_build_path, "${ProjDirPath}/${ConfigName}");
contribEnv.addVariable(var, confDesc);
var = new EnvironmentVariable(ENV_KEY_build_project_name, makeEnvironmentVar("ProjName"));
contribEnv.addVariable(var, confDesc);
// if (firstTime) {
if (getBuildEnvironmentVariable(confDesc, ENV_KEY_JANTJE_SIZE_SWITCH, "").isEmpty()) {
var = new EnvironmentVariable(ENV_KEY_JANTJE_SIZE_SWITCH, makeEnvironmentVar(ENV_KEY_recipe_size_pattern));
contribEnv.addVariable(var, confDesc);
}
if (getBuildEnvironmentVariable(confDesc, ENV_KEY_JANTJE_SIZE_COMMAND, "").isEmpty()) {
var = new EnvironmentVariable(ENV_KEY_JANTJE_SIZE_COMMAND, JANTJE_SIZE_COMMAND);
contribEnv.addVariable(var, confDesc);
}
// Set the warning level default off like arduino does
if (getBuildEnvironmentVariable(confDesc, ENV_KEY_JANTJE_WARNING_LEVEL, "").isEmpty()) {
var = new EnvironmentVariable(ENV_KEY_JANTJE_WARNING_LEVEL, ENV_KEY_WARNING_LEVEL_OFF);
contribEnv.addVariable(var, confDesc);
}
var = new EnvironmentVariable(ENV_KEY_archive_file, "arduino.ar");
contribEnv.addVariable(var, confDesc);
IPathVariableManager pathMan = confDesc.getProjectDescription().getProject().getPathVariableManager();
URI buildVariantURI = pathMan.getURIValue(ArduinoConst.PATH_VARIABLE_NAME_ARDUINO_PINS);
buildVariantURI = pathMan.resolveURI(buildVariantURI);
String buildVariantPath = buildVariantURI.getPath() + "/${" + ArduinoConst.ENV_KEY_build_variant + "}";
var = new EnvironmentVariable(ENV_KEY_build_variant_path, buildVariantPath);
contribEnv.addVariable(var, confDesc);
// IPath platformPath = new Path(arduinoProperties.getPlatformFolder());
// IPath PinPath = platformPath.append(ArduinoConst.VARIANTS_FOLDER);
}