[gtk+/wip/meson: 11/73] meson: replace gentypefuncs.d with python script



commit cbd2208c233be9d5d5227acd947207af8f6d609d
Author: Tim-Philipp Müller <tim centricular com>
Date:   Sat Sep 10 12:10:59 2016 +0100

    meson: replace gentypefuncs.d with python script

 gtk/gentypefuncs.d  |   45 ---------------------------------------------
 gtk/gentypefuncs.py |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 gtk/meson.build     |    3 +--
 3 files changed, 50 insertions(+), 47 deletions(-)
---
diff --git a/gtk/gentypefuncs.py b/gtk/gentypefuncs.py
new file mode 100644
index 0000000..46beebd
--- /dev/null
+++ b/gtk/gentypefuncs.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import sys
+import re
+import os
+
+debug = os.getenv('GTK_GENTYPEFUNCS_DEBUG') is not None
+
+out_file = sys.argv[1]
+in_files = sys.argv[2:]
+
+funcs = []
+
+
+if debug: print 'Output file: ', out_file
+
+if debug: print len(in_files), 'input files'
+
+for filename in in_files:
+  if debug: print 'Input file: ', filename
+  with open(filename, "r") as f:
+    for line in f:
+      line = line.rstrip('\n').rstrip('\r')
+      # print line
+      match = re.search(r'\bg[td]k_[a-zA-Z0-9_]*_get_type\b', line)
+      if match:
+        func = match.group(0)
+        if not func in funcs:
+          funcs.append(func)
+          if debug: print 'Found', func
+
+file_output = 'G_GNUC_BEGIN_IGNORE_DEPRECATIONS\n'
+
+funcs = sorted(funcs)
+
+for f in funcs:
+  if f.startswith('gdk_x11') or f.startswith('gtk_socket') or f.startswith('gtk_plug'):
+    file_output += '#ifdef GDK_WINDOWING_X11\n'
+    file_output += '*tp++ = {0}();\n'.format(f)
+    file_output += '#endif\n'
+  else:
+    file_output += '*tp++ = {0}();\n'.format(f)
+
+if debug: print len(funcs), 'functions'
+
+ofile = open(out_file, "w")
+ofile.write(file_output)
+ofile.close()
diff --git a/gtk/meson.build b/gtk/meson.build
index 3a3fa8b..eac09be 100644
--- a/gtk/meson.build
+++ b/gtk/meson.build
@@ -737,8 +737,7 @@ gtkprivatetypebuiltins_c = custom_target(
   command : [mkenum, perl, glib_mkenums, meson.current_source_dir() + '/gtkprivatetypebuiltins.c.template', 
'@OUTPUT@', '@INPUT@']
 )
 
-d_compiler = find_program('dmd')
-gentypefuncs_prog = find_program('gentypefuncs.d')
+gentypefuncs_prog = find_program('gentypefuncs.py')
 # Generate gtktypefuncs.c
 typefuncs = custom_target(
   'typefuncs',


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