mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
build: add compile_commands.json target
Add a convenience target generating the compilation database from a
built object tree, alongside the other developer conveniences (tags,
cscope, cloc -- the last of which already walks the same .cmd files):
make -C xen compile_commands.json
The output lands in the object tree root. For an in-tree build,
clangd and other consumers discover it there automatically when
opening files; for an out-of-tree build, symlink it into the source
tree root (consumers search the ancestors of the file being edited).
Note the database records the compiler invocations actually used.
With a clang build it is consumable by clangd as-is; for a gcc build,
clang-based tools may need a small .clangd configuration
(CompileFlags: Remove/Add) dropping gcc-only flags.
Also add the generated file to .gitignore.
Assisted-by: LLM
Signed-off-by: George Dunlap <gwd@xenproject.org>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
This commit is contained in:
1 parent
79ea30888d
commit
ad82632486
2 files changed
+4
No files matched your search
@@ -192,6 +192,7 @@ xen/arch/*/include/generated
|
||||
xen/build-dir-cppcheck/
|
||||
xen/common/config_data.S
|
||||
xen/common/config.gz
|
||||
xen/compile_commands.json
|
||||
xen/cppcheck-htmlreport/
|
||||
xen/cppcheck-report/
|
||||
xen/cppcheck-misra.*
|
||||
|
||||
@@ -685,6 +685,9 @@ cloc:
|
||||
done; \
|
||||
done | cloc --list-file=-
|
||||
|
||||
compile_commands.json: FORCE
|
||||
$(PYTHON) $(srctree)/scripts/gen_compile_commands.py -d $(objtree)
|
||||
|
||||
# Target used by xen-analysis.sh script to retrieve Xen build system variables
|
||||
export-variable-%:
|
||||
$(info $*=$($*))
|
||||
|
||||