Print an entry in the compilation database for each input file #2673
+36
−14
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.
Targets which use multiple input files only have their first input file show up in the compilation database. This can cause issues with tools that build a list of files to inspect from the compilation database. For example, when using the Swift programming language together with the SourceKit-LSP language server, only one source file from each Swift module gets processed correctly by the language server using the current compilation database output from Ninja, because Swift modules are compiled with one compiler invocation and therefore one Ninja target for the whole module.
This changes the compilation database formatter to emit one entry for each input file of a target instead of just the first input file, which makes tools able to pick up all the input files used in the build.
Fixes #1590.
See also mesonbuild/meson#14264.