diff --git a/build/org.eclipse.cdt.managedbuilder.ui/plugin.properties b/build/org.eclipse.cdt.managedbuilder.ui/plugin.properties
index 1699f1cf4d9..b4d0f9f1199 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/plugin.properties
+++ b/build/org.eclipse.cdt.managedbuilder.ui/plugin.properties
@@ -51,3 +51,5 @@ CDTExpPathSymbolsProperty.name=C/C++ Export settings
CDTBuildProperty.name=C/C++ Build settings
CDTToolchainProperty.name=C/C++ ToolChain edit
CDTVariablesProperty.name=C/C++ Build variables
+
+BuildCfgMenu.label=Build configurations
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml b/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml
index 7ca513f50b3..310e3255a21 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml
+++ b/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml
@@ -82,7 +82,18 @@
value="org.eclipse.cdt.managedbuilder.core.managedBuildNature">
-
+
+
+
+
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/actions/BuildAllAction.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/actions/BuildAllAction.java
new file mode 100644
index 00000000000..a8346cd3b29
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/actions/BuildAllAction.java
@@ -0,0 +1,218 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Intel Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Intel Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.ui.actions;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.cdt.core.model.CoreModel;
+import org.eclipse.cdt.core.model.ICProject;
+import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
+import org.eclipse.cdt.core.settings.model.ICProjectDescription;
+import org.eclipse.cdt.managedbuilder.core.IConfiguration;
+import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
+import org.eclipse.cdt.managedbuilder.ui.newui.Messages;
+import org.eclipse.cdt.ui.CUIPlugin;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuCreator;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowPulldownDelegate2;
+import org.eclipse.ui.actions.ActionDelegate;
+import org.eclipse.ui.dialogs.ListSelectionDialog;
+
+/**
+ * Action which changes active build configuration of the current project to
+ * the given one.
+ */
+public class BuildAllAction extends ActionDelegate implements
+IWorkbenchWindowPulldownDelegate2, IObjectActionDelegate, IMenuCreator {
+
+ private static final String TIP_ALL = Messages.getString("BuildAllAction.0");//$NON-NLS-1$
+ private static final String LBL_ALL = Messages.getString("BuildAllAction.1");//$NON-NLS-1$
+ private static final String JOB_MSG = Messages.getString("BuildAllAction.2");//$NON-NLS-1$
+ private static final String ERR_MSG = Messages.getString("BuildAllAction.3");//$NON-NLS-1$
+ private static final String LBL_SEL = Messages.getString("BuildAllAction.4");//$NON-NLS-1$
+ private static final String TIP_SEL = Messages.getString("BuildAllAction.5");//$NON-NLS-1$
+ private static final String DLG_TEXT = Messages.getString("BuildAllAction.6");//$NON-NLS-1$
+ private static final String DLG_TITLE = Messages.getString("BuildAllAction.7");//$NON-NLS-1$
+
+ protected ArrayList projects = null;
+ private ActionContributionItem it_all = null;
+ private ActionContributionItem it_sel = null;
+
+ public void selectionChanged(IAction action, ISelection selection) {
+ projects = null;
+
+ if (!selection.isEmpty()) {
+ // case for context menu
+ if (selection instanceof IStructuredSelection) {
+ Object[] obs = ((IStructuredSelection)selection).toArray();
+ if (obs.length > 0) {
+ for (int i=0; i 0) {
+ if (projects == null) projects = new ArrayList();
+ projects.add(prj);
+ }
+ }
+ }
+ }
+ }
+ }
+ action.setEnabled(projects != null);
+ if (projects != null && it_sel != null)
+ it_sel.getAction().setEnabled(projects.size() == 1);
+ action.setMenuCreator(this);
+ }
+
+ public void run(IAction action) {} // do nothing - show menus only
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) {}
+
+ // doing nothing
+ public void dispose() { projects = null; }
+ public void init(IWorkbenchWindow window) { }
+
+ private static final class BuildFilesJob extends Job {
+ Object[] cfs;
+
+ BuildFilesJob(Object[] _cfs) {
+ super(JOB_MSG + ((ICConfigurationDescription)_cfs[0]).getProjectDescription().getName());
+ cfs = _cfs;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ protected IStatus run(IProgressMonitor monitor) {
+ IConfiguration[] cf = new IConfiguration[cfs.length];
+ for (int i=0; i>
+BuildAllAction.0=Build all project configurations in parallel
+BuildAllAction.1=All
+BuildAllAction.2=Building project
+BuildAllAction.3=Build error
+BuildAllAction.4=Select...
+BuildAllAction.5=Build selected configurations in parallel
+BuildAllAction.6=Select configurations to build
+BuildAllAction.7=Build configurations