Skip to content

Commit bf4331c

Browse files
author
jan
committed
Add extension post and prebuild commands to the generated makefile
1 parent 86a874b commit bf4331c

File tree

1 file changed

+46
-81
lines changed

1 file changed

+46
-81
lines changed

io.sloeber.autoBuild/src/io/sloeber/autoBuild/extensionPoint/providers/MakefileGenerator.java

+46-81
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import java.text.MessageFormat;
88
import java.util.HashSet;
9+
import java.util.LinkedHashMap;
910
import java.util.List;
1011
import java.util.Set;
1112
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
@@ -309,52 +310,40 @@ protected StringBuffer topMakeGetRMCommand(Set<String> myDependencyMacros) {
309310
return (buffer.append(NEWLINE));
310311
}
311312

312-
protected String topMakeGetPreBuildStep() {
313-
String prebuildStep = myAutoBuildConfData.getPrebuildStep();
314-
// JABA issue927 adding recipe.hooks.sketch.prebuild.NUMBER.pattern as cdt
315-
// prebuild command if needed
316-
// ICConfigurationDescription confDesc =
317-
// ManagedBuildManager.getDescriptionForConfiguration(config);
318-
// String sketchPrebuild =
319-
// io.sloeber.core.common.Common.getBuildEnvironmentVariable(confDesc,
320-
// "sloeber.prebuild",
321-
// new String(), false);
322-
String sketchPrebuild = getVariableValue("sloeber.prebuild", EMPTY_STRING, true, myAutoBuildConfData); //$NON-NLS-1$
323-
if (!sketchPrebuild.isEmpty()) {
324-
if (!prebuildStep.isEmpty()) {
325-
prebuildStep = prebuildStep + NEWLINE+TAB + sketchPrebuild;
326-
} else {
327-
prebuildStep = sketchPrebuild;
328-
}
329-
}
330-
// end off JABA issue927
331-
// try to resolve the build macros in the prebuild step
332-
prebuildStep = resolve(prebuildStep, EMPTY_STRING, WHITESPACE, myAutoBuildConfData);
333-
return prebuildStep.trim();
334-
}
313+
335314

