[analyzer] Handle relative file paths in compilation database #3587
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Let's suppose that we have the following directory stucture:
And all the file paths in the compilation database are relative:
If we run the
CodeChecker analyze
command on this project, ClangSA analyzerwill generate a plist file where the file path will be relative to the directory
where the analyzer was called on.
After the plist files are produced, report converter will try to post-process these
files and creates absolute paths from the relative paths.
With this patch now we will create absolute paths based on the following values:
os.getcwd()
) where the CodeChecker command was executed.directory
key from the build action (in the example above it is.
).If any of the above mentioned values are already absolute paths during the join it will
skip the previous values from the file path.