[gobject-introspection] Add a script to extract gio annotations



commit 4fd326d0dc1935be6e5ecb293fd157f9349d53aa
Author: Johan Dahlin <johan gnome org>
Date:   Fri Sep 24 15:41:24 2010 -0300

    Add a script to extract gio annotations

 giscanner/annotationmain.py   |   23 ++++++++---------------
 giscanner/annotationparser.py |    8 ++++++--
 giscanner/girparser.py        |    3 +++
 misc/extract-gio-sources.sh   |   10 ++++++++++
 4 files changed, 27 insertions(+), 17 deletions(-)
---
diff --git a/giscanner/annotationmain.py b/giscanner/annotationmain.py
index d6e2eef..b69577e 100644
--- a/giscanner/annotationmain.py
+++ b/giscanner/annotationmain.py
@@ -56,23 +56,16 @@ def annotation_main(args):
     if options.extract:
         ap = AnnotationParser()
         blocks = ap.parse(ss.get_comments())
+        print '/' + ('*' * 60) + '/'
+        print '/* THIS FILE IS GENERATED DO NOT EDIT */'
+        print '/' + ('*' * 60) + '/'
+        print
         for block in blocks.values():
             print block.to_gtk_doc()
             print
-    elif options.validate:
-        transformer = create_transformer(namespace, options)
-        transformer.parse(ss.get_symbols())
-
-        shlibs = create_binary(transformer, options, args)
-
-        ap = AnnotationParser()
-        blocks = ap.parse(ss.get_comments())
-
-        main = MainTransformer(transformer, blocks)
-        main.transform()
-
-        final = IntrospectablePass(transformer)
-        final.validate()
-
+        print
+        print '/' + ('*' * 60) + '/'
+        print '/* THIS FILE IS GENERATED DO NOT EDIT */'
+        print '/' + ('*' * 60) + '/'
 
     return 0
diff --git a/giscanner/annotationparser.py b/giscanner/annotationparser.py
index 282ea55..673d0a0 100644
--- a/giscanner/annotationparser.py
+++ b/giscanner/annotationparser.py
@@ -138,7 +138,11 @@ class DocBlock(object):
 
         comment = '/**\n'
         for line in lines:
-            comment += ' * %s\n' % (line, )
+            line = line.rstrip()
+            if line:
+                comment += ' * %s\n' % (line, )
+            else:
+                comment += ' *\n'
         comment += ' */\n'
         return comment
 
@@ -200,7 +204,7 @@ class DocTag(object):
             if value:
                 if type(value) != str:
                     value = ' '.join((serialize_one(k, v, '%s=%s', '%s')
-                                      for k,v in value.all().iteritems()))
+                                      for k, v in value.all().iteritems()))
                 return fmt % (option, value)
             else:
                 return fmt2 % (option, )
diff --git a/giscanner/girparser.py b/giscanner/girparser.py
index 06901dc..6ba6c2a 100644
--- a/giscanner/girparser.py
+++ b/giscanner/girparser.py
@@ -201,6 +201,9 @@ class GIRParser(object):
         deprecated = node.attrib.get('deprecated')
         if deprecated:
             obj.deprecated = deprecated
+        deprecated_version = node.attrib.get('deprecated-version')
+        if deprecated_version:
+            obj.deprecated_version = deprecated_version
 
     def _parse_object_interface(self, node):
         parent = node.attrib.get('parent')
diff --git a/misc/extract-gio-sources.sh b/misc/extract-gio-sources.sh
new file mode 100755
index 0000000..ed1b8c1
--- /dev/null
+++ b/misc/extract-gio-sources.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+GLIBDIR=$1
+tools/g-ir-annotation-tool --extract \
+    -DGIO_COMPILATION \
+    -I$GLIBDIR \
+    -I$GLIBDIR/glib \
+    -I$GLIBDIR/gobject \
+    -I$GLIBDIR/gmodule \
+    -I$GLIBDIR/gio \
+    $GLIBDIR/gio/*.c $GLIBDIR/gio/*.h



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]