From a415f360112c778d7111a47e3604eac489675533 Mon Sep 17 00:00:00 2001 From: Mikhail Sennikovsky Date: Thu, 31 May 2007 13:31:39 +0000 Subject: [PATCH] 1. Fix for the [Bug 189301] Regression: Build Make Target adds -k flag 2. additional small bug-fixes to the custom builder mechanism --- .../managedbuilder/internal/core/Builder.java | 8 +++++- .../internal/core/BuilderFactory.java | 26 +++++++++++++++---- 2 files changed, 28 insertions(+), 6 deletions(-) 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 c5ea71915c9..58ce88063cc 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 @@ -873,7 +873,7 @@ public class Builder extends BuildObject implements IBuilder, IMatchKeyProvider } if (getArgumentsAttribute() != null) { - element.setAttribute(IBuilder.ARGUMENTS, getArgumentsAttribute()); + element.setAttribute(IBuilder.ARGUMENTS, getArguments/*Attribute*/()); } if(getAutoBuildTargetAttribute() != null) @@ -990,6 +990,12 @@ public class Builder extends BuildObject implements IBuilder, IMatchKeyProvider String stopOnErrCmd = getStopOnErrCmd(isStopOnError()); String parallelBuildCmd = isParallelBuildOn() ? getParallelizationCmd(getParallelizationNum()) : EMPTY_STRING; + String reversedStopOnErrCmd = getStopOnErrCmd(!isStopOnError()); + String reversedParallelBuildCmd = !isParallelBuildOn() ? getParallelizationCmd(getParallelizationNum()) : EMPTY_STRING; + + args = removeCmd(args, reversedStopOnErrCmd); + args = removeCmd(args, reversedParallelBuildCmd); + args = addCmd(args, stopOnErrCmd); args = addCmd(args, parallelBuildCmd); 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 b3aeaa699ea..d6251e60ef9 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 @@ -59,6 +59,7 @@ public class BuilderFactory { static final String CONTENTS_BUILDER = PREFIX + ".builder"; //$NON-NLS-1$ static final String CONTENTS_BUILDER_CUSTOMIZATION = PREFIX + ".builderCustomization"; //$NON-NLS-1$ static final String CONTENTS_CONFIGURATION_IDS = PREFIX + ".configurationIds"; //$NON-NLS-1$ + static final String CONTENTS_ACTIVE_CFG_SETTINGS = PREFIX + ".activeConfigSettings"; //$NON-NLS-1$ // static final String IDS = PREFIX + ".ids"; //$NON-NLS-1$ static final String CONFIGURATION_IDS = PREFIX + ".configurationIds"; //$NON-NLS-1$ @@ -227,7 +228,10 @@ public class BuilderFactory { Boolean d = Boolean.valueOf(builder.isDefaultBuildCmd()); el.setAttribute(BuilderFactory.USE_DEFAULT_BUILD_CMD, d.toString()); - return el.toStringMap(); + Map map = el.toStringMap(); + map.put(CONTENTS, CONTENTS_ACTIVE_CFG_SETTINGS); + + return map; } public static IBuilder createCustomBuilder(IConfiguration cfg, String builderId) throws CoreException{ @@ -311,9 +315,14 @@ public class BuilderFactory { args.remove(ErrorParserManager.PREF_ERROR_PARSER); tmp = (String)args.get(USE_DEFAULT_BUILD_CMD); - if(tmp != null && Boolean.valueOf(tmp).equals(Boolean.TRUE)){ - args.remove(IMakeCommonBuildInfo.BUILD_COMMAND); - args.remove(IMakeCommonBuildInfo.BUILD_ARGUMENTS); + if(tmp != null){ + if(Boolean.valueOf(tmp).equals(Boolean.TRUE)){ + args.remove(IMakeCommonBuildInfo.BUILD_COMMAND); + args.remove(IMakeCommonBuildInfo.BUILD_ARGUMENTS); + } else { + args.put(IBuilder.ATTRIBUTE_IGNORE_ERR_CMD, ""); + args.put(IBuilder.ATTRIBUTE_PARALLEL_BUILD_CMD, ""); + } } //end adjusting settings @@ -349,7 +358,13 @@ public class BuilderFactory { builder = createBuilder(cfg, args, true); } builders = new IBuilder[]{builder}; - //TODO: + } else if (CONTENTS_ACTIVE_CFG_SETTINGS.equals(type)) { + IConfiguration cfg = info.getDefaultConfiguration(); + + IBuilder builder = cfg.getEditableBuilder(); + + builders = new IBuilder[]{builder}; + } else if (CONTENTS_BUILDER.equals(type)){ IConfiguration cfgs[] = configsFromMap(args, info); if(cfgs.length != 0){ @@ -416,6 +431,7 @@ public class BuilderFactory { } return NO_CHANGES; } + public static boolean applyBuilder(ICommand cmd, IBuilder builder) { Map oldMap = cmd.getArguments(); Map map = builderBuildArgsMap(builder);