Do not add duplicate json files to compilation db #16
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.
The list of temporary compile command json files generated on build events can have many duplicates. This PR deduplicates that list before building up the compilation db.
This can lead to massive reductions in size (100x in my case). The raw list was something like 500k files, with only 3600 of them being unique. The resulting
compile_commands.json
is substantially smaller -- with duplicates, I've seen it as large as 11GB for my configuration; with this change, it is 166MBclangd
doesn't cope well with a large and heavily duplicated json file, and tends to run out of memory.