Skip to content

Commit e097439

Browse files
author
Federico Fissore
committed
Compiler: sketch files get compiled into "sketch"
1 parent 5a35be0 commit e097439

File tree

3 files changed

+15
-12
lines changed

3 files changed

+15
-12
lines changed

Diff for: arduino-core/src/processing/app/debug/Compiler.java

+7-4
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,11 @@ protected void size(PreferencesMap prefs) throws RunnerException {
358358
* @throws RunnerException Only if there's a problem. Only then.
359359
*/
360360
public boolean compile(boolean _verbose, boolean _save) throws RunnerException, PreferencesMapException {
361-
preprocess(prefs.get("build.path"));
361+
File sketchBuildFolder = new File(prefs.get("build.path"), "sketch");
362+
if (!sketchBuildFolder.mkdirs()) {
363+
throw new RunnerException("Unable to create folder " + sketchBuildFolder);
364+
}
365+
preprocess(sketchBuildFolder.getAbsolutePath());
362366

363367
verbose = _verbose || PreferencesData.getBoolean("build.verbose");
364368
saveHex = _save;
@@ -410,7 +414,7 @@ public boolean compile(boolean _verbose, boolean _save) throws RunnerException,
410414

411415
// 1. compile the sketch (already in the buildPath)
412416
progressListener.progress(20);
413-
compileSketch(includeFolders);
417+
compileSketch(includeFolders, sketchBuildFolder);
414418
sketchIsCompiled = true;
415419

416420
runActions("hooks.sketch.postbuild", prefs);
@@ -995,8 +999,7 @@ static public List<File> findFilesInFolder(File folder, String extension,
995999
}
9961000

9971001
// 1. compile the sketch (already in the buildPath)
998-
void compileSketch(List<File> includeFolders) throws RunnerException, PreferencesMapException {
999-
File buildPath = prefs.getFile("build.path");
1002+
void compileSketch(List<File> includeFolders, File buildPath) throws RunnerException, PreferencesMapException {
10001003
objectFiles.addAll(compileFiles(buildPath, buildPath, false, includeFolders));
10011004
}
10021005

Diff for: hardware/arduino/avr/platform.txt

+4-4
Original file line numberDiff line numberDiff line change
@@ -65,18 +65,18 @@ recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.S.flags} -mmcu={b
6565
recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/{archive_file}" "{object_file}"
6666

6767
## Combine gc-sections, archives, and objects
68-
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mmcu={build.mcu} {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "-L{build.path}" -lm
68+
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mmcu={build.mcu} {compiler.c.elf.extra_flags} -o "{build.path}/sketch/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "-L{build.path}" -lm
6969

7070
## Create output files (.eep and .hex)
71-
recipe.objcopy.eep.pattern="{compiler.path}{compiler.objcopy.cmd}" {compiler.objcopy.eep.flags} {compiler.objcopy.eep.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.eep"
72-
recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} {compiler.elf2hex.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.hex"
71+
recipe.objcopy.eep.pattern="{compiler.path}{compiler.objcopy.cmd}" {compiler.objcopy.eep.flags} {compiler.objcopy.eep.extra_flags} "{build.path}/sketch/{build.project_name}.elf" "{build.path}/sketch/{build.project_name}.eep"
72+
recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} {compiler.elf2hex.extra_flags} "{build.path}/sketch/{build.project_name}.elf" "{build.path}/sketch/{build.project_name}.hex"
7373

7474
## Save hex
7575
recipe.output.tmp_file={build.project_name}.hex
7676
recipe.output.save_file={build.project_name}.{build.variant}.hex
7777

7878
## Compute size
79-
recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf"
79+
recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/sketch/{build.project_name}.elf"
8080
recipe.size.regex=^(?:\.text|\.data|\.bootloader)\s+([0-9]+).*
8181
recipe.size.regex.data=^(?:\.data|\.bss|\.noinit)\s+([0-9]+).*
8282
recipe.size.regex.eeprom=^(?:\.eeprom)\s+([0-9]+).*

Diff for: hardware/arduino/sam/platform.txt

+4-4
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,17 @@ recipe.S.o.pattern="{compiler.path}{compiler.S.cmd}" {compiler.S.flags} -mcpu={b
7575
recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/{archive_file}" "{object_file}"
7676

7777
## Combine gc-sections, archives, and objects
78-
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mcpu={build.mcu} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group "{build.path}/core/syscalls_sam3.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.path}/{archive_file}" -Wl,--end-group -lm -gcc
78+
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mcpu={build.mcu} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" {compiler.c.elf.extra_flags} -o "{build.path}/sketch/{build.project_name}.elf" "-L{build.path}" -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group "{build.path}/core/syscalls_sam3.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.path}/{archive_file}" -Wl,--end-group -lm -gcc
7979

8080
## Create output (.bin file)
81-
recipe.objcopy.bin.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} {compiler.elf2hex.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.bin"
81+
recipe.objcopy.bin.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} {compiler.elf2hex.extra_flags} "{build.path}/sketch/{build.project_name}.elf" "{build.path}/sketch/{build.project_name}.bin"
8282

8383
## Save hex
8484
recipe.output.tmp_file={build.project_name}.bin
8585
recipe.output.save_file={build.project_name}.{build.variant}.bin
8686

8787
## Compute size
88-
recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf"
88+
recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/sketch/{build.project_name}.elf"
8989
recipe.size.regex=\.text\s+([0-9]+).*
9090

9191

@@ -98,5 +98,5 @@ tools.bossac.cmd.windows=bossac.exe
9898

9999
tools.bossac.upload.params.verbose=-i -d
100100
tools.bossac.upload.params.quiet=
101-
tools.bossac.upload.pattern="{path}/{cmd}" {upload.verbose} --port={serial.port.file} -U {upload.native_usb} -e -w -v -b "{build.path}/{build.project_name}.bin" -R
101+
tools.bossac.upload.pattern="{path}/{cmd}" {upload.verbose} --port={serial.port.file} -U {upload.native_usb} -e -w -v -b "{build.path}/sketch/{build.project_name}.bin" -R
102102

0 commit comments

Comments
 (0)