diff options
author | Colin Walters <walters@src.gnome.org> | 2008-10-12 04:51:48 +0000 |
---|---|---|
committer | Colin Walters <walters@src.gnome.org> | 2008-10-12 04:51:48 +0000 |
commit | 2d6a7c97d16cd56a01b6d044cc7048e01344799d (patch) | |
tree | e739a70f3f6f62323be09e8d83574e20c5b6eda2 /tools | |
parent | 8210400fe121dd9ba2694d4d6049b29beaa12eaa (diff) | |
download | gobject-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-x | tools/g-ir-scanner | 5 | ||||
-rw-r--r-- | tools/generate.c | 9 |
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++) { |