build: add compile_commands.json cleanup script
Type: make Change-Id: I8d6a5018bddf029e106df3cb8b8eded4fa28067d Signed-off-by: Damjan Marion <damarion@cisco.com>
This commit is contained in:

committed by
Damjan Marion

parent
ac948ce17f
commit
f4ca4843dd
4
Makefile
4
Makefile
@ -606,7 +606,9 @@ cscope: cscope.files
|
||||
|
||||
.PHONY: compdb
|
||||
compdb:
|
||||
@ninja -C build-root/build-vpp_debug-native/vpp -t compdb > compile_commands.json
|
||||
@ninja -C build-root/build-vpp_debug-native/vpp build.ninja
|
||||
@ninja -C build-root/build-vpp_debug-native/vpp -t compdb | \
|
||||
extras/scripts/compdb_cleanup.py > compile_commands.json
|
||||
|
||||
.PHONY: checkstyle
|
||||
checkstyle: checkfeaturelist
|
||||
|
28
extras/scripts/compdb_cleanup.py
Executable file
28
extras/scripts/compdb_cleanup.py
Executable file
@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import json
|
||||
|
||||
objects = json.load(sys.stdin)
|
||||
|
||||
for i in range(len(objects) - 1, -1, -1):
|
||||
obj = objects[i]
|
||||
|
||||
# Remove everything except .c files
|
||||
if not obj["file"].endswith(".c"):
|
||||
objects.remove(obj)
|
||||
continue
|
||||
|
||||
# remove duplicates introduced my multiarch
|
||||
if "CLIB_MARCH_VARIANT" in obj["command"]:
|
||||
objects.remove(obj)
|
||||
continue
|
||||
|
||||
# remove ccache prefix
|
||||
s = str.split(obj["command"])
|
||||
if s[0] == "ccache":
|
||||
s.remove(s[0])
|
||||
s[0] = s[0].split("/")[-1]
|
||||
obj["command"] = " ".join(s)
|
||||
|
||||
json.dump(objects, sys.stdout, indent=2)
|
Reference in New Issue
Block a user