summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2013-02-24 11:58:57 -0500
committerColin Walters <walters@verbum.org>2013-02-24 11:58:57 -0500
commitefde09fafc8248b8e37862f39d2b43cf3c1f2a57 (patch)
treeef8b7702dd35b81eaa365d030092649a6b131830
parent0b013d3cdd26d4a5f048e4df2cc17ffe177bdb21 (diff)
downloadgobject-introspection-efde09fafc8248b8e37862f39d2b43cf3c1f2a57.tar.gz
scanner: internals cleanup: Move shared libraries to Namespace
Continuing on with previous commit.
-rw-r--r--giscanner/ast.py1
-rw-r--r--giscanner/girparser.py8
-rw-r--r--giscanner/girwriter.py12
-rwxr-xr-xgiscanner/scannermain.py5
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()