From 95f80c1ae03dfe8a68d3c7ec21ce696ac839ea57 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Sun, 24 Feb 2013 11:58:57 -0500 Subject: scanner: internals cleanup: Move shared libraries to Namespace Continuing on with previous commit. --- giscanner/ast.py | 1 + giscanner/girparser.py | 8 +------- giscanner/girwriter.py | 12 ++++++------ giscanner/scannermain.py | 5 +++-- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/giscanner/ast.py b/giscanner/ast.py index d9f23539..23a0c9e7 100644 --- a/giscanner/ast.py +++ b/giscanner/ast.py @@ -373,6 +373,7 @@ class Namespace(object): self.ctypes = {} # Maps from CType -> node self.symbols = {} # Maps from function symbols -> Function self.includes = set() # Include + self.shared_libraries = [] # str def type_from_name(self, name, ctype=None): """Backwards compatibility method for older .gir files, which diff --git a/giscanner/girparser.py b/giscanner/girparser.py index f2908bff..bae09b9a 100644 --- a/giscanner/girparser.py +++ b/giscanner/girparser.py @@ -46,7 +46,6 @@ class GIRParser(object): def __init__(self, types_only=False): self._types_only = types_only - self._shared_libraries = [] self._pkgconfig_packages = set() self._namespace = None self._filename_stack = [] @@ -62,7 +61,6 @@ class GIRParser(object): def parse_tree(self, tree): self._namespace = None - self._shared_libraries = [] self._pkgconfig_packages = set() self._includes = set() self._c_includes = set() @@ -72,9 +70,6 @@ class GIRParser(object): def get_namespace(self): return self._namespace - def get_shared_libraries(self): - return self._shared_libraries - def get_c_includes(self): return self._c_includes @@ -140,8 +135,7 @@ class GIRParser(object): identifier_prefixes=identifier_prefixes, symbol_prefixes=symbol_prefixes) if 'shared-library' in ns.attrib: - self._shared_libraries.extend( - ns.attrib['shared-library'].split(',')) + self._namespace.shared_libraries = ns.attrib['shared-library'].split(',') self._namespace.includes = self._includes parser_methods = { diff --git a/giscanner/girwriter.py b/giscanner/girwriter.py index 73b58772..e15ad51f 100644 --- a/giscanner/girwriter.py +++ b/giscanner/girwriter.py @@ -30,16 +30,16 @@ COMPATIBLE_GIR_VERSION = '1.2' class GIRWriter(XMLWriter): - def __init__(self, namespace, shlibs, pkgs, c_includes): + def __init__(self, namespace, pkgs, c_includes): super(GIRWriter, self).__init__() self.write_comment( '''This file was automatically generated from C sources - DO NOT EDIT! To affect the contents of this file, edit the original C definitions, and/or use gtk-doc annotations. ''') - self._write_repository(namespace, shlibs, pkgs, + self._write_repository(namespace, pkgs, c_includes) - def _write_repository(self, namespace, shlibs, + def _write_repository(self, namespace, packages=None, c_includes=None): if packages is None: packages = frozenset() @@ -59,7 +59,7 @@ and/or use gtk-doc annotations. ''') for c_include in sorted(set(c_includes)): self._write_c_include(c_include) self._namespace = namespace - self._write_namespace(namespace, shlibs) + self._write_namespace(namespace) self._namespace = None def _write_include(self, include): @@ -74,10 +74,10 @@ and/or use gtk-doc annotations. ''') attrs = [('name', c_include)] self.write_tag('c:include', attrs) - def _write_namespace(self, namespace, shlibs): + def _write_namespace(self, namespace): attrs = [('name', namespace.name), ('version', namespace.version), - ('shared-library', ','.join(shlibs)), + ('shared-library', ','.join(namespace.shared_libraries)), ('c:identifier-prefixes', ','.join(namespace.identifier_prefixes)), ('c:symbol-prefixes', ','.join(namespace.symbol_prefixes))] with self.tagcontext('namespace', attrs): diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py index 9ca45a2f..ccd828da 100755 --- a/giscanner/scannermain.py +++ b/giscanner/scannermain.py @@ -194,7 +194,6 @@ def passthrough_gir(path, f): parser.parse(path) writer = GIRWriter(parser.get_namespace(), - parser.get_shared_libraries(), parser.get_pkgconfig_packages(), parser.get_c_includes()) f.write(writer.get_xml()) @@ -450,6 +449,8 @@ def scanner_main(args): else: shlibs = [] + transformer.namespace.shared_libraries = shlibs + main = MainTransformer(transformer, blocks) main.transform() @@ -472,7 +473,7 @@ def scanner_main(args): else: exported_packages = options.packages - writer = Writer(transformer.namespace, shlibs, + writer = Writer(transformer.namespace, exported_packages, options.c_includes) data = writer.get_xml() -- cgit v1.2.1