summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorColin Walters <walters@src.gnome.org>2008-10-12 04:51:48 +0000
committerColin Walters <walters@src.gnome.org>2008-10-12 04:51:48 +0000
commit2d6a7c97d16cd56a01b6d044cc7048e01344799d (patch)
treee739a70f3f6f62323be09e8d83574e20c5b6eda2 /tools
parent8210400fe121dd9ba2694d4d6049b29beaa12eaa (diff)
downloadgobject-introspection-2d6a7c97d16cd56a01b6d044cc7048e01344799d.tar.gz
Bug 552858: versioning
This is a big patch. You should probably remove your installation tree to be cleaner. * docs/typelib-format.txt: Add nsversion entry which holds version of namespace. * girepository/girepository.h: Add 'version' parameter to g_irepository_require. This may be NULL. Normally bindings should pass an explicit version though. * girepository/girepository.c: Lots of infrastructure to support versioning. Add some more documentation. Disallow some usage of NULL namespaces. * girepository/girmodule.c: Add version parameter. * girepository/gtypelib.c: Update header size. * giscanner/ast.py: Add version to Namespace. * giscanner/girparser.py: Parse version attribute from XML, pass to Namespace. * giscanner/girwriter.py: Write out version parameter. * giscanner/transformer.py: Clean up include registration. * tests/*: Add version attribute. * tests/invoke/invoke.c: Don't try looking up test before it's loaded in repository. * tools/generate.c: Output version parameter. * gir/Makefile.am: Add 2.0 version to .gir files. svn path=/trunk/; revision=677
Diffstat (limited to 'tools')
-rwxr-xr-xtools/g-ir-scanner5
-rw-r--r--tools/generate.c9
2 files changed, 10 insertions, 4 deletions
diff --git a/tools/g-ir-scanner b/tools/g-ir-scanner
index 1d01bb74..7d3f02d9 100755
--- a/tools/g-ir-scanner
+++ b/tools/g-ir-scanner
@@ -59,6 +59,9 @@ def _get_option_parser():
parser.add_option("-n", "--namespace",
action="store", dest="namespace_name",
help="name of namespace for this unit")
+ parser.add_option("", "--nsversion",
+ action="store", dest="namespace_version",
+ help="version of namespace for this unit")
parser.add_option("", "--strip-prefix",
action="store", dest="strip_prefix", default="",
help="prefix to strip from functions, like g_")
@@ -244,7 +247,7 @@ def main(args):
ss.parse_macros(filenames)
# Transform the C symbols into AST nodes
- transformer = Transformer(ss, options.namespace_name)
+ transformer = Transformer(ss, options.namespace_name, options.namespace_version)
transformer.set_strip_prefix(options.strip_prefix)
for include in options.includes:
transformer.register_include(include)
diff --git a/tools/generate.c b/tools/generate.c
index 5f10d27c..7e8d5a28 100644
--- a/tools/generate.c
+++ b/tools/generate.c
@@ -1064,13 +1064,16 @@ write_repository (const char *namespace,
{
const gchar *shared_library;
const char *ns = namespace;
+ const char *version;
+
+ version = g_irepository_get_version (repository, ns);
shared_library = g_irepository_get_shared_library (repository, ns);
if (shared_library)
- g_fprintf (file, " <namespace name=\"%s\" shared-library=\"%s\">\n",
- ns, shared_library);
+ g_fprintf (file, " <namespace name=\"%s\" version=\"%s\" shared-library=\"%s\">\n",
+ ns, version, shared_library);
else
- g_fprintf (file, " <namespace name=\"%s\">\n", ns);
+ g_fprintf (file, " <namespace name=\"%s\" version=\"%s\">\n", ns, version);
for (j = 0; j < g_irepository_get_n_infos (repository, ns); j++)
{