336315
protected StringBuffer topMakeGetIncludeDependencies() {
337316
StringBuffer buffer = new StringBuffer();
338317

339318
// Add the comment for the "All" target
340319
buffer.append(COMMENT_START).append(MakefileGenerator_comment_build_alltarget).append(NEWLINE);
341320

342-
String prebuildStep = topMakeGetPreBuildStep();
343-
String postbuildStep = resolve(myAutoBuildConfData.getPostbuildStep(), EMPTY_STRING, WHITESPACE,
344-
myAutoBuildConfData);
345-
if (prebuildStep.isBlank() && postbuildStep.isBlank()) {
321+
LinkedHashMap<String,String> prebuildSteps = myAutoBuildConfData.getPrebuildSteps();
322+
LinkedHashMap<String,String> postbuildSteps = myAutoBuildConfData.getPostbuildSteps();
323+
if (prebuildSteps.size()== 0 && postbuildSteps.size()==0) {
346324
buffer.append(TARGET_ALL).append(COLON).append(WHITESPACE).append(MAINBUILD).append(NEWLINE);
347325
} else {
326+
// add prebuild announce data
327+
String preannouncebuildStep = myAutoBuildConfData.getPreBuildAnouncement();
328+
if (preannouncebuildStep.length() > 0) {
329+
buffer.append(TAB).append(DASH).append(AT_SYMBOL).append(escapedEcho(preannouncebuildStep));
330+
}
331+
// Add the prebuild recipes
348332
buffer.append(TARGET_ALL).append(COLON).append(NEWLINE);
349-
if (!prebuildStep.isBlank()) {
350-
buffer.append(TAB).append(MAKE).append(WHITESPACE).append(NO_PRINT_DIR).append(WHITESPACE)
351-
.append(PREBUILD).append(NEWLINE);
333+
for (String curRecipe : prebuildSteps.values()) {
334+
buffer.append(TAB).append(WHITESPACE).append(curRecipe).append(NEWLINE);
352335
}
336+
// Add the make all command
353337
buffer.append(TAB).append(MAKE).append(WHITESPACE).append(NO_PRINT_DIR).append(WHITESPACE).append(MAINBUILD)
354338
.append(NEWLINE);
355-
if (!postbuildStep.isBlank()) {
356-
buffer.append(TAB).append(MAKE).append(WHITESPACE).append(NO_PRINT_DIR).append(WHITESPACE)
357-
.append(POSTBUILD).append(NEWLINE);
339+
// add postbuild announce data
340+
String postannouncebuildStep = myAutoBuildConfData.getPostBuildAnouncement();
341+
if (postannouncebuildStep.length() > 0) {
342+
buffer.append(TAB).append(DASH).append(AT_SYMBOL).append(escapedEcho(postannouncebuildStep));
343+
}
344+
// Add the postbuild recipes
345+
for (String curRecipe : postbuildSteps.values()) {
346+
buffer.append(TAB).append(WHITESPACE).append(curRecipe).append(NEWLINE);
358347
}
359348

360349
}
@@ -396,31 +385,31 @@ protected StringBuffer topMakeGetTargets() {
396385
}
397386
buffer.append(NEWLINE).append(NEWLINE);
398387

399-
String prebuildStep = topMakeGetPreBuildStep();
400-
if (prebuildStep.length() > 0) {
401-
402-
String preannouncebuildStep = myAutoBuildConfData.getPreBuildAnouncement();
403-
buffer.append(PREBUILD).append(COLON).append(NEWLINE);
404-
if (preannouncebuildStep.length() > 0) {
405-
buffer.append(TAB).append(DASH).append(AT_SYMBOL).append(escapedEcho(preannouncebuildStep));
406-
}
407-
buffer.append(TAB).append(DASH).append(prebuildStep).append(NEWLINE);
408-
buffer.append(TAB).append(DASH).append(AT_SYMBOL).append(ECHO_BLANK_LINE).append(NEWLINE);
409-
}
388+
// String prebuildStep = topMakeGetPreBuildStep();
389+
// if (prebuildStep.length() > 0) {
390+
//
391+
// String preannouncebuildStep = myAutoBuildConfData.getPreBuildAnouncement();
392+
// buffer.append(PREBUILD).append(COLON).append(NEWLINE);
393+
// if (preannouncebuildStep.length() > 0) {
394+
// buffer.append(TAB).append(DASH).append(AT_SYMBOL).append(escapedEcho(preannouncebuildStep));
395+
// }
396+
// buffer.append(TAB).append(DASH).append(prebuildStep).append(NEWLINE);
397+
// buffer.append(TAB).append(DASH).append(AT_SYMBOL).append(ECHO_BLANK_LINE).append(NEWLINE);
398+
// }
410399

411-
String postbuildStep = myAutoBuildConfData.getPostbuildStep();
412-
postbuildStep = resolve(postbuildStep, EMPTY_STRING, WHITESPACE, myAutoBuildConfData);
413-
postbuildStep = postbuildStep.trim();
414-
// Add the postbuild step, if specified
415-
if (postbuildStep.length() > 0) {
416-
String postannouncebuildStep = myAutoBuildConfData.getPostBuildAnouncement();
417-
buffer.append(POSTBUILD).append(COLON).append(NEWLINE);
418-
if (postannouncebuildStep.length() > 0) {
419-
buffer.append(TAB).append(DASH).append(AT_SYMBOL).append(escapedEcho(postannouncebuildStep));
420-
}
421-
buffer.append(TAB).append(DASH).append(postbuildStep).append(NEWLINE);
422-
buffer.append(TAB).append(DASH).append(AT_SYMBOL).append(ECHO_BLANK_LINE).append(NEWLINE);
423-
}
400+
// String postbuildStep = myAutoBuildConfData.getPostbuildStep();
401+
// postbuildStep = resolve(postbuildStep, EMPTY_STRING, WHITESPACE, myAutoBuildConfData);
402+
// postbuildStep = postbuildStep.trim();
403+
// // Add the postbuild step, if specified
404+
// if (postbuildStep.length() > 0) {
405+
// String postannouncebuildStep = myAutoBuildConfData.getPostBuildAnouncement();
406+
// buffer.append(POSTBUILD).append(COLON).append(NEWLINE);
407+
// if (postannouncebuildStep.length() > 0) {
408+
// buffer.append(TAB).append(DASH).append(AT_SYMBOL).append(escapedEcho(postannouncebuildStep));
409+
// }
410+
// buffer.append(TAB).append(DASH).append(postbuildStep).append(NEWLINE);
411+
// buffer.append(TAB).append(DASH).append(AT_SYMBOL).append(ECHO_BLANK_LINE).append(NEWLINE);
412+
// }
424413

425414
return buffer;
426415
}
@@ -562,34 +551,10 @@ public StringBuffer getRecipesInMakeFileStyle(IAutoBuildMakeRule makeRule) {
562551
.append(escapedEcho(MakefileGenerator_message_start_file + WHITESPACE + OUT_MACRO));
563552
buffer.append(TAB).append(AT_SYMBOL).append(escapedEcho(tool.getAnnouncement()));
564553

565-
// // JABA add sketch.prebuild and postbuild if needed
566-
// //TOFIX this should not be here
567-
// if ("sloeber.ino".equals(fileName)) { //$NON-NLS-1$
568-
//
569-
// // String sketchPrebuild =
570-
// io.sloeber.core.common.Common.getBuildEnvironmentVariable(confDesc,
571-
// // "sloeber.sketch.prebuild", new String(), true); //$NON-NLS-1$
572-
// // String sketchPostBuild =
573-
// io.sloeber.core.common.Common.getBuildEnvironmentVariable(confDesc,
574-
// // "sloeber.sketch.postbuild", new String(), true); //$NON-NLS-1$
575-
// String sketchPrebuild = resolve("sloeber.sketch.prebuild", EMPTY_STRING,
576-
// WHITESPACE, autoBuildConfData);
577-
// String sketchPostBuild = resolve("sloeber.sketch.postbuild", EMPTY_STRING,
578-
// WHITESPACE,autoBuildConfData);
579-
// if (!sketchPrebuild.isEmpty()) {
580-
// buffer.append(TAB).append(sketchPrebuild);
581-
// }
582-
// buffer.append(TAB).append(buildCmd).append(NEWLINE);
583-
// if (!sketchPostBuild.isEmpty()) {
584-
// buffer.append(TAB).append(sketchPostBuild);
585-
// }
586-
// } else {
587554
for (String resolvedCommand : makeRule.getRecipes(myBuildRoot, myAutoBuildConfData)) {
588555
buffer.append(TAB).append(resolvedCommand);
589556
buffer.append(NEWLINE);
590557
}
591-
// }
592-
// // end JABA add sketch.prebuild and postbuild if needed
593558

594559
buffer.append(NEWLINE);
595560
buffer.append(TAB).append(AT_SYMBOL)

0 commit comments

Comments
 (0)