diff options
-rw-r--r-- | giscanner/girwriter.py | 14 | ||||
-rw-r--r-- | giscanner/scannermain.py | 3 | ||||
-rw-r--r-- | giscanner/transformer.py | 3 | ||||
-rw-r--r-- | tests/scanner/BarApp-1.0-expected.gir | 2 | ||||
-rw-r--r-- | tests/scanner/GtkFrob-1.0-expected.gir | 5 | ||||
-rw-r--r-- | tests/scanner/annotation-1.0-expected.gir | 5 | ||||
-rw-r--r-- | tests/scanner/drawable-1.0-expected.gir | 5 | ||||
-rw-r--r-- | tests/scanner/foo-1.0-expected.gir | 2 | ||||
-rw-r--r-- | tests/scanner/utility-1.0-expected.gir | 5 |
9 files changed, 31 insertions, 13 deletions
diff --git a/giscanner/girwriter.py b/giscanner/girwriter.py index e30bc6b..ddd562c 100644 --- a/giscanner/girwriter.py +++ b/giscanner/girwriter.py @@ -35,16 +35,17 @@ from .xmlwriter import XMLWriter class GIRWriter(XMLWriter): - def __init__(self, namespace, shlibs, includes, pkgs, c_includes): + def __init__(self, namespace, shlibs, includes, pkgs, c_includes, cprefix): 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, includes, pkgs, c_includes) + self._write_repository(namespace, shlibs, includes, pkgs, + c_includes, cprefix) def _write_repository(self, namespace, shlibs, includes=None, - packages=None, c_includes=None): + packages=None, c_includes=None, cprefix=None): if includes is None: includes = frozenset() if packages is None: @@ -64,7 +65,7 @@ and/or use gtk-doc annotations. ''') self._write_pkgconfig_pkg(pkg) for c_include in sorted(set(c_includes)): self._write_c_include(c_include) - self._write_namespace(namespace, shlibs) + self._write_namespace(namespace, shlibs, cprefix) def _write_include(self, include): attrs = [('name', include.name), ('version', include.version)] @@ -78,7 +79,7 @@ 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, shlibs, cprefix): libraries = [] for l in shlibs: found_libname = find_library(l) @@ -88,7 +89,8 @@ and/or use gtk-doc annotations. ''') attrs = [('name', namespace.name), ('version', namespace.version), - ('shared-library', ','.join(libraries))] + ('shared-library', ','.join(libraries)), + ('c:prefix', cprefix)] with self.tagcontext('namespace', attrs): # We define a custom sorting function here because # we want aliases to be first. They're a bit diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py index f7ac884..e280159 100644 --- a/giscanner/scannermain.py +++ b/giscanner/scannermain.py @@ -331,7 +331,8 @@ def scanner_main(args): # Write out AST writer = Writer(namespace, libraries, transformer.get_includes(), - options.packages, options.c_includes) + options.packages, options.c_includes, + transformer.get_strip_prefix()) data = writer.get_xml() if options.output: fd = open(options.output, "w") diff --git a/giscanner/transformer.py b/giscanner/transformer.py index 2746b6e..c084606 100644 --- a/giscanner/transformer.py +++ b/giscanner/transformer.py @@ -83,6 +83,9 @@ class Transformer(object): def set_strip_prefix(self, strip_prefix): self._strip_prefix = strip_prefix + def get_strip_prefix(self): + return self._strip_prefix + def get_pkgconfig_packages(self): return self._pkg_config_packages diff --git a/tests/scanner/BarApp-1.0-expected.gir b/tests/scanner/BarApp-1.0-expected.gir index da8c825..e8095e5 100644 --- a/tests/scanner/BarApp-1.0-expected.gir +++ b/tests/scanner/BarApp-1.0-expected.gir @@ -9,7 +9,7 @@ and/or use gtk-doc annotations. --> <include name="GLib" version="2.0"/> <include name="GObject" version="2.0"/> <package name="gobject-2.0"/> - <namespace name="BarApp" version="1.0" shared-library=""> + <namespace name="BarApp" version="1.0" shared-library="" c:prefix="Bar"> <class name="Baz" c:type="BarBaz" parent="GObject.Object" diff --git a/tests/scanner/GtkFrob-1.0-expected.gir b/tests/scanner/GtkFrob-1.0-expected.gir index fa4b3ed..423c053 100644 --- a/tests/scanner/GtkFrob-1.0-expected.gir +++ b/tests/scanner/GtkFrob-1.0-expected.gir @@ -9,7 +9,10 @@ and/or use gtk-doc annotations. --> <include name="GLib" version="2.0"/> <include name="GObject" version="2.0"/> <package name="gobject-2.0"/> - <namespace name="GtkFrob" version="1.0" shared-library="gtkfrob"> + <namespace name="GtkFrob" + version="1.0" + shared-library="gtkfrob" + c:prefix="Gtk"> <function name="language_manager_get_default" c:identifier="gtk_frob_language_manager_get_default"> <return-value transfer-ownership="none"> diff --git a/tests/scanner/annotation-1.0-expected.gir b/tests/scanner/annotation-1.0-expected.gir index c37d2d4..91fe561 100644 --- a/tests/scanner/annotation-1.0-expected.gir +++ b/tests/scanner/annotation-1.0-expected.gir @@ -10,7 +10,10 @@ and/or use gtk-doc annotations. --> <include name="GObject" version="2.0"/> <include name="utility" version="1.0"/> <package name="gobject-2.0"/> - <namespace name="annotation" version="1.0" shared-library="annotation"> + <namespace name="annotation" + version="1.0" + shared-library="annotation" + c:prefix="annotation"> <callback name="Callback" c:type="AnnotationCallback" doc="This is a callback."> diff --git a/tests/scanner/drawable-1.0-expected.gir b/tests/scanner/drawable-1.0-expected.gir index 052e788..6f82e3a 100644 --- a/tests/scanner/drawable-1.0-expected.gir +++ b/tests/scanner/drawable-1.0-expected.gir @@ -10,7 +10,10 @@ and/or use gtk-doc annotations. --> <include name="GObject" version="2.0"/> <include name="utility" version="1.0"/> <package name="gobject-2.0"/> - <namespace name="drawable" version="1.0" shared-library="drawable"> + <namespace name="drawable" + version="1.0" + shared-library="drawable" + c:prefix="drawable"> <class name="TestDrawable" c:type="TestDrawable" parent="GObject.Object" diff --git a/tests/scanner/foo-1.0-expected.gir b/tests/scanner/foo-1.0-expected.gir index b28d861..839a8dc 100644 --- a/tests/scanner/foo-1.0-expected.gir +++ b/tests/scanner/foo-1.0-expected.gir @@ -11,7 +11,7 @@ and/or use gtk-doc annotations. --> <include name="utility" version="1.0"/> <package name="gobject-2.0"/> <c:include name="foo.h"/> - <namespace name="foo" version="1.0" shared-library="foo"> + <namespace name="foo" version="1.0" shared-library="foo" c:prefix="foo"> <alias name="List" target="GLib.SList" c:type="FooList"/> <alias name="ObjectCookie" target="any" c:type="FooObjectCookie"/> <alias name="XEvent" target="none" c:type="FooXEvent"/> diff --git a/tests/scanner/utility-1.0-expected.gir b/tests/scanner/utility-1.0-expected.gir index 331979c..02e2913 100644 --- a/tests/scanner/utility-1.0-expected.gir +++ b/tests/scanner/utility-1.0-expected.gir @@ -9,7 +9,10 @@ and/or use gtk-doc annotations. --> <include name="GLib" version="2.0"/> <include name="GObject" version="2.0"/> <package name="gobject-2.0"/> - <namespace name="utility" version="1.0" shared-library="utility"> + <namespace name="utility" + version="1.0" + shared-library="utility" + c:prefix="utility"> <alias name="Glyph" target="uint32" c:type="UtilityGlyph"/> <union name="Byte" c:type="UtilityByte"> <field name="value" writable="1"> |