compile_commands.json is used by LSPs (e.g. `clangd` in VS Code) for code navigation. `merge-compdb.py`, called by `configure.py`, merges these files from Scylla, Seastar, and Abseil. The script filters entries by checking the output attribute against a given prefix. This is needed because Scylla’s compile_commands.json is generated by Ninja and includes all build modes, in case the user specified multiple ones in the call to configure.py. Seastar and Abseil databases, generated by CMake, used to omit the output attribute, so filtering did not apply. Starting with `CMake 3.20+`, output attributes are now included and do not match the expected prefix. For example, they could be of the form `absl/synchronization/CMakeFiles/synchronization.dir/internal/futex_waiter.cc.o`. This causes relevant entries from Seastar and Abseil to be filtered out. This patch refactors `merge-compdb.py` to allow specifying an optional prefix per input file, preserving the intent of applying the output filtering logic only for ninja-generated Scylla compdb file. Closes scylladb/scylladb#24211
1.5 KiB
Executable File
1.5 KiB
Executable File