diff options
author | kotontrion <[email protected]> | 2024-11-16 12:40:07 +0100 |
---|---|---|
committer | kotontrion <[email protected]> | 2024-11-16 12:40:07 +0100 |
commit | 1351db8d5b80c7521e808f81c91977a5dd2d9d34 (patch) | |
tree | a1469ed4aaca0f1f42e6d9a9251f5ccc9ff8bf78 /lib/astal/gtk4/gir.py | |
parent | e674e8f6e49e74edde795e012adbfe0fcfd8d729 (diff) | |
parent | 433984c5830aac3fcde66ffff93d0dc7e5e69366 (diff) |
Merge branch 'main' into feat/tray-gtk4
Diffstat (limited to 'lib/astal/gtk4/gir.py')
l---------[-rw-r--r--] | lib/astal/gtk4/gir.py | 59 |
1 files changed, 1 insertions, 58 deletions
diff --git a/lib/astal/gtk4/gir.py b/lib/astal/gtk4/gir.py index 9ef680f..16a3a64 100644..120000 --- a/lib/astal/gtk4/gir.py +++ b/lib/astal/gtk4/gir.py @@ -1,58 +1 @@ -""" -Vala's generated gir does not contain comments, -so we use valadoc to generate them. However, they are formatted -for valadoc and not gi-docgen so we need to fix it. -""" - -import xml.etree.ElementTree as ET -import html -import sys -import subprocess - - -def fix_gir(name: str, gir: str, out: str): - namespaces = { - "": "http://www.gtk.org/introspection/core/1.0", - "c": "http://www.gtk.org/introspection/c/1.0", - "glib": "http://www.gtk.org/introspection/glib/1.0", - } - for prefix, uri in namespaces.items(): - ET.register_namespace(prefix, uri) - - tree = ET.parse(gir) - root = tree.getroot() - - for doc in root.findall(".//doc", namespaces): - if doc.text: - doc.text = ( - html.unescape(doc.text).replace("<para>", "").replace("</para>", "") - ) - - if (inc := root.find("c:include", namespaces)) is not None: - inc.set("name", f"{name}.h") - else: - print("no c:include tag found", file=sys.stderr) - exit(1) - - tree.write(out, encoding="utf-8", xml_declaration=True) - - -def valadoc(name: str, gir: str, args: list[str]): - cmd = ["valadoc", "-o", "docs", "--package-name", name, "--gir", gir, *args] - try: - subprocess.run(cmd, check=True, text=True, capture_output=True) - except subprocess.CalledProcessError as e: - print(e.stderr, file=sys.stderr) - exit(1) - - -if __name__ == "__main__": - name = sys.argv[1] - in_out = sys.argv[2].split(":") - args = sys.argv[3:] - - gir = in_out[0] - out = in_out[1] if len(in_out) > 1 else gir - - valadoc(name, gir, args) - fix_gir(name, gir, out) +../../gir.py
\ No newline at end of file |