mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
It doesn't make sense to benchmark debug binaries. Also, wpimath JNI performance in unit tests is drastically impacted by debug vs release.
49 lines
1.4 KiB
Python
Executable File
49 lines
1.4 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import argparse
|
|
import json
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(
|
|
description="Fix compile_commands.json generated by Gradle"
|
|
)
|
|
parser.add_argument("filename", help="compile_commands.json location")
|
|
cmd_args = parser.parse_args()
|
|
|
|
# Read JSON
|
|
with open(cmd_args.filename) as f:
|
|
data = json.load(f)
|
|
|
|
for obj in data:
|
|
out_args = []
|
|
|
|
iter_args = iter(obj["arguments"])
|
|
for arg in iter_args:
|
|
# Filter out -isystem flags that cause false positives
|
|
if arg == "-isystem":
|
|
next_arg = next(iter_args)
|
|
|
|
# /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/include/xmmintrin.h:54:1:
|
|
# error: conflicting types for '_mm_prefetch' [clang-diagnostic-error]
|
|
if not next_arg.startswith("/usr/lib/gcc/"):
|
|
out_args += ["-isystem", next_arg]
|
|
# Replace GCC warning argument with one Clang recognizes
|
|
elif arg == "-Wno-maybe-uninitialized":
|
|
out_args.append("-Wno-uninitialized")
|
|
# Skip GCC-specific warning argument
|
|
elif arg == "-Wno-error=restrict":
|
|
pass
|
|
else:
|
|
out_args.append(arg)
|
|
|
|
obj["arguments"] = out_args
|
|
|
|
# Write JSON
|
|
with open(cmd_args.filename, "w") as f:
|
|
json.dump(data, f, indent=2)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|