Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Riley2018-02-14 09:18:08 +0000
committerWilliam Riley2018-02-14 09:18:08 +0000
commitfdd018365cdb43e9e5a4aa5967960ea71e663c3d (patch)
treea1c6c45ec9dc37eae4e9d71e8b997fbb63beef9f /build/org.eclipse.cdt.managedbuilder.core
parenta51f7c0659765ff0058e22f5e8c35343ebbe65ac (diff)
downloadorg.eclipse.cdt-fdd018365cdb43e9e5a4aa5967960ea71e663c3d.tar.gz
org.eclipse.cdt-fdd018365cdb43e9e5a4aa5967960ea71e663c3d.tar.xz
org.eclipse.cdt-fdd018365cdb43e9e5a4aa5967960ea71e663c3d.zip
Bug 531131 - Consider superclass value to avoid unnecessary changes
Consider the superclass value when setting pre & post build steps, error parsers, tool commands & tool command line patterns to avoid changing the .cproject file unnecessary Change-Id: Ida323982fe5bce7b0dd9b70eb23a6ee778be5403 Signed-off-by: William Riley <william.riley@renesas.com>
Diffstat (limited to 'build/org.eclipse.cdt.managedbuilder.core')
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java48
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java24
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java21
3 files changed, 49 insertions, 44 deletions
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
index 03f14a6256c..6b23ace7edf 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
@@ -1545,8 +1545,9 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
@Override
public void setPrebuildStep(String step) {
+ String currentPrebuildStep = getPrebuildStep();
if (step == null && prebuildStep == null) return;
- if (prebuildStep == null || step == null || !prebuildStep.equals(step)) {
+ if (currentPrebuildStep == null || step == null || !currentPrebuildStep.equals(step)) {
prebuildStep = step;
// rebuildNeeded = true;
isDirty = true;
@@ -1556,8 +1557,9 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
@Override
public void setPostbuildStep(String step) {
+ String currentPostbuildStep = getPostbuildStep();
if (step == null && postbuildStep == null) return;
- if (postbuildStep == null || step == null || !postbuildStep.equals(step)) {
+ if (currentPostbuildStep == null || step == null || !currentPostbuildStep.equals(step)) {
postbuildStep = step;
// rebuildNeeded = true;
isDirty = true;
@@ -1566,8 +1568,9 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
@Override
public void setPreannouncebuildStep(String announceStep) {
+ String currentPreannouncebuildStep = getPreannouncebuildStep();
if (announceStep == null && preannouncebuildStep == null) return;
- if (preannouncebuildStep == null || announceStep == null || !preannouncebuildStep.equals(announceStep)) {
+ if (currentPreannouncebuildStep == null || announceStep == null || !currentPreannouncebuildStep.equals(announceStep)) {
preannouncebuildStep = announceStep;
// rebuildNeeded = true;
isDirty = true;
@@ -1576,8 +1579,9 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
@Override
public void setPostannouncebuildStep(String announceStep) {
+ String currentAnnounceStep = getPostannouncebuildStep();
if (announceStep == null && postannouncebuildStep == null) return;
- if (postannouncebuildStep == null || announceStep == null || !postannouncebuildStep.equals(announceStep)) {
+ if (currentAnnounceStep == null || announceStep == null || !currentAnnounceStep.equals(announceStep)) {
postannouncebuildStep = announceStep;
// rebuildNeeded = true;
isDirty = true;
@@ -2307,16 +2311,16 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
public void setErrorParserAttribute(String[] ids) {
if(ids == null){
- errorParserIds = null;
+ setErrorParserIds(null);
} else if(ids.length == 0){
- errorParserIds = EMPTY_STRING;
+ setErrorParserIds(EMPTY_STRING);
} else {
StringBuilder buf = new StringBuilder();
buf.append(ids[0]);
for(int i = 1; i < ids.length; i++){
buf.append(";").append(ids[i]); //$NON-NLS-1$
}
- errorParserIds = buf.toString();
+ setErrorParserIds(buf.toString());
}
}
@@ -2326,12 +2330,6 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
//reset
resetErrorParsers();
} else {
- resetErrorParsers();
- Set<String> oldSet = contributeErrorParsers(null, true);
- if(oldSet != null) {
- oldSet.removeAll(Arrays.asList(ids));
- removeErrorParsers(oldSet);
- }
setErrorParserAttribute(ids);
}
}
@@ -2346,17 +2344,19 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
}
void removeErrorParsers(Set<String> set){
- Set<String> oldSet = contributeErrorParsers(null, false);
- if(oldSet == null)
- oldSet = new LinkedHashSet<String>();
-
- oldSet.removeAll(set);
- setErrorParserAttribute(oldSet.toArray(new String[oldSet.size()]));
-
- IResourceInfo rcInfos[] = getResourceInfos();
- for(int i = 0; i < rcInfos.length; i++){
- ResourceInfo rcInfo = (ResourceInfo)rcInfos[i];
- rcInfo.removeErrorParsers(set);
+ if (set != null && set.isEmpty()) {
+ Set<String> oldSet = contributeErrorParsers(null, false);
+ if (oldSet == null)
+ oldSet = new LinkedHashSet<String>();
+
+ oldSet.removeAll(set);
+ setErrorParserAttribute(oldSet.toArray(new String[oldSet.size()]));
+
+ IResourceInfo rcInfos[] = getResourceInfos();
+ for (int i = 0; i < rcInfos.length; i++) {
+ ResourceInfo rcInfo = (ResourceInfo) rcInfos[i];
+ rcInfo.removeErrorParsers(set);
+ }
}
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
index 92f5e97c252..d1cce5a2e39 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
@@ -2438,8 +2438,9 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
*/
@Override
public boolean setToolCommand(String cmd) {
+ String currentCommand = getToolCommand();
if (cmd == null && command == null) return false;
- if (cmd == null || command == null || !cmd.equals(command)) {
+ if (cmd == null || currentCommand == null || !cmd.equals(currentCommand)) {
command = cmd;
isDirty = true;
setRebuildState(true);
@@ -2454,8 +2455,9 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
*/
@Override
public void setCommandLinePattern(String pattern) {
+ String currentPattern = getCommandLinePattern();
if (pattern == null && commandLinePattern == null) return;
- if (pattern == null || commandLinePattern == null || !pattern.equals(commandLinePattern)) {
+ if (pattern == null || currentPattern == null || !pattern.equals(currentPattern)) {
commandLinePattern = pattern;
setRebuildState(true);
isDirty = true;
@@ -3889,26 +3891,28 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
}
void removeErrorParsers(Set<String> set){
- Set<String> oldSet = contributeErrorParsers(null);
- if(oldSet == null)
- oldSet = new HashSet<String>();
+ if(set != null && !set.isEmpty()) {
+ Set<String> oldSet = contributeErrorParsers(null);
+ if(oldSet == null)
+ oldSet = new HashSet<String>();
- oldSet.removeAll(set);
- setErrorParserList(oldSet.toArray(new String[oldSet.size()]));
+ oldSet.removeAll(set);
+ setErrorParserList(oldSet.toArray(new String[oldSet.size()]));
+ }
}
public void setErrorParserList(String[] ids) {
if(ids == null){
- errorParserIds = null;
+ setErrorParserIds(null);
} else if(ids.length == 0){
- errorParserIds = EMPTY_STRING;
+ setErrorParserIds(EMPTY_STRING);
} else {
StringBuilder buf = new StringBuilder();
buf.append(ids[0]);
for(int i = 1; i < ids.length; i++){
buf.append(";").append(ids[i]); //$NON-NLS-1$
}
- errorParserIds = buf.toString();
+ setErrorParserIds(buf.toString());
}
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java
index 08ddaba9c67..4f514cc1382 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java
@@ -2478,19 +2478,20 @@ public class ToolChain extends HoldsOptions implements IToolChain, IMatchKeyProv
}
void removeErrorParsers(FolderInfo info, Set<String> set){
- Set<String> oldSet = contributeErrorParsers(info, null, false);
- if(oldSet == null)
- oldSet = new HashSet<String>();
+ if (set != null && !set.isEmpty()) {
+ Set<String> oldSet = contributeErrorParsers(info, null, false);
+ if (oldSet == null)
+ oldSet = new HashSet<String>();
- oldSet.removeAll(set);
- setErrorParserList(oldSet.toArray(new String[oldSet.size()]));
+ oldSet.removeAll(set);
+ setErrorParserList(oldSet.toArray(new String[oldSet.size()]));
- info.removeErrorParsers(info.getFilteredTools(), set);
+ info.removeErrorParsers(info.getFilteredTools(), set);
-
- if(info.isRoot()){
- Builder builder = (Builder)info.getParent().getEditableBuilder();
- builder.removeErrorParsers(set);
+ if (info.isRoot()) {
+ Builder builder = (Builder) info.getParent().getEditableBuilder();
+ builder.removeErrorParsers(set);
+ }
}
}

Back to the top