From 6b17a6477b7561a0904607d22fcd46c25f38bc86 Mon Sep 17 00:00:00 2001 From: David Inglis Date: Thu, 25 Sep 2003 13:40:29 +0000 Subject: [PATCH] added meothd to test for target build on a project added test for setting build info if value has changed or not --- .../cdt/make/core/IMakeTargetManager.java | 1 + .../cdt/make/internal/core/BuildInfoFactory.java | 16 +++++++++------- .../make/internal/core/MakeTargetManager.java | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTargetManager.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTargetManager.java index 7654ccf86c6..ebaba53ee98 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTargetManager.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTargetManager.java @@ -27,6 +27,7 @@ public interface IMakeTargetManager { String getBuilderID(String targetBuilderID); + boolean hasTargetBuilder(IProject project); String[] getTargetBuilders(IProject project); void addListener(IMakeTargetListener listener); diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java index e0d8d5065ea..db3ec1a2577 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java @@ -141,7 +141,6 @@ public class BuildInfoFactory { return getString(BUILD_TARGET_FULL); } - public boolean getBoolean(String property) { return Boolean.valueOf(getString(property)).booleanValue(); } @@ -180,7 +179,7 @@ public class BuildInfoFactory { public void setBuildArguments(String args) throws CoreException { putValue(BUILD_ARGUMENTS, args); } - + public String[] getErrorParsers() { String parsers = getString(ErrorParserManager.PREF_ERROR_PARSER); if (parsers != null && parsers.length() > 0) { @@ -193,7 +192,7 @@ public class BuildInfoFactory { } return new String[0]; } - + public void setErrorParsers(String[] parsers) throws CoreException { StringBuffer buf = new StringBuffer(); for (int i = 0; i < parsers.length; i++) { @@ -245,13 +244,16 @@ public class BuildInfoFactory { ICommand builder; builder = MakeProjectNature.getBuildSpec(project, builderID); if (builder == null) { - throw new CoreException( - new Status(IStatus.ERROR, MakeCorePlugin.getUniqueIdentifier(), -1, MakeCorePlugin.getResourceString("BuildInfoFactory.Missing_Builder") + builderID, null)); //$NON-NLS-1$ + throw new CoreException(new Status(IStatus.ERROR, MakeCorePlugin.getUniqueIdentifier(), -1, MakeCorePlugin.getResourceString("BuildInfoFactory.Missing_Builder") + builderID, null)); //$NON-NLS-1$ } args = builder.getArguments(); } public void putValue(String name, String value) throws CoreException { + String curValue = (String) args.get(name); + if (curValue != null && curValue.equals(value)) { + return; + } ICommand builder = MakeProjectNature.getBuildSpec(project, builderID); args.put(name, value); builder.setArguments(args); @@ -259,7 +261,7 @@ public class BuildInfoFactory { } public String getString(String name) { - String value = (String)args.get(name); + String value = (String) args.get(name); return value == null ? "" : value; //$NON-NLS-1$ } @@ -282,7 +284,7 @@ public class BuildInfoFactory { } public String getString(String name) { - return (String)args.get(name); + return (String) args.get(name); } public String getBuilderID() { diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTargetManager.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTargetManager.java index da1581295f7..97742338b44 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTargetManager.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTargetManager.java @@ -147,7 +147,7 @@ public class MakeTargetManager implements IMakeTargetManager, IResourceChangeLis return new String[0]; } - protected boolean hasTargetBuilder(IProject project) { + public boolean hasTargetBuilder(IProject project) { try { if (project.isAccessible()) { IProjectDescription description = project.getDescription();