[gobject-introspection] scanner: internals cleanup: Move pkgconfig list to Namespace
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gobject-introspection] scanner: internals cleanup: Move pkgconfig list to Namespace
- Date: Tue, 26 Feb 2013 21:26:03 +0000 (UTC)
commit f17dfbe3e65acd9274c2f98292362b0824564e0d
Author: Colin Walters <walters verbum org>
Date: Sun Feb 24 12:07:28 2013 -0500
scanner: internals cleanup: Move pkgconfig list to Namespace
Continuation of previous work.
giscanner/ast.py | 1 +
giscanner/girparser.py | 7 +------
giscanner/girwriter.py | 10 ++++------
giscanner/scannermain.py | 7 +++----
giscanner/transformer.py | 2 +-
5 files changed, 10 insertions(+), 17 deletions(-)
---
diff --git a/giscanner/ast.py b/giscanner/ast.py
index 506643d..5854091 100644
--- a/giscanner/ast.py
+++ b/giscanner/ast.py
@@ -375,6 +375,7 @@ class Namespace(object):
self.includes = set() # Include
self.shared_libraries = [] # str
self.c_includes = [] # str
+ self.exported_packages = [] # 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 5944cc4..63a3fd0 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._pkgconfig_packages = set()
self._namespace = None
self._filename_stack = []
@@ -73,11 +72,6 @@ class GIRParser(object):
def get_c_prefix(self):
return self._c_prefix
- def get_pkgconfig_packages(self):
- if not hasattr(self, '_pkgconfig_packages'):
- self._pkgconfig_packages = []
- return self._pkgconfig_packages
-
# Private
def _find_first_child(self, node, name_or_names):
@@ -135,6 +129,7 @@ class GIRParser(object):
self._namespace.shared_libraries = ns.attrib['shared-library'].split(',')
self._namespace.includes = self._includes
self._namespace.c_includes = self._c_includes
+ self._namespace.exported_packages = self._pkgconfig_packages
parser_methods = {
_corens('alias'): self._parse_alias,
diff --git a/giscanner/girwriter.py b/giscanner/girwriter.py
index 58169eb..d6b3485 100644
--- a/giscanner/girwriter.py
+++ b/giscanner/girwriter.py
@@ -30,17 +30,15 @@ COMPATIBLE_GIR_VERSION = '1.2'
class GIRWriter(XMLWriter):
- def __init__(self, namespace, pkgs):
+ def __init__(self, namespace):
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, pkgs)
+ self._write_repository(namespace)
- def _write_repository(self, namespace, packages=None):
- if packages is None:
- packages = frozenset()
+ def _write_repository(self, namespace):
attrs = [
('version', COMPATIBLE_GIR_VERSION),
('xmlns', 'http://www.gtk.org/introspection/core/1.0'),
@@ -50,7 +48,7 @@ and/or use gtk-doc annotations. ''')
with self.tagcontext('repository', attrs):
for include in sorted(namespace.includes):
self._write_include(include)
- for pkg in sorted(set(packages)):
+ for pkg in sorted(set(namespace.exported_packages)):
self._write_pkgconfig_pkg(pkg)
for c_include in sorted(set(namespace.c_includes)):
self._write_c_include(c_include)
diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
index 3d402fa..5fa370c 100755
--- a/giscanner/scannermain.py
+++ b/giscanner/scannermain.py
@@ -193,8 +193,7 @@ def passthrough_gir(path, f):
parser = GIRParser()
parser.parse(path)
- writer = GIRWriter(parser.get_namespace(),
- parser.get_pkgconfig_packages())
+ writer = GIRWriter(parser.get_namespace())
f.write(writer.get_xml())
def test_codegen(optstring):
@@ -473,8 +472,8 @@ def scanner_main(args):
exported_packages = options.packages
transformer.namespace.c_includes = options.c_includes
- writer = Writer(transformer.namespace,
- exported_packages)
+ transformer.namespace.exported_packages = exported_packages
+ writer = Writer(transformer.namespace)
data = writer.get_xml()
write_output(data, options)
diff --git a/giscanner/transformer.py b/giscanner/transformer.py
index 4c008da..e8cbf3d 100644
--- a/giscanner/transformer.py
+++ b/giscanner/transformer.py
@@ -210,7 +210,7 @@ None."""
self._parse_include(dep_filename)
if not uninstalled:
- for pkg in parser.get_pkgconfig_packages():
+ for pkg in parser.get_namespace().exported_packages:
self._pkg_config_packages.add(pkg)
namespace = parser.get_namespace()
self._parsed_includes[namespace.name] = namespace
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]