[geany/geany] 90b5e9: waf: Add rule to generate signallist.i

Colomban Wendling git-noreply at xxxxx
Fri Apr 10 14:16:19 UTC 2015


Branch:      refs/heads/master
Author:      Colomban Wendling <ban at herbesfolles.org>
Committer:   Colomban Wendling <ban at herbesfolles.org>
Date:        Fri, 10 Apr 2015 14:16:19 UTC
Commit:      90b5e9b76f6650ea016f665613c660d54a089432
             https://github.com/geany/geany/commit/90b5e9b76f6650ea016f665613c660d54a089432

Log Message:
-----------
waf: Add rule to generate signallist.i

Based on previous work from Matthew Brush.


Modified Paths:
--------------
    wscript

Modified: wscript
26 lines changed, 25 insertions(+), 1 deletions(-)
===================================================================
@@ -457,6 +457,30 @@ def build(bld):
         geany_sources.add('src/win32.c')
         geany_sources.add('geany_private.rc')
 
+    def gen_signallist(task):
+        from xml.etree import ElementTree
+
+        def find_handlers(xml_filename):
+            tree = ElementTree.parse(xml_filename)
+            signals = tree.getroot().findall(".//signal")
+            return [sig.attrib["handler"] for sig in signals]
+
+        handlers = []
+        for node in task.inputs:
+            handlers += find_handlers(node.abspath())
+        handlers = sorted(set(handlers))
+
+        for node in task.outputs:
+            node.write("/* This file is auto-generated, do not edit. */\n" +
+                       ''.join(["ITEM(%s)\n" % h for h in handlers]))
+
+    # signallist.i
+    bld(
+        source  = 'data/geany.glade',
+        target  = 'src/signallist.i',
+        name    = 'signallist.i',
+        rule    = gen_signallist)
+
     base_uselibs = ['GTK', 'GLIB', 'GMODULE', 'GIO', 'GTHREAD', 'WIN32', 'MAC_INTEGRATION', 'SUNOS_SOCKET', 'M']
     # libgeany
     bld(
@@ -464,7 +488,7 @@ def build(bld):
         name            = 'geany',
         target          = 'geany',
         source          = geany_sources,
-        includes        = ['.', 'scintilla/include', 'tagmanager/src'],
+        includes        = ['.', 'scintilla/include', 'tagmanager/src', 'src'],
         defines         = ['G_LOG_DOMAIN="Geany"', 'GEANY_PRIVATE'],
         uselib          = base_uselibs,
         use             = ['scintilla', 'ctags', 'tagmanager', 'mio'],



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list