diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/IConfiguration.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/IConfiguration.java
new file mode 100644
index 00000000000..a270c2cb76c
--- /dev/null
+++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/IConfiguration.java
@@ -0,0 +1,46 @@
+/**********************************************************************
+ * Copyright (c) 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.cdt.core.build.managed;
+
+/**
+ *
+ */
+public interface IConfiguration {
+
+ /**
+ * Returns the name of this configuration
+ * @return
+ */
+ public String getName();
+
+ /**
+ * Returns the platform for this configuration.
+ *
+ * @return
+ */
+ public ITarget getTarget();
+
+ /**
+ * Returns the configuration from which this configuration inherits
+ * properties.
+ *
+ * @return
+ */
+ public IConfiguration getParent();
+
+ /**
+ * Returns the tools that are used in this configuration.
+ *
+ * @return
+ */
+ public ITool[] getTools();
+
+}
diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/IOption.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/IOption.java
new file mode 100644
index 00000000000..d7a1ece79cd
--- /dev/null
+++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/IOption.java
@@ -0,0 +1,65 @@
+/**********************************************************************
+ * Copyright (c) 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.cdt.core.build.managed;
+
+/**
+ *
+ */
+public interface IOption {
+
+ // Type for the value of the option
+ public static final int STRING = 0;
+ public static final int STRING_LIST = 1;
+
+ /**
+ * Returns the category for this option.
+ * @return
+ */
+ public IOptionCategory getCategory();
+
+ /**
+ * Returns the name of this option.
+ *
+ * @return
+ */
+ public String getName();
+
+ /**
+ * Get the type for the value of the option.
+ *
+ * @return
+ */
+ public int getValueType();
+
+ /**
+ * If this option is defined as an enumeration, this function returns
+ * the list of possible values for that enum.
+ *
+ * If this option is not defined as an enumeration, it returns null.
+ * @return
+ */
+ public String [] getApplicableValues();
+
+ /**
+ * Returns the current value for this option if it is a String
+ *
+ * @return
+ */
+ public String getStringValue();
+
+ /**
+ * Returns the current value for this option if it is a List of Strings.
+ *
+ * @return
+ */
+ public String [] getStringListValue();
+
+}
diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/IOptionCategory.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/IOptionCategory.java
new file mode 100644
index 00000000000..99f429c17ba
--- /dev/null
+++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/IOptionCategory.java
@@ -0,0 +1,32 @@
+/**********************************************************************
+ * Copyright (c) 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.cdt.core.build.managed;
+
+/**
+ *
+ */
+public interface IOptionCategory {
+
+ /**
+ * Returns the options that have been assigned to this category.
+ *
+ * @return
+ */
+ public IOption[] getOptions();
+
+ /**
+ * Returns the list of children of this node in the option category tree
+ *
+ * @return
+ */
+ public IOptionCategory[] getChildCategories();
+
+}
diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/ITarget.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/ITarget.java
new file mode 100644
index 00000000000..4e92b6b1571
--- /dev/null
+++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/ITarget.java
@@ -0,0 +1,41 @@
+/**********************************************************************
+ * Copyright (c) 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.cdt.core.build.managed;
+
+/**
+ * This class represents targets for the managed build process. A target
+ * is some type of resource built using a given collection of tools.
+ */
+public interface ITarget {
+
+ /**
+ * Gets the name for the target.
+ *
+ * @return
+ */
+ public String getName();
+
+ /**
+ * Gets the parent for the target.
+ *
+ * @return
+ */
+ public ITarget getParent();
+
+ /**
+ * Returns the list of platform specific tools associated with this
+ * platform.
+ *
+ * @return
+ */
+ public ITool[] getTools();
+
+}
diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/ITool.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/ITool.java
new file mode 100644
index 00000000000..881048f9f16
--- /dev/null
+++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/ITool.java
@@ -0,0 +1,50 @@
+/**********************************************************************
+ * Copyright (c) 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.cdt.core.build.managed;
+
+/**
+ *
+ */
+public interface ITool {
+
+ /**
+ * Returns the name of the tool.
+ *
+ * @return
+ */
+ public String getName();
+
+ /**
+ * Return the target that defines this tool, if applicable
+ * @return
+ */
+ public ITarget getTarget();
+
+ /**
+ * Returns the tool that this tool inherits properties from.
+ * @return
+ */
+ public ITool getParent();
+
+ /**
+ * Returns the options that may be customized for this tool.
+ */
+ public IOption[] getOptions();
+
+ /**
+ * Options are organized into categories for UI purposes.
+ * These categories are organized into a tree. This is the root
+ * of that tree.
+ *
+ * @return
+ */
+ public IOptionCategory getTopOptionCategory();
+}
diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/ManagedBuildManager.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/ManagedBuildManager.java
new file mode 100644
index 00000000000..0d942a592a8
--- /dev/null
+++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/ManagedBuildManager.java
@@ -0,0 +1,165 @@
+/**********************************************************************
+ * Copyright (c) 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.cdt.core.build.managed;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.internal.core.build.managed.Target;
+import org.eclipse.cdt.internal.core.build.managed.Tool;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+
+/**
+ * This is the main entry point for getting at the build information
+ * for the managed build system.
+ */
+public class ManagedBuildManager {
+
+ /**
+ * Returns the list of platforms that are available to be used in
+ * conjunction with the given resource. Generally this will include
+ * platforms defined by extensions as well as platforms defined by
+ * the project and all projects this project reference.
+ *
+ * @param project
+ * @return
+ */
+ public static ITarget[] getAvailableTargets(IProject project) {
+ // Make sure the extensions are loaded
+ loadExtensions();
+
+ // Get the platforms for this project and all referenced projects
+
+ // Create the array and copy the elements over
+ ITarget[] targets = new ITarget[extensionTargets.size()];
+
+ for (int i = 0; i < extensionTargets.size(); ++i)
+ targets[i] = (ITarget)extensionTargets.get(i);
+
+ return targets;
+ }
+
+ /**
+ * Returns the list of configurations belonging to the given platform
+ * that can be applied to the given project. This does not include
+ * the configurations already applied to the project.
+ *
+ * @param resource
+ * @param platform
+ * @return
+ */
+ public static IConfiguration [] getAvailableConfigurations(IProject project, ITarget platform) {
+ return null;
+ }
+
+ /**
+ * Returns the list of configurations associated with the given project.
+ *
+ * @param project
+ * @return
+ */
+ public static IConfiguration [] getConfigurations(IProject project) {
+ return null;
+ }
+
+ /**
+ * Returns the list of configurations associated with a given file.
+ *
+ * @param file
+ * @return
+ */
+ public static IConfiguration[] getConfigurations(IFile file) {
+ return null;
+ }
+
+ /**
+ * Creates a configuration containing the tools defined by the target.
+ *
+ * @param target
+ * @param project
+ * @return
+ */
+ public static IConfiguration createConfiguration(IProject project, ITarget target) {
+ return null;
+ }
+
+ /**
+ * Creates a configuration that inherits from the parent configuration.
+ *
+ * @param origConfig
+ * @param resource
+ * @return
+ */
+ public static IConfiguration createConfiguration(IProject project, IConfiguration parentConfig) {
+ return null;
+ }
+
+ /**
+ * Sets the String value for an option.
+ *
+ * @param project
+ * @param config
+ * @param option
+ * @param value
+ */
+ public static void setOptionValue(IProject project, IConfiguration config, IOption option, String value) {
+ }
+
+ /**
+ * Sets the String List value for an option.
+ *
+ * @param project
+ * @param config
+ * @param option
+ * @param value
+ */
+ public static void setOptionValue(IProject project, IConfiguration config, IOption option, String[] value) {
+ }
+
+ // Private stuff
+
+ private static List extensionTargets;
+
+ private static void loadExtensions() {
+ if (extensionTargets != null)
+ return;
+
+ extensionTargets = new ArrayList();
+
+ IExtensionPoint extensionPoint
+ = CCorePlugin.getDefault().getDescriptor().getExtensionPoint("ManagedBuildInfo");
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for (int i = 0; i < extensions.length; ++i) {
+ IExtension extension = extensions[i];
+ IConfigurationElement[] elements = extension.getConfigurationElements();
+ for (int j = 0; j < elements.length; ++j) {
+ IConfigurationElement element = elements[j];
+ if (element.getName().equals("target")) {
+ Target target = new Target(element.getAttribute("name"));
+ extensionTargets.add(target);
+
+ IConfigurationElement[] targetElements = element.getChildren();
+ for (int k = 0; k < targetElements.length; ++k) {
+ IConfigurationElement platformElement = targetElements[k];
+ if (platformElement.getName().equals("tool")) {
+ Tool tool = new Tool(platformElement.getAttribute("name"), target);
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Configuration.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Configuration.java
new file mode 100644
index 00000000000..215a1fccc1f
--- /dev/null
+++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Configuration.java
@@ -0,0 +1,74 @@
+/**********************************************************************
+ * Copyright (c) 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.cdt.internal.core.build.managed;
+
+import org.eclipse.cdt.core.build.managed.IConfiguration;
+import org.eclipse.cdt.core.build.managed.ITarget;
+import org.eclipse.cdt.core.build.managed.ITool;
+
+/**
+ *
+ */
+public class Configuration implements IConfiguration {
+
+ private String name;
+ private ITarget platform;
+
+ public Configuration(ITarget platform) {
+ this.platform = platform;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.build.managed.IConfiguration#getName()
+ */
+ public String getName() {
+ return name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.build.managed.IConfiguration#setName(java.lang.String)
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.build.managed.IConfiguration#getPlatform()
+ */
+ public ITarget getPlatform() {
+ return platform;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.build.managed.IConfiguration#getTools()
+ */
+ public ITool[] getTools() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.build.managed.IConfiguration#getParent()
+ */
+ public IConfiguration getParent() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.build.managed.IConfiguration#getTarget()
+ */
+ public ITarget getTarget() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Target.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Target.java
new file mode 100644
index 00000000000..a09979ece39
--- /dev/null
+++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Target.java
@@ -0,0 +1,80 @@
+/**********************************************************************
+ * Copyright (c) 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.cdt.internal.core.build.managed;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.cdt.core.build.managed.ITarget;
+import org.eclipse.cdt.core.build.managed.ITool;
+
+/**
+ *
+ */
+public class Target implements ITarget {
+
+ private String name;
+ private Target parent;
+ private List tools;
+
+ public Target(String name) {
+ this.name = name;
+ }
+
+ public Target(String name, Target parent) {
+ this(name);
+ this.parent = parent;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public ITarget getParent() {
+ return parent;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ private int getNumTools() {
+ int n = (tools == null) ? 0 : tools.size();
+ if (parent != null)
+ n += parent.getNumTools();
+ return n;
+ }
+
+ private int addToolsToArray(ITool[] toolArray, int start) {
+ int n = start;
+ if (parent != null)
+ n = parent.addToolsToArray(toolArray, start);
+
+ if (tools != null) {
+ for (int i = 0; i < tools.size(); ++i)
+ toolArray[n++] = (ITool)tools.get(i);
+ }
+
+ return n;
+ }
+ public ITool[] getTools() {
+ ITool[] toolArray = new ITool[getNumTools()];
+ addToolsToArray(toolArray, 0);
+ return toolArray;
+ }
+
+ public void addTool(Tool tool) {
+ if (tools == null)
+ tools = new ArrayList();
+ tools.add(tool);
+ }
+
+}
diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Tool.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Tool.java
new file mode 100644
index 00000000000..a730f60b719
--- /dev/null
+++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Tool.java
@@ -0,0 +1,60 @@
+/**********************************************************************
+ * Copyright (c) 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.cdt.internal.core.build.managed;
+
+import org.eclipse.cdt.core.build.managed.IOption;
+import org.eclipse.cdt.core.build.managed.IOptionCategory;
+import org.eclipse.cdt.core.build.managed.ITarget;
+import org.eclipse.cdt.core.build.managed.ITool;
+
+/**
+ *
+ */
+public class Tool implements ITool {
+
+ private String name;
+ private ITarget target;
+
+ public Tool(String name) {
+ this.name = name;
+ }
+
+ public Tool(String name, Target target) {
+ this(name);
+ this.target = target;
+ target.addTool(this);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public ITarget getTarget() {
+ return target;
+ }
+
+ public IOption[] getOptions() {
+ return null;
+ }
+
+ public IOptionCategory getTopOptionCategory() {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.build.managed.ITool#getParent()
+ */
+ public ITool getParent() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/core/org.eclipse.cdt.core/plugin.xml b/core/org.eclipse.cdt.core/plugin.xml
index c5334414478..49eed1e7e82 100644
--- a/core/org.eclipse.cdt.core/plugin.xml
+++ b/core/org.eclipse.cdt.core/plugin.xml
@@ -11,9 +11,6 @@
-
-
-
@@ -30,12 +27,12 @@
-
+
@@ -76,20 +73,27 @@
id="org.eclipse.cdt.core.tool.strip">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [Enter description of this extension point.]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This is the id of the option category for this option. The id can be the id of the tool which is also a category.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a type of resource that is the target of the build process, for example, a Linux Library. A target contains a sequence of tool definitions. Targets are arranged in an inheritance hierarchy where a target inherits the list of tools from it's parent and can add to or override tools in this list.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This is a UI property. If set to true, users should not be able to create project configurations targeted at this target.
+
+
+
+
+
+
+ The id of a target that this tool inherits from.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [Enter the first release in which this extension point appears.]
+
+
+
+
+
+
+
+
+ [Enter extension point usage example here.]
+
+
+
+
+
+
+
+
+ [Enter API information here.]
+
+
+
+
+
+
+
+
+ [Enter information about supplied implementation of this extension point.]
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/core/org.eclipse.cdt.ui.tests/.classpath b/core/org.eclipse.cdt.ui.tests/.classpath
index a7f81b4612e..aaf50e51e23 100644
--- a/core/org.eclipse.cdt.ui.tests/.classpath
+++ b/core/org.eclipse.cdt.ui.tests/.classpath
@@ -1,19 +1,24 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
+
+
diff --git a/core/org.eclipse.cdt.ui.tests/.project b/core/org.eclipse.cdt.ui.tests/.project
index fe655272354..c82a6b0fafc 100644
--- a/core/org.eclipse.cdt.ui.tests/.project
+++ b/core/org.eclipse.cdt.ui.tests/.project
@@ -5,12 +5,17 @@
org.apache.xercesorg.eclipse.cdt.core
+ org.eclipse.cdt.core.linux
+ org.eclipse.cdt.core.qnx
+ org.eclipse.cdt.core.solaris
+ org.eclipse.cdt.core.win32org.eclipse.cdt.uiorg.eclipse.core.bootorg.eclipse.core.resourcesorg.eclipse.core.runtimeorg.eclipse.swtorg.eclipse.ui
+ org.eclipse.update.coreorg.junit
diff --git a/core/org.eclipse.cdt.ui.tests/build/org/eclipse/cdt/core/build/managed/tests/AllBuildTests.java b/core/org.eclipse.cdt.ui.tests/build/org/eclipse/cdt/core/build/managed/tests/AllBuildTests.java
new file mode 100644
index 00000000000..e2fe007b753
--- /dev/null
+++ b/core/org.eclipse.cdt.ui.tests/build/org/eclipse/cdt/core/build/managed/tests/AllBuildTests.java
@@ -0,0 +1,56 @@
+/**********************************************************************
+ * Copyright (c) 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.cdt.core.build.managed.tests;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.cdt.core.build.managed.ITarget;
+import org.eclipse.cdt.core.build.managed.ITool;
+import org.eclipse.cdt.core.build.managed.ManagedBuildManager;
+
+/**
+ *
+ */
+public class AllBuildTests extends TestCase {
+
+ public AllBuildTests(String name) {
+ super(name);
+ }
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite();
+
+ suite.addTest(new AllBuildTests("testExtensions"));
+
+ return suite;
+ }
+
+ public void testThatAlwaysFails() {
+ assertTrue(false);
+ }
+
+ /**
+ * Navigates through the build info as defined in the extensions
+ * defined in this plugin
+ */
+ public void testExtensions() {
+ // Note secret null parameter which means just extensions
+ ITarget[] targets = ManagedBuildManager.getAvailableTargets(null);
+
+ ITarget target = targets[0];
+ assertEquals(target.getName(), "Linux");
+ ITool[] tools = target.getTools();
+ ITool tool = tools[0];
+ assertEquals(tool.getName(), "Compiler");
+ }
+}
diff --git a/core/org.eclipse.cdt.ui.tests/plugin.xml b/core/org.eclipse.cdt.ui.tests/plugin.xml
index 51b31b1f6d7..14dc646b32c 100644
--- a/core/org.eclipse.cdt.ui.tests/plugin.xml
+++ b/core/org.eclipse.cdt.ui.tests/plugin.xml
@@ -24,4 +24,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+