Skip to content

Commit d2a7bb4

Browse files
author
gast1
committed
sloeber regression now works #1126
1 parent 17a7414 commit d2a7bb4

File tree

7 files changed

+517
-1925
lines changed

7 files changed

+517
-1925
lines changed

io.sloeber.core/src/io/sloeber/managedBuild/Internal/ArduinoGnuMakefileGenerator.java

Lines changed: 14 additions & 930 deletions
Large diffs are not rendered by default.

io.sloeber.core/src/io/sloeber/managedBuild/Internal/MakeRule.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,7 @@ private String enumPrerequisites(IFile buildFolder) {
247247
return ret;
248248
}
249249

250+
//FIXME JABA says: this code is weirdly crazy and way longer then I would expect. Should see why
250251
public StringBuffer getRule(IProject project, IFile niceBuildFolder, IConfiguration config) {
251252
ICConfigurationDescription confDesc = ManagedBuildManager.getDescriptionForConfiguration(config);
252253
String cmd = myTool.getToolCommand();
@@ -318,7 +319,7 @@ public StringBuffer getRule(IProject project, IFile niceBuildFolder, IConfigurat
318319
StringBuffer buffer = new StringBuffer();
319320
buffer.append(enumTargets(niceBuildFolder)).append(COLON).append(WHITESPACE);
320321
buffer.append(enumPrerequisites(niceBuildFolder)).append(NEWLINE);
321-
buffer.append(TAB).append(AT).append(escapedEcho(MESSAGE_START_FILE + WHITESPACE + IN_MACRO));
322+
buffer.append(TAB).append(AT).append(escapedEcho(MESSAGE_START_FILE + WHITESPACE + OUT_MACRO));
322323
buffer.append(TAB).append(AT).append(escapedEcho(myTool.getAnnouncement()));
323324

324325
// JABA add sketch.prebuild and postbouild if needed
@@ -342,7 +343,7 @@ public StringBuffer getRule(IProject project, IFile niceBuildFolder, IConfigurat
342343
// end JABA add sketch.prebuild and postbouild if needed
343344

344345
buffer.append(NEWLINE);
345-
buffer.append(TAB).append(AT).append(escapedEcho(MESSAGE_FINISH_FILE + WHITESPACE + IN_MACRO));
346+
buffer.append(TAB).append(AT).append(escapedEcho(MESSAGE_FINISH_FILE + WHITESPACE + OUT_MACRO));
346347
buffer.append(TAB).append(AT).append(ECHO_BLANK_LINE).append(NEWLINE);
347348
return buffer;
348349
}
@@ -483,4 +484,8 @@ public boolean isSimpleRule() {
483484

484485
}
485486

487+
public boolean isTool(ITool targetTool) {
488+
return myTool.getName().equals(targetTool.getName());
489+
}
490+
486491
}

io.sloeber.core/src/io/sloeber/managedBuild/Internal/MakeRules.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,4 +104,14 @@ public Set<MakeRule> getMakeRules() {
104104
return myMakeRules;
105105
}
106106

107+
public Set<IFile> getTargetsForTool(ITool targetTool) {
108+
Set<IFile> ret=new HashSet<>();
109+
for(MakeRule curMakeRule :myMakeRules) {
110+
if(curMakeRule.isTool(targetTool)) {
111+
ret.addAll( curMakeRule.getTargetFiles());
112+
}
113+
}
114+
return ret;
115+
}
116+
107117
}

