From 428e1190842238c094b9d0e17abc2f909d9abb00 Mon Sep 17 00:00:00 2001 From: David Inglis Date: Fri, 5 Sep 2003 20:51:03 +0000 Subject: [PATCH] added project to createion of make target for initial default settings --- .../cdt/make/core/IMakeTargetManager.java | 2 +- .../cdt/make/internal/core/MakeTarget.java | 7 ++- .../make/internal/core/MakeTargetManager.java | 6 +- .../make/internal/core/ProjectTargets.java | 61 ++++++++++--------- 4 files changed, 43 insertions(+), 33 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 4bf9c7fa141..9d5ed6f930e 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 @@ -15,7 +15,7 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; public interface IMakeTargetManager { - IMakeTarget createTarget(String targetName, String targetID); + IMakeTarget createTarget(IProject project, String targetName, String targetID) throws CoreException; void addTarget(IContainer container, IMakeTarget target) throws CoreException; void removeTarget(IMakeTarget target) throws CoreException; void renameTarget(IMakeTarget target, String name) throws CoreException; diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java index 9f41946ea22..4a365e924f3 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java @@ -33,10 +33,15 @@ public class MakeTarget implements IMakeTarget { private IContainer container; private MakeTargetManager manager; - MakeTarget(MakeTargetManager manager, String targetBuilderID, String name) { + MakeTarget(MakeTargetManager manager, IProject project, String targetBuilderID, String name) throws CoreException { this.manager = manager; this.targetBuilderID = targetBuilderID; this.name = name; + IMakeBuilderInfo info = MakeCorePlugin.createBuildInfo(project, manager.getBuilderID(targetBuilderID)); + buildCommand = info.getBuildCommand(); + buildArguments = info.getBuildArguments(); + isDefaultBuildCmd = info.isDefaultBuildCmd(); + isStopOnError = info.isStopOnError(); } void setContainer(IContainer container) { 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 d6219f71905..0d700b8ac4d 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 @@ -58,8 +58,8 @@ public class MakeTargetManager implements IMakeTargetManager, IResourceChangeLis public MakeTargetManager() { } - public IMakeTarget createTarget(String name, String targetBuilderID) { - return new MakeTarget(this, targetBuilderID, name); + public IMakeTarget createTarget(IProject project, String name, String targetBuilderID) throws CoreException { + return new MakeTarget(this, project, targetBuilderID, name); } public void addTarget(IContainer container, IMakeTarget target) throws CoreException { @@ -123,7 +123,7 @@ public class MakeTargetManager implements IMakeTargetManager, IResourceChangeLis } public String[] getTargetBuilders(IProject project) { - if (fProjects.contains(project)) { + if (fProjects.contains(project) || hasTargetBuilder(project)) { try { Vector ids = new Vector(); IProjectDescription description = project.getDescription(); diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/ProjectTargets.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/ProjectTargets.java index d4db46f72e9..8e5879b7dd8 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/ProjectTargets.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/ProjectTargets.java @@ -42,9 +42,9 @@ public class ProjectTargets { private static final String TARGET_STOP_ON_ERROR = "stopOnError"; private static final String TARGET_USE_DEFAULT_CMD = "useDefaultCommand"; private static final String TARGET_ARGUMENTS = "buildArguments"; - private static final String TARGET_COMMAND ="buildCommand"; + private static final String TARGET_COMMAND = "buildCommand"; private static final String TARGET = "buidlTarget"; - + private HashMap targetMap = new HashMap(); private IProject project; @@ -79,29 +79,34 @@ public class ProjectTargets { } else { container = project; } - MakeTarget target = new MakeTarget(manager, attr.getNamedItem(TARGET_ATTR_ID).getNodeValue(), attr.getNamedItem(TARGET_ATTR_NAME).getNodeValue()); - target.setContainer(container); - String option = getString(node, TARGET_STOP_ON_ERROR); - if (option != null) { - target.setStopOnError(Boolean.valueOf(option).booleanValue()); - } - option = getString(node, TARGET_USE_DEFAULT_CMD); - if (option != null) { - target.setUseDefaultBuildCmd(Boolean.valueOf(option).booleanValue()); - } - option = getString(node, TARGET_COMMAND); - if (option != null) { - target.setBuildCommand(new Path(option)); - } - option = getString(node, TARGET_ARGUMENTS); - if (option != null) { - target.setBuildArguments(option); - } - option = getString(node, TARGET); - if (option != null) { - target.setBuildTarget(option); - } try { + MakeTarget target = + new MakeTarget( + manager, + project, + attr.getNamedItem(TARGET_ATTR_ID).getNodeValue(), + attr.getNamedItem(TARGET_ATTR_NAME).getNodeValue()); + target.setContainer(container); + String option = getString(node, TARGET_STOP_ON_ERROR); + if (option != null) { + target.setStopOnError(Boolean.valueOf(option).booleanValue()); + } + option = getString(node, TARGET_USE_DEFAULT_CMD); + if (option != null) { + target.setUseDefaultBuildCmd(Boolean.valueOf(option).booleanValue()); + } + option = getString(node, TARGET_COMMAND); + if (option != null) { + target.setBuildCommand(new Path(option)); + } + option = getString(node, TARGET_ARGUMENTS); + if (option != null) { + target.setBuildArguments(option); + } + option = getString(node, TARGET); + if (option != null) { + target.setBuildTarget(option); + } add(target); } catch (CoreException e) { MakeCorePlugin.log(e); @@ -188,7 +193,7 @@ public class ProjectTargets { doc.appendChild(targetsRootElement); Iterator container = targetMap.entrySet().iterator(); while (container.hasNext()) { - List targets = (List) ((Map.Entry)container.next()).getValue(); + List targets = (List) ((Map.Entry) container.next()).getValue(); for (int i = 0; i < targets.size(); i++) { MakeTarget target = (MakeTarget) targets.get(i); targetsRootElement.appendChild(createTargetElement(doc, target)); @@ -205,7 +210,7 @@ public class ProjectTargets { Element elem = doc.createElement(TARGET_COMMAND); targetElem.appendChild(elem); elem.appendChild(doc.createTextNode(target.getBuildCommand().toString())); - + elem = doc.createElement(TARGET_ARGUMENTS); elem.appendChild(doc.createTextNode(target.getBuildArguments())); targetElem.appendChild(elem); @@ -217,11 +222,11 @@ public class ProjectTargets { elem = doc.createElement(TARGET_STOP_ON_ERROR); elem.appendChild(doc.createTextNode(new Boolean(target.isStopOnError()).toString())); targetElem.appendChild(elem); - + elem = doc.createElement(TARGET_USE_DEFAULT_CMD); elem.appendChild(doc.createTextNode(new Boolean(target.isDefaultBuildCmd()).toString())); targetElem.appendChild(elem); - return targetElem; + return targetElem; } public void saveTargets(OutputStream output) throws IOException {