diff --git a/app/src/processing/app/debug/Compiler.java b/app/src/processing/app/debug/Compiler.java index 92f25a1c5..2a94cbd6e 100644 --- a/app/src/processing/app/debug/Compiler.java +++ b/app/src/processing/app/debug/Compiler.java @@ -690,6 +690,8 @@ public class Compiler implements MessageConsumer { // 3. compile the core, outputting .o files to and then // collecting them into the core.a library file. + // Also compiles the variant (if it supplies actual source files), + // which are included in the link directly (not through core.a) void compileCore() throws RunnerException { @@ -702,13 +704,9 @@ public class Compiler implements MessageConsumer { if (variantFolder != null) includeFolders.add(variantFolder); - List objectFiles = compileFiles(buildFolder, coreFolder, true, - includeFolders); - if (variantFolder != null) - objectFiles.addAll(compileFiles(buildFolder, variantFolder, true, - includeFolders)); - - for (File file : objectFiles) { + List coreObjectFiles = compileFiles(buildFolder, coreFolder, true, + includeFolders); + for (File file : coreObjectFiles) { PreferencesMap dict = new PreferencesMap(prefs); dict.put("ide_version", "" + Base.REVISION); @@ -724,6 +722,10 @@ public class Compiler implements MessageConsumer { } execAsynchronously(cmdArray); } + + if (variantFolder != null) + objectFiles.addAll(compileFiles(buildFolder, variantFolder, true, + includeFolders)); } // 4. link it all together into the .elf file