Skip to main content
summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorDavid Daoust2006-08-25 19:56:22 +0000
committerDavid Daoust2006-08-25 19:56:22 +0000
commit370cc286cd9639d73f712c6e9a4f52dfe64b673d (patch)
treeb1c91ac6c09641735e75bd8ee77cc7a4784fdaf1 /build
parent72add29233e4edd55ea9d62b4ec95858d7a102c9 (diff)
downloadorg.eclipse.cdt-370cc286cd9639d73f712c6e9a4f52dfe64b673d.tar.gz
org.eclipse.cdt-370cc286cd9639d73f712c6e9a4f52dfe64b673d.tar.xz
org.eclipse.cdt-370cc286cd9639d73f712c6e9a4f52dfe64b673d.zip
Fix for 155088
Diffstat (limited to 'build')
-rw-r--r--build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCPerFileBOPConsoleParser.java21
1 files changed, 16 insertions, 5 deletions
diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCPerFileBOPConsoleParser.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCPerFileBOPConsoleParser.java
index 95d28377180..2e5126a63ff 100644
--- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCPerFileBOPConsoleParser.java
+++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCPerFileBOPConsoleParser.java
@@ -147,16 +147,27 @@ public class GCCPerFileBOPConsoleParser extends AbstractGCCBOPConsoleParser {
}
CCommandDSC cmd = fUtil.getNewCCommandDSC(genericLine.toString(), extensionsIndex > 0);
- IPath buildDirectory = fUtil.getWorkingDirectory();
- if (buildDirectory.isPrefixOf(pFilePath)) {
+ IPath baseDirectory = fUtil.getBaseDirectory();
+ if (baseDirectory.isPrefixOf(pFilePath)) {
List cmdList = new ArrayList();
cmdList.add(cmd);
Map sc = new HashMap(1);
sc.put(ScannerInfoTypes.COMPILER_COMMAND, cmdList);
- IPath relPath = pFilePath.removeFirstSegments(buildDirectory.segmentCount());
- IFile file = getProject().getFile(relPath);
- getCollector().contributeToScannerConfig(file, sc);
+ IPath relPath = pFilePath.removeFirstSegments(baseDirectory.segmentCount());
+ //Note: We add the scannerconfig even if the resource doesnt actually
+ //exist below this project (which may happen when reading existing
+ //build logs, because resources can be created as part of the build
+ //and may not exist at the time of analyzing the config but re-built
+ //later on.
+ //if (getProject().exists(relPath)) {
+ IFile file = getProject().getFile(relPath);
+ getCollector().contributeToScannerConfig(file, sc);
+ } else {
+ //TODO limiting to pathes below this project means not being
+ //able to work with linked resources. Linked resources could
+ //be checked through IWorkspaceRoot.findFilesForLocation().
+ TraceUtil.outputError("Build command for file outside project: "+pFilePath.toString(), line); //$NON-NLS-1$
}
// fUtil.addGenericCommandForFile2(longFileName, genericLine);
}

Back to the top