diff --git a/core/org.eclipse.cdt.core/builder/org/eclipse/cdt/core/builder/BuilderModel.java b/core/org.eclipse.cdt.core/builder/org/eclipse/cdt/core/builder/BuilderModel.java
index ca9c3571c39..0ff359c0822 100644
--- a/core/org.eclipse.cdt.core/builder/org/eclipse/cdt/core/builder/BuilderModel.java
+++ b/core/org.eclipse.cdt.core/builder/org/eclipse/cdt/core/builder/BuilderModel.java
@@ -26,14 +26,14 @@ public class BuilderModel {
public static String getBuilderId () {
return BUILDER_ID;
}
-
+/*
public IBuildPath getBuildPath(IProject project) {
return null;
}
public void setBuildPath(IProject project, IBuildPath bp) {
}
-
+*/
public void addBuildListener () {
}
diff --git a/core/org.eclipse.cdt.core/builder/org/eclipse/cdt/core/builder/CIncrementalBuilder.java b/core/org.eclipse.cdt.core/builder/org/eclipse/cdt/core/builder/CIncrementalBuilder.java
new file mode 100644
index 00000000000..6e28ae54d50
--- /dev/null
+++ b/core/org.eclipse.cdt.core/builder/org/eclipse/cdt/core/builder/CIncrementalBuilder.java
@@ -0,0 +1,76 @@
+package org.eclipse.cdt.core.builder;
+
+import java.util.Map;
+
+import org.eclipse.cdt.core.resources.IConsole;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+/*
+ * (c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ */
+
+/**
+ *
+ * Note: This class/interface is part of an interim API that is still under development and
+ * expected to change significantly before reaching stability. It is being made available at
+ * this early stage to solicit feedback from pioneering adopters on the understanding that any
+ * code that uses this API will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public class CIncrementalBuilder extends IncrementalProjectBuilder {
+ int kind;
+ Map args;
+ IProgressMonitor monitor;
+
+ public int getkind() {
+ return kind;
+ }
+
+ public Map getMap() {
+ return args;
+ }
+
+ public IProgressMonitor monitor() {
+ return monitor;
+ }
+
+ //FIXME: Not implemented
+ public IConsole getConsole() {
+ ICBuilder builder = getCBuilder();
+ String id = builder.getID();
+ return null;
+ }
+
+ //FIXME: Not implemented
+ public IPath getBuildDirectory() {
+ return getProject().getLocation();
+ }
+
+ //FIXME: Not implemented
+ public String[] getBuildParameters() {
+ return new String[0];
+ }
+
+ protected IProject[] build(int kind, Map args, IProgressMonitor monitor)
+ throws CoreException {
+
+ this.kind = kind;
+ this.args = args;
+ this.monitor = monitor;
+
+ // Get the ICBuilder
+ ICBuilder cbuilder = getCBuilder();
+
+ // FIXME: Check preference for non-modal builds
+ return cbuilder.build(this);
+ }
+
+ //FIXME: Not implemented
+ private ICBuilder getCBuilder () {
+ return null;
+ }
+}
diff --git a/core/org.eclipse.cdt.core/builder/org/eclipse/cdt/core/builder/IBuildPath.java b/core/org.eclipse.cdt.core/builder/org/eclipse/cdt/core/builder/IBuildPath.java
deleted file mode 100644
index 024d0e89b69..00000000000
--- a/core/org.eclipse.cdt.core/builder/org/eclipse/cdt/core/builder/IBuildPath.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package org.eclipse.cdt.core.builder;
-
-/*
- * (c) Copyright QNX Software Systems Ltd. 2002.
- * All Rights Reserved.
- */
-import org.eclipse.core.runtime.IPath;
-
-/**
- * A BuildPath can contain the following:
- * - EXTRA_INCVPATH: a list of path to look for include files
- *
- EXTRA_LIBVPATH: a list of path to search for libraries
- *
- EXTRA_SRCVPATH: a list of path to search for files
- *
- LIBS: a list of libraries to link
-
- *
- CPPFLAGS: C Preprocessor options
- *
- CPP: C Preprocessor cmd
-
- *
- CFLAGS: C options
- *
- CC: C cmd
-
- *
- CXXFLAGS: C++ Preprocessor options
- *
- CXX: C++ cmd
-
- *
- ARFLAGS: archive options
- *
- AR: archiver cmd
-
- *
- LDFLAGS: linker options
- *
- LD: linker cmd
-
- *
- ASFLAGS: assembly options
- *
- AS: assembly cmd
-
- *
- */
-
-public interface IBuildPath {
-
- public String[] getCPPOpts();
- public String[] getCPPFlags();
- public void setCPP(IPath p);
- public void setCPPOpts(String[] s);
- public void setCPPFlags(String[] s);
-
- public IPath getCXX();
- public String[] getCXXOPT();
- public String[] getCXXFlags();
- public void setCXX(IPath p);
- public void setCXXOpts(String[] s);
- public void setCXXFlags(String[] s);
-
- public IPath getCC();
- public String[] getCFLAGS();
- public String[] getCOpts();
- public void setCFLAGS(String[] s);
- public void setCOpts(String[] s);
- public void setCC(IPath p);
-
- public IPath getAS();
- public String[] getASFlags();
- public String[] getASOpts();
- public void getAS(IPath p);
- public void getASOpts(String[] s);
- public void getASFlags(String[] s);
-
- public IPath getLD();
- public String[] getLDOpts();
- public String[] getLDFlags();
- public void setLD(IPath p);
- public void setLDOpts(String[] s);
- public void setLDFlags(String[] s);
-
- public IPath getAR();
- public String[] getARFlags();
- public String[] getAROpts();
- public void setAR(IPath p);
- public void setAROpts(String[] s);
- public void setARFlags(String[] s);
-
- public IPath[] getIncVPath();
- public void setIncVPath(IPath[] p);
-
- public IPath[] getLibs();
- public void setLibs(IPath[] p);
-
- public IPath[] getLibVPath();
- public void setLibVPath(IPath[] p);
-
- public IPath[] getSRCVPath();
- public void setSRCVPath(IPath[] p);
-}
diff --git a/core/org.eclipse.cdt.core/builder/org/eclipse/cdt/core/builder/ICBuilder.java b/core/org.eclipse.cdt.core/builder/org/eclipse/cdt/core/builder/ICBuilder.java
new file mode 100644
index 00000000000..3aa90aedffe
--- /dev/null
+++ b/core/org.eclipse.cdt.core/builder/org/eclipse/cdt/core/builder/ICBuilder.java
@@ -0,0 +1,80 @@
+package org.eclipse.cdt.core.builder;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
+
+/*
+ * (c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ */
+
+/**
+ *
+ * This class provides the infrastructure for defining a builder and fulfills the contract
+ * specified by the org.eclipse.cdt.core.cbuilder standard extension point.
+
+ * Note: This class/interface is part of an interim API that is still under development and
+ * expected to change significantly before reaching stability. It is being made available at
+ * this early stage to solicit feedback from pioneering adopters on the understanding that any
+ * code that uses this API will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface ICBuilder {
+ /**
+ * return the search include path list.
+ * @return IPath[]
+ */
+ IPath[] getIncludePaths();
+
+ /**
+ * Change the search include path lists.
+ * @params IPath[]
+ */
+ void setIncludePaths(IPath[] incPaths);
+
+ /**
+ * return the search library path list.
+ * @return IPath[]
+ */
+ IPath[] getLibraryPaths();
+
+ /**
+ * Change the search library path lists.
+ * @params IPath[]
+ */
+ void setLibraryPaths(IPath[] libPaths);
+
+ /**
+ * return the list of libraries use.
+ * @return String[]
+ */
+ String[] getLibraries();
+
+ /**
+ * Change the libraries.
+ * @params String[]
+ */
+ void setLibraries(String[] libs);
+
+ /**
+ * Get the Optimization level.
+ * @params String[]
+ */
+ IOptimization getOptimization();
+
+ /**
+ * Change the Optimization level.
+ * @params String[]
+ */
+ void setOptimization();
+
+ /**
+ * Build the project.
+ */
+ IProject[] build(CIncrementalBuilder cbuilder);
+
+ /**
+ * Method getID.
+ * @return String
+ */
+ String getID();
+}
diff --git a/core/org.eclipse.cdt.core/builder/org/eclipse/cdt/core/builder/IOptimization.java b/core/org.eclipse.cdt.core/builder/org/eclipse/cdt/core/builder/IOptimization.java
new file mode 100644
index 00000000000..5e158345689
--- /dev/null
+++ b/core/org.eclipse.cdt.core/builder/org/eclipse/cdt/core/builder/IOptimization.java
@@ -0,0 +1,20 @@
+package org.eclipse.cdt.core.builder;
+
+/*
+ * (c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ */
+
+/**
+ *
+ * Note: This class/interface is part of an interim API that is still under development and
+ * expected to change significantly before reaching stability. It is being made available at
+ * this early stage to solicit feedback from pioneering adopters on the understanding that any
+ * code that uses this API will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public interface IOptimization {
+ String getDescription(int level);
+ int getCurrentLevel();
+ void setCurrentLevel(int level);
+ int[] getLevels();
+}