mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-15 20:25:46 +02:00
Bug 551089 - Builds with libraries having spaces in the name fail
- add new checkIfQuotedOption() method to GnuMakefileGenerator - have ensurePathIsGNUMakeTargetRuleCompatibleSyntax() look to see if the path is actually an option with path in which case if it is quoted, do not try to escape white space Change-Id: I67a286962ba67acb75d1f8c29cac47069ab07353
This commit is contained in:
parent
b52b03a9bc
commit
232e3d7153
1 changed files with 23 additions and 1 deletions
|
@ -38,6 +38,8 @@ import java.util.List;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.CCorePlugin;
|
import org.eclipse.cdt.core.CCorePlugin;
|
||||||
import org.eclipse.cdt.core.settings.model.CSourceEntry;
|
import org.eclipse.cdt.core.settings.model.CSourceEntry;
|
||||||
|
@ -111,6 +113,9 @@ import org.eclipse.core.runtime.SubProgressMonitor;
|
||||||
public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
|
public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
|
||||||
private static final IPath DOT_SLASH_PATH = new Path("./"); //$NON-NLS-1$
|
private static final IPath DOT_SLASH_PATH = new Path("./"); //$NON-NLS-1$
|
||||||
|
|
||||||
|
private Pattern doubleQuotedOption = Pattern.compile("--?[a-zA-Z]+.*?\\\".*?\\\".*"); //$NON-NLS-1$
|
||||||
|
private Pattern singleQuotedOption = Pattern.compile("--?[a-zA-Z]+.*?'.*?'.*"); //$NON-NLS-1$
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class walks the delta supplied by the build system to determine
|
* This class walks the delta supplied by the build system to determine
|
||||||
* what resources have been changed. The logic is very simple. If a
|
* what resources have been changed. The logic is very simple. If a
|
||||||
|
@ -3482,6 +3487,7 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
|
||||||
String nextToken = tokenIter.next();
|
String nextToken = tokenIter.next();
|
||||||
token += WHITESPACE + nextToken;
|
token += WHITESPACE + nextToken;
|
||||||
if (!nextToken.endsWith("\\")) { //$NON-NLS-1$
|
if (!nextToken.endsWith("\\")) { //$NON-NLS-1$
|
||||||
|
//$NON-NLS-1$
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4478,7 +4484,23 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
|
||||||
*/
|
*/
|
||||||
/* see https://bugs.eclipse.org/bugs/show_bug.cgi?id=129782 */
|
/* see https://bugs.eclipse.org/bugs/show_bug.cgi?id=129782 */
|
||||||
public String ensurePathIsGNUMakeTargetRuleCompatibleSyntax(String path) {
|
public String ensurePathIsGNUMakeTargetRuleCompatibleSyntax(String path) {
|
||||||
return escapeWhitespaces(ensureUnquoted(path));
|
boolean isQuotedOption = false;
|
||||||
|
if (path.startsWith("-")) { //$NON-NLS-1$
|
||||||
|
isQuotedOption = checkIfQuotedOption(path);
|
||||||
|
}
|
||||||
|
if (!isQuotedOption)
|
||||||
|
return escapeWhitespaces(ensureUnquoted(path));
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean checkIfQuotedOption(String path) {
|
||||||
|
Matcher m1 = doubleQuotedOption.matcher(path);
|
||||||
|
if (m1.matches())
|
||||||
|
return true;
|
||||||
|
Matcher m2 = singleQuotedOption.matcher(path);
|
||||||
|
if (m2.matches())
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue