[gobject-introspection] scanner: internals cleanup: Move shared libraries to Namespace



commit 95f80c1ae03dfe8a68d3c7ec21ce696ac839ea57
Author: Colin Walters <walters verbum org>
Date:   Sun Feb 24 11:58:57 2013 -0500

    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 d9f2353..23a0c9e 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 f2908bf..bae09b9 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 73b5877..e15ad51 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 9ca45a2..ccd828d 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()
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]