Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--giscanner/girwriter.py14
-rw-r--r--giscanner/scannermain.py3
-rw-r--r--giscanner/transformer.py3
-rw-r--r--tests/scanner/BarApp-1.0-expected.gir2
-rw-r--r--tests/scanner/GtkFrob-1.0-expected.gir5
-rw-r--r--tests/scanner/annotation-1.0-expected.gir5
-rw-r--r--tests/scanner/drawable-1.0-expected.gir5
-rw-r--r--tests/scanner/foo-1.0-expected.gir2
-rw-r--r--tests/scanner/utility-1.0-expected.gir5
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">