io.sloeber.core/src/io/sloeber/managedBuild/Internal/ManagebBuildCommon.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import org.eclipse.cdt.managedbuilder.core.IResourceInfo;
2626
import org.eclipse.cdt.managedbuilder.core.ITool;
2727
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
28-
import org.eclipse.cdt.managedbuilder.internal.core.ManagedMakeMessages;
2928
import org.eclipse.cdt.managedbuilder.internal.core.OutputType;
3029
import org.eclipse.cdt.managedbuilder.macros.BuildMacroException;
3130
import org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider;
@@ -365,7 +364,7 @@ static public String escapedEcho(String string) {
365364
static protected StringBuffer addDefaultHeader() {
366365
StringBuffer buffer = new StringBuffer();
367366
outputCommentLine(buffer);
368-
buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(HEADER))
367+
buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(MESSAGE_HEADER)
369368
.append(NEWLINE);
370369
outputCommentLine(buffer);
371370
buffer.append(NEWLINE);
Lines changed: 83 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
package io.sloeber.managedBuild.Internal;
2-
32
import java.io.File;
43

54
import org.eclipse.cdt.managedbuilder.internal.core.ManagedMakeMessages;
@@ -8,92 +7,94 @@
87

98
@SuppressWarnings("nls")
109
public class ManagedBuildConstants {
11-
public static final String AT = "@";
12-
public static final String COLON = ":";
13-
public static final int COLS_PER_LINE = 80;
14-
public static final String COMMENT_SYMBOL = "#";
15-
public static final String DOLLAR_SYMBOL = "$";
16-
public static final String DEP_EXT = "d";
17-
public static final String DEPFILE_NAME = "subdir.dep";
18-
public static final String DOT = ".";
19-
public static final String DASH = "-";
20-
public static final String ECHO = "echo";
21-
public static final String IN_MACRO = "$<";
22-
public static final String LINEBREAK = "\\\n";
23-
public static final String LOGICAL_AND = "&&";
24-
public static final String MAKEFILE_DEFS = "makefile.defs";
25-
public static final String MAKEFILE_INIT = "makefile.init";
26-
public static final String MAKEFILE_NAME = "makefile";
27-
public static final String MAKEFILE_TARGETS = "makefile.targets";
28-
public static final String MAKE = "$(MAKE)";
29-
public static final String NO_PRINT_DIR = "--no-print-directory";
10+
public static final String AT = "@";
11+
public static final String COLON = ":";
12+
public static final int COLS_PER_LINE = 80;
13+
public static final String COMMENT_SYMBOL = "#";
14+
public static final String COMMENT_START = "# ";
15+
public static final String DOLLAR_SYMBOL = "$";
16+
public static final String DEP_EXT = "d";
17+
public static final String DEPFILE_NAME = "subdir.dep";
18+
public static final String DOT = ".";
19+
public static final String DASH = "-";
20+
public static final String ECHO = "echo";
21+
public static final String IN_MACRO = "$<";
22+
public static final String LINEBREAK = "\\\n";
23+
public static final String LOGICAL_AND = "&&";
24+
public static final String MAKEFILE_DEFS = "makefile.defs";
25+
public static final String MAKEFILE_INIT = "makefile.init";
26+
public static final String MAKEFILE_NAME = "makefile";
27+
public static final String MAKEFILE_TARGETS = "makefile.targets";
28+
public static final String MAKE = "$(MAKE)";
29+
public static final String NO_PRINT_DIR = "--no-print-directory";
3030

31-
public static final String MODFILE_NAME = "subdir.mk";
32-
public static final String NEWLINE = System.getProperty("line.separator");
33-
public static final String OBJECTS_MAKFILE = "objects.mk";
34-
public static final String OUT_MACRO = "$@";
35-
public static final String ROOT = "..";
36-
public static final String SEPARATOR = "/";
37-
public static final String SINGLE_QUOTE = "'";
38-
public static final String SRCSFILE_NAME = "sources.mk";
39-
public static final String TAB = "\t";
40-
public static final String WHITESPACE = " ";
41-
public static final String WILDCARD = "%";
31+
public static final String MODFILE_NAME = "subdir.mk";
32+
public static final String NEWLINE = System.getProperty("line.separator");
33+
public static final String OBJECTS_MAKFILE = "objects.mk";
34+
public static final String OUT_MACRO = "$@";
35+
public static final String ROOT = "..";
36+
public static final String SEPARATOR = "/";
37+
public static final String SINGLE_QUOTE = "'";
38+
public static final String SRCSFILE_NAME = "sources.mk";
39+
public static final String TAB = "\t";
40+
public static final String WHITESPACE = " ";
41+
public static final String WILDCARD = "%";
4242

43-
// String constants for makefile contents and messages
44-
public static final String COMMENT = "MakefileGenerator.comment";
45-
public static final String HEADER = COMMENT + ".header";
46-
public static final String MESSAGE_FINISH_BUILD = ManagedMakeMessages
47-
.getResourceString("MakefileGenerator.message.finish.build");
48-
public static final String MESSAGE_FINISH_FILE = ManagedMakeMessages
49-
.getResourceString("MakefileGenerator.message.finish.file");
50-
public static final String MESSAGE_START_BUILD = ManagedMakeMessages
51-
.getResourceString("MakefileGenerator.message.start.build");
52-
public static final String MESSAGE_START_FILE = ManagedMakeMessages
53-
.getResourceString("MakefileGenerator.message.start.file");
54-
public static final String MESSAGE_START_DEPENDENCY = ManagedMakeMessages
55-
.getResourceString("MakefileGenerator.message.start.dependency");
56-
public static final String MESSAGE_NO_TARGET_TOOL = ManagedMakeMessages
57-
.getResourceString("MakefileGenerator.message.no.target");
43+
// String constants for makefile contents and messages
44+
public static final String COMMENT = "MakefileGenerator.comment";
45+
public static final String HEADER = COMMENT + ".header";
5846

59-
public static final String MOD_LIST = COMMENT + ".module.list";
60-
public static final String MOD_LIST_MESSAGE = ManagedMakeMessages.getResourceString(MOD_LIST);
61-
public static final String MOD_VARS = COMMENT + ".module.variables";
62-
public static final String MOD_RULES = COMMENT + ".build.rule";
63-
public static final String BUILD_TOP = COMMENT + ".build.toprules";
64-
public static final String ALL_TARGET = COMMENT + ".build.alltarget";
65-
public static final String MAINBUILD_TARGET = COMMENT + ".build.mainbuildtarget";
66-
public static final String BUILD_TARGETS = COMMENT + ".build.toptargets";
67-
public static final String SRC_LISTS = COMMENT + ".source.list";
68-
public static final String EMPTY_STRING = "";
69-
public static final String[] EMPTY_STRING_ARRAY = new String[0];
70-
public static final String OBJS_MACRO = "OBJS";
71-
public static final String MACRO_ADDITION_ADDPREFIX_HEADER = "${addprefix ";
72-
public static final String MACRO_ADDITION_ADDPREFIX_SUFFIX = "," + WHITESPACE + LINEBREAK;
73-
public static final String MAKE_ADDITION = " +=";
74-
public static final String MAKE_EQUAL = " :=";
75-
public static final String MACRO_ADDITION_PREFIX_SUFFIX = MAKE_ADDITION + LINEBREAK;
76-
public static final String PREBUILD = "pre-build";
77-
public static final String MAINBUILD = "main-build";
78-
public static final String POSTBUILD = "post-build";
79-
public static final String SECONDARY_OUTPUTS = "secondary-outputs";
47+
public static final String BUILD_TOP = COMMENT + ".build.toprules";
48+
public static final String BUILD_TARGETS = COMMENT + ".build.toptargets";
49+
public static final String EMPTY_STRING = "";
50+
public static final String[] EMPTY_STRING_ARRAY = new String[0];
51+
public static final String OBJS_MACRO = "OBJS";
52+
public static final String MACRO_ADDITION_ADDPREFIX_HEADER = "${addprefix ";
53+
public static final String MACRO_ADDITION_ADDPREFIX_SUFFIX = "," + WHITESPACE + LINEBREAK;
54+
public static final String MAKE_ADDITION = " +=";
55+
public static final String MAKE_EQUAL = " :=";
56+
public static final String MACRO_ADDITION_PREFIX_SUFFIX = MAKE_ADDITION + LINEBREAK;
57+
public static final String PREBUILD = "pre-build";
58+
public static final String MAINBUILD = "main-build";
59+
public static final String POSTBUILD = "post-build";
60+
public static final String SECONDARY_OUTPUTS = "secondary-outputs";
8061

81-
public static final IPath DOT_SLASH_PATH = new Path("./");
82-
public static final String FILE_SEPARATOR = File.separator;
83-
// Enumerations
84-
public static final int PROJECT_RELATIVE = 1, PROJECT_SUBDIR_RELATIVE = 2, ABSOLUTE = 3;
62+
public static final IPath DOT_SLASH_PATH = new Path("./");
63+
public static final String FILE_SEPARATOR = File.separator;
64+
// Enumerations
65+
public static final int PROJECT_RELATIVE = 1, PROJECT_SUBDIR_RELATIVE = 2, ABSOLUTE = 3;
8566

86-
public static final String DEFAULT_PATTERN = "${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}";
87-
public static final String DOUBLE_QUOTE = "\"";
67+
public static final String DEFAULT_PATTERN = "${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}";
68+
public static final String DOUBLE_QUOTE = "\"";
8869

89-
public static final String CMD_LINE_PRM_NAME = "COMMAND";
90-
public static final String FLAGS_PRM_NAME = "FLAGS";
91-
public static final String OUTPUT_FLAG_PRM_NAME = "OUTPUT_FLAG";
92-
public static final String OUTPUT_PREFIX_PRM_NAME = "OUTPUT_PREFIX";
93-
public static final String OUTPUT_PRM_NAME = "OUTPUT";
94-
public static final String INPUTS_PRM_NAME = "INPUTS";
95-
public static final String VARIABLE_PREFIX = "${";
96-
public static final String VARIABLE_SUFFIX = "}";
97-
public static final String DEPENDENCY_SUFFIX = "_DEPS";
70+
public static final String CMD_LINE_PRM_NAME = "COMMAND";
71+
public static final String FLAGS_PRM_NAME = "FLAGS";
72+
public static final String OUTPUT_FLAG_PRM_NAME = "OUTPUT_FLAG";
73+
public static final String OUTPUT_PREFIX_PRM_NAME = "OUTPUT_PREFIX";
74+
public static final String OUTPUT_PRM_NAME = "OUTPUT";
75+
public static final String INPUTS_PRM_NAME = "INPUTS";
76+
public static final String VARIABLE_PREFIX = "${";
77+
public static final String VARIABLE_SUFFIX = "}";
78+
public static final String DEPENDENCY_SUFFIX = "_DEPS";
9879

80+
public static final String MESSAGE_FINISH_BUILD = ManagedMakeMessages
81+
.getResourceString("MakefileGenerator.message.finish.build");
82+
public static final String MESSAGE_FINISH_FILE = ManagedMakeMessages
83+
.getResourceString("MakefileGenerator.message.finish.file");
84+
public static final String MESSAGE_START_BUILD = ManagedMakeMessages
85+
.getResourceString("MakefileGenerator.message.start.build");
86+
public static final String MESSAGE_START_FILE = ManagedMakeMessages
87+
.getResourceString("MakefileGenerator.message.start.file");
88+
public static final String MESSAGE_START_DEPENDENCY = ManagedMakeMessages
89+
.getResourceString("MakefileGenerator.message.start.dependency");
90+
public static final String MESSAGE_NO_TARGET_TOOL = ManagedMakeMessages
91+
.getResourceString("MakefileGenerator.message.no.target");
92+
public static final String MESSAGE_MOD_VARS = ManagedMakeMessages.getResourceString(COMMENT + ".module.variables");
93+
public static final String MESSAGE_MOD_RULES = ManagedMakeMessages.getResourceString(COMMENT + ".build.rule");
94+
public static final String MOD_LIST_MESSAGE = ManagedMakeMessages.getResourceString(COMMENT + ".module.list");
95+
public static final String MESSAGE_MAINBUILD_TARGET = ManagedMakeMessages
96+
.getResourceString(COMMENT + ".build.mainbuildtarget");
97+
public static final String MESSAGE_ALL_TARGET = ManagedMakeMessages.getResourceString(COMMENT + ".build.alltarget");
98+
public static final String MESSAGE_SRC_LISTS = ManagedMakeMessages.getResourceString(COMMENT + ".source.list");
99+
public static final String MESSAGE_HEADER =ManagedMakeMessages.getResourceString(HEADER);
99100
}

io.sloeber.core/src/io/sloeber/managedBuild/Internal/SubDirMakeGenerator.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import org.eclipse.cdt.managedbuilder.core.IInputType;
1515
import org.eclipse.cdt.managedbuilder.core.IOutputType;
1616
import org.eclipse.cdt.managedbuilder.core.ITool;
17-
import org.eclipse.cdt.managedbuilder.internal.core.ManagedMakeMessages;
1817
import org.eclipse.core.resources.IContainer;
1918
import org.eclipse.core.resources.IFile;
2019
import org.eclipse.core.resources.IProject;
@@ -107,7 +106,7 @@ private IPath getBuildPath() {
107106
}
108107

109108
private IPath getBuildFolder() {
110-
return caller.getBuildFolder().getLocation();
109+
return caller.getBuildFolder();
111110
}
112111

113112
private IFile getTopBuildDir() {
@@ -143,7 +142,7 @@ private StringBuffer GenerateMacros() {
143142
StringBuffer buffer = new StringBuffer();
144143
IFile buildRoot = getTopBuildDir();
145144
buffer.append(NEWLINE);
146-
buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(MOD_VARS))
145+
buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(MESSAGE_MOD_VARS)
147146
.append(NEWLINE);
148147
HashSet<String> macroNames = new HashSet<>();
149148
for (MakeRule makeRule : myMakeRules) {
@@ -170,7 +169,7 @@ private StringBuffer GenerateMacros() {
170169
private StringBuffer GenerateRules(IConfiguration config) {
171170
StringBuffer buffer = new StringBuffer();
172171
buffer.append(NEWLINE);
173-
buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(MOD_RULES))
172+
buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(MESSAGE_MOD_RULES)
174173
.append(NEWLINE);
175174

176175
for (MakeRule makeRule : myMakeRules) {
@@ -235,7 +234,6 @@ private void getMakeRulesFromSourceFiles(IContainer module) {
235234

236235
}
237236
} catch (CoreException e) {
238-
// TODO Auto-generated catch block
239237
e.printStackTrace();
240238
}
241239
}

0 commit comments

Comments
 (0)