summaryrefslogtreecommitdiff
path: root/scripts/build/write-compdb.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build/write-compdb.py')
-rwxr-xr-xscripts/build/write-compdb.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/scripts/build/write-compdb.py b/scripts/build/write-compdb.py
new file mode 100755
index 0000000..9ec5a49
--- /dev/null
+++ b/scripts/build/write-compdb.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+import json
+import pathlib
+import sys
+
+source = pathlib.Path(sys.argv[1])
+output = pathlib.Path(sys.argv[2])
+directory = pathlib.Path.cwd()
+entries = []
+for line in source.read_text().splitlines():
+ file_name, object_name, command = line.split("\t", 2)
+ entries.append(
+ {
+ "directory": str(directory),
+ "file": file_name,
+ "output": object_name,
+ "command": command,
+ }
+ )
+output.parent.mkdir(parents=True, exist_ok=True)
+temporary = output.with_suffix(output.suffix + ".tmp")
+temporary.write_text(json.dumps(entries, indent=2) + "\n")
+temporary.replace(output)
+