diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java index 231e67c22b1..a1a2a8cd427 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java @@ -2065,12 +2065,20 @@ public class Builder extends BuildObject implements IBuilder, IMatchKeyProvider else if(!cfg.supportsBuild(false)) return true; } + + Boolean attr = getManagedBuildOnAttribute(); + if(attr != null) + return attr.booleanValue(); + return true; + } + + public Boolean getManagedBuildOnAttribute(){ if(managedBuildOn == null){ if(superClass != null) - return superClass.isManagedBuildOn(); - return true; + return ((Builder)superClass).getManagedBuildOnAttribute(); + return null; } - return managedBuildOn.booleanValue(); + return managedBuildOn; } public void setManagedBuildOn(boolean on) throws CoreException { diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/BuilderFactory.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/BuilderFactory.java index f31d2fc5391..1f87a644260 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/BuilderFactory.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/BuilderFactory.java @@ -278,9 +278,17 @@ public class BuilderFactory { args.put(IBuilder.ID, ManagedBuildManager.calculateChildId(cfg.getId(), null)); MapStorageElement el = new BuildArgsStorageElement(args, null); Builder builder = new Builder(tCh, el, ManagedBuildManager.getVersion().toString()); + IBuilder cfgBuilder = cfg.getEditableBuilder(); if(builder.getBuildPathAttribute() == null){ //set the build path from the cfg settings - builder.setBuildPath(cfg.getEditableBuilder().getBuildPath()); + builder.setBuildPath(cfgBuilder.getBuildPath()); + } + if(builder.getManagedBuildOnAttribute() == null){ + try { + builder.setManagedBuildOn(cfgBuilder.isManagedBuildOn()); + } catch (CoreException e) { + ManagedBuilderCorePlugin.log(e); + } } return builder; }