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:
Damjan Marion
2020-10-23 17:20:32 +02:00
committed by Damjan Marion
parent ac948ce17f
commit f4ca4843dd
2 changed files with 31 additions and 1 deletions

View File

@ -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

View 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)