From 7a2e4aeffed4c0852ad091f1a8303a516abd5e5e Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Thu, 30 Jul 2009 23:54:13 +0000 Subject: [PATCH] bug 281042: Allow artifact name with spaces patch from Vladimir Prus --- .../makegen/gnu/GnuMakefileGenerator.java | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java index d3dfbf65e08..cd858cdcfd8 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java @@ -1375,7 +1375,8 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 { if (targetTool != null) { outputPrefix = targetTool.getOutputPrefix(); } - buffer.append(defaultTarget + WHITESPACE + outputPrefix + buildTargetName); + buffer.append(defaultTarget + WHITESPACE + outputPrefix + + ensurePathIsGNUMakeTargetRuleCompatibleSyntax(buildTargetName)); if (buildTargetExt.length() > 0) { buffer.append(DOT + buildTargetExt); } @@ -1539,7 +1540,11 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 { boolean[] buildToolsUsed = h.buildToolsUsed; // Get the target tool and generate the rule if (targetTool != null) { - if (addRuleForTool(targetTool, buffer, true, buildTargetName, buildTargetExt, + // Note that the name of the target we pass to addRuleForTool does not + // appear to be used there (and tool outputs are consulted directly), but + // we quote it anyway just in case it starts to use it in future. + if (addRuleForTool(targetTool, buffer, true, + ensurePathIsGNUMakeTargetRuleCompatibleSyntax(buildTargetName), buildTargetExt, outputVarsAdditionsList, managedProjectOutputs, postbuildStep)) { // Mark the target tool as processed for (int i=0; i 0) { - buffer.append(DOT + buildTargetExt); + completeBuildTargetName = completeBuildTargetName + DOT + buildTargetExt; + } + if (completeBuildTargetName.contains(" ")) { + buffer.append(WHITESPACE + "\"" + completeBuildTargetName + "\""); + } else { + buffer.append(WHITESPACE + completeBuildTargetName); } buffer.append(NEWLINE); buffer.append(TAB + DASH + AT + ECHO_BLANK_LINE + NEWLINE); @@ -1640,15 +1650,20 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 { String outflag = tool.getOutputFlag(); String primaryOutputs = EMPTY_STRING; + String primaryOutputsQuoted = EMPTY_STRING; boolean first = true; for (int i=0; i