From 2df47c1300e3ca2b0f2e76bafeef5d81e9179e34 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Thu, 13 Feb 2025 11:49:24 -0300 Subject: [PATCH] scripts: update-girs: Normalize shared-library extensions for macOS So the script can be used on mac Part-of: --- scripts/update-girs.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/scripts/update-girs.py b/scripts/update-girs.py index db115481fc..11103475d0 100755 --- a/scripts/update-girs.py +++ b/scripts/update-girs.py @@ -25,6 +25,15 @@ def make_rel(elem, gir_relpath): elem.attrib["filename"] = str('..' / girdir / filepath) +def normalize_shared_library(namespace_elem): + """Replace .dylib with .so.0 in shared-library attribute""" + if "shared-library" in namespace_elem.attrib: + shared_lib = namespace_elem.attrib["shared-library"] + if shared_lib.endswith(".0.dylib"): + normalized_lib = shared_lib.replace(".0.dylib", ".so.0") + namespace_elem.attrib["shared-library"] = normalized_lib + + if __name__ == "__main__": opts = PARSER.parse_args() girdir = P(__file__).parent.parent / 'girs' @@ -39,4 +48,7 @@ if __name__ == "__main__": for n in et.iter("{http://www.gtk.org/introspection/core/1.0}doc"): del n.attrib["line"] make_rel(n, gir_relpath) + # Normalize shared library names + for namespace in et.iter("{http://www.gtk.org/introspection/core/1.0}namespace"): + normalize_shared_library(namespace) et.write(str(girdir / os.path.basename(girfile)), pretty_print=True)