1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-08 02:06:01 +02:00

Fix for 102709: Conversion to LONG_NAME/SHORT_NAME in GCCPerFileBOPConsoleParser causes problems.

Conversion to a generic command line now excludes -include and -imacros options.
This commit is contained in:
Vladimir Hirsl 2005-07-05 20:06:28 +00:00
parent 6c71187540
commit 6833f73fa5
2 changed files with 37 additions and 18 deletions

View file

@ -58,6 +58,7 @@ public abstract class AbstractGCCBOPConsoleParser implements IScannerInfoConsole
* @return String[]
*/
public String[] getCompilerCommands() {
if (project != null) {
SCProfileInstance profileInstance = ScannerConfigProfileManager.getInstance().
getSCProfileInstance(project, ScannerConfigProfileManager.NULL_PROFILE_ID);
BuildOutputProvider boProvider = profileInstance.getProfile().getBuildOutputProviderElement();
@ -73,6 +74,7 @@ public abstract class AbstractGCCBOPConsoleParser implements IScannerInfoConsole
}
}
}
}
return COMPILER_INVOCATION;
}

View file

@ -125,10 +125,27 @@ public class GCCPerFileBOPConsoleParser extends AbstractGCCBOPConsoleParser {
if (fUtil != null) {
IPath pFilePath = fUtil.getAbsolutePath(filePath);
String shortFileName = pFilePath.removeFileExtension().lastSegment();
String genericLine = line.replaceAll(filePath, "LONG_NAME"); //$NON-NLS-1$
genericLine = genericLine.replaceAll(shortFileName+"\\.", "SHORT_NAME\\."); //$NON-NLS-1$ //$NON-NLS-2$
CCommandDSC cmd = fUtil.getNewCCommandDSC(genericLine, extensionsIndex > 0);
// generalize occurances of the file name
StringBuffer genericLine = new StringBuffer();
for (int i = 0; i < split.length; i++) {
String token = split[i];
if (token.equals("-include") || token.equals("-imacros")) { //$NON-NLS-1$ //$NON-NLS-2$
++i;
genericLine.append(token);
genericLine.append(' ');
}
else if (token.equals(filePath)) {
split[i] = "LONG_NAME"; //$NON-NLS-1$
}
else if (token.startsWith(shortFileName)) {
split[i] = token.replaceFirst(shortFileName, "SHORT_NAME"); //$NON-NLS-1$
}
genericLine.append(split[i]);
genericLine.append(' ');
}
CCommandDSC cmd = fUtil.getNewCCommandDSC(genericLine.toString(), extensionsIndex > 0);
if (getProject().getLocation().isPrefixOf(pFilePath)) {
List cmdList = new ArrayList();
cmdList.add(cmd);