r4660 - in trunk/src/host/pye17: codegen edje evas

marek at docs.openmoko.org marek at docs.openmoko.org
Mon Sep 22 06:13:43 CEST 2008


Author: marek
Date: 2008-09-22 06:13:41 +0200 (Mon, 22 Sep 2008)
New Revision: 4660

Removed:
   trunk/src/host/pye17/evas/evas_data.defs
Modified:
   trunk/src/host/pye17/codegen/codegen.py
   trunk/src/host/pye17/codegen/h2def.py
   trunk/src/host/pye17/edje/Makefile
   trunk/src/host/pye17/evas/Makefile
Log:
make evas bindings compile (gtype/include/enum problems fixed)
fix edje makefile, so that it also can do its job
remove autogenerated evas_data.defs file from svn

known issues:
These bindings heavily work around "gtype" which is required all over the place. At the moment I have no idea what they are good for. It may provoke unexpected results.


Modified: trunk/src/host/pye17/codegen/codegen.py
===================================================================
--- trunk/src/host/pye17/codegen/codegen.py	2008-09-20 16:42:28 UTC (rev 4659)
+++ trunk/src/host/pye17/codegen/codegen.py	2008-09-22 04:13:41 UTC (rev 4660)
@@ -1620,7 +1620,9 @@
 
         self.fp.write(
                 '%(indent)spygobject_register_class(d, "%(c_name)s", %(typecode)s, &Py%(c_name)s_Type, %(bases)s);\n'
-                % dict(indent=indent_str, c_name=obj.c_name, typecode=obj.typecode, bases=bases_str))
+                % dict(indent=indent_str, c_name=obj.c_name, typecode=77, bases=bases_str))
+                #'%(indent)spygobject_register_class(d, "%(c_name)s", %(typecode)s, &Py%(c_name)s_Type, %(bases)s);\n'
+                #% dict(indent=indent_str, c_name=obj.c_name, typecode=obj.typecode, bases=bases_str))
 
         if obj.has_new_constructor_api:
             self.fp.write(

Modified: trunk/src/host/pye17/codegen/h2def.py
===================================================================
--- trunk/src/host/pye17/codegen/h2def.py	2008-09-20 16:42:28 UTC (rev 4659)
+++ trunk/src/host/pye17/codegen/h2def.py	2008-09-22 04:13:41 UTC (rev 4660)
@@ -38,7 +38,7 @@
 def typecode(typename):
     """create a typecode (eg. GTK_TYPE_WIDGET) from a typename"""
     #return string.replace(to_upper_str(typename), '_', '_TYPE_', 1)
-    return typename
+    return to_upper_str(typename)
 
 
 # ------------------ Find object definitions -----------------
@@ -62,7 +62,7 @@
 
 obj_name_pat = "[A-Za-z0-9_]*"
 
-split_prefix_pat = re.compile('([A-Z]+[a-z]*)([A-Za-z0-9]+)')
+split_prefix_pat = re.compile('([A-Za-z]*)_([A-Za-z0-9]+)')
 
 def find_obj_defs(buf, objdefs=[]):
     """
@@ -217,13 +217,14 @@
         m = enum_pat.search(buf, pos)
         if not m: break
 
-	#print "name: " + m.group(2)
-	#print "vals: " + m.group(1)
+	#print "vals: " + m.group(2)
+	#print "name: " + m.group(1)
 	#print "alt. name: >" + m.group(3) + "<"
 
-        name = m.group(1)
+	name = m.group(3)
+
 	if not name:
-		name = m.group(3)
+		name = m.group(1)
 
 	if name in enum_typedef:
 		name = enum_typedef[name]
@@ -368,7 +369,7 @@
             m = split_prefix_pat.match(cname)
             if m:
                 module = m.group(1)
-                name = m.group(2)
+                #name = m.group(2)
             if isflags:
                 fp.write('(define-flags ' + name + '\n')
             else:
@@ -376,7 +377,8 @@
             if module:
                 fp.write('  (in-module "' + module + '")\n')
             fp.write('  (c-name "' + cname + '")\n')
-            fp.write('  (gtype-id "' + typecode(cname) + '")\n')
+	    fp.write('  (gtype-id "77")\n')
+            #fp.write('  (gtype-id "' + typecode(cname) + '")\n')
             prefix = entries[0]
             for ent in entries:
                 # shorten prefix til we get a match ...
@@ -402,11 +404,11 @@
             if filter:
                 if klass in filter:
                     continue
-            #m = split_prefix_pat.match(klass)
+            m = split_prefix_pat.match(klass)
             cmodule = None
             cname = klass
-            #if m:
-                #cmodule = m.group(1)
+            if m:
+                cmodule = m.group(1)
                 #cname = m.group(2)
             fp.write('(define-object ' + cname + '\n')
             if cmodule:
@@ -414,7 +416,8 @@
             if parent:
                 fp.write('  (parent "' + parent + '")\n')
             fp.write('  (c-name "' + klass + '")\n')
-            fp.write('  (gtype-id "' + typecode(klass) + '")\n')
+            #fp.write('  (gtype-id "' + typecode(klass) + '")\n')
+	    fp.write('  (gtype-id "' + klass + '")\n')
             # should do something about accessible fields
             fp.write(')\n\n')
 

Modified: trunk/src/host/pye17/edje/Makefile
===================================================================
--- trunk/src/host/pye17/edje/Makefile	2008-09-20 16:42:28 UTC (rev 4659)
+++ trunk/src/host/pye17/edje/Makefile	2008-09-22 04:13:41 UTC (rev 4660)
@@ -1,21 +1,21 @@
+
+EVAS_PATH=$(E_PATH)/evas/src/lib
 EDJE_PATH=$(E_PATH)/edje/src/lib
 
-CFLAGS = -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include/ -I/usr/include/python2.5 -I/usr/include/pygtk-2.0/ -I$(E_PATH)/evas/src/lib/ -I$(EDJE_PATH) -I.
+CFLAGS = -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include/ -I/usr/include/python2.5 -I/usr/include/pygtk-2.0/ -I$(EVAS_PATH) -I$(EDJE_PATH) -I.
 
 .PHONY: all clean edje.so
 
 all: edje.so
 
-edje.so: edje.o edjemodule.o                             
+edje.so: edje.o edjemodule.o
 	$(CC) $(LDFLAGS) -shared $^ -o $@
 
 edje.c: edje.defs edje.override
-	pygtk-codegen-2.0 --prefix edje \
-	--override edje.override \
-	edje.defs > $@
-	
-edje.defs: $(H2DEF_PATH) $(EDJE_PATH)/Edje.h
-	$(H2DEF_PATH) $(EDJE_PATH)/Edje.h > edje.defs 
+	$(PYTHON) $(CODEGEN_PATH)/codegen.py --prefix edje --override edje.override --register ../evas/evas.defs edje.defs > $@
 
+edje.defs: $(CODEGEN_PATH)/h2def.py $(EDJE_PATH)/Edje.h
+	$(CODEGEN_PATH)/h2def.py $(EDJE_PATH)/Edje.h > edje.defs
+
 clean:
 	rm -f *.o edje.defs edje.c

Modified: trunk/src/host/pye17/evas/Makefile
===================================================================
--- trunk/src/host/pye17/evas/Makefile	2008-09-20 16:42:28 UTC (rev 4659)
+++ trunk/src/host/pye17/evas/Makefile	2008-09-22 04:13:41 UTC (rev 4660)
@@ -1,6 +1,7 @@
+
 EVAS_PATH=$(E_PATH)/evas/src/lib
 
-CFLAGS = -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include/ -I/usr/include/python2.5 -I/usr/include/pygtk-2.0/ -I$(E_PATH)/evas/src/lib/ -I.
+CFLAGS = -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include/ -I/usr/include/python2.5 -I/usr/include/pygtk-2.0/ -I$(EVAS_PATH) -I.
 
 .PHONY: all clean evas.so
 
@@ -9,16 +10,19 @@
 evas.so: evas.o evasmodule.o
 	$(CC) $(LDFLAGS) -shared $^ -o $@
 
-evas.c: evas_data.defs evas.defs evas.override
-	$(PYTHON) $(CODEGEN_PATH)/codegen.py --prefix evas \
-	--override evas.override --register evas_data.defs \
-	evas.defs > $@
+evas.c: evas.defs evas.override
+	$(PYTHON) $(CODEGEN_PATH)/codegen.py --prefix evas --override evas.override evas.defs > $@
 
-evas_data.defs: $(CODEGEN_PATH)/h2def.py $(EVAS_PATH)/Evas.h $(EVAS_PATH)/Evas_Data.h
-	$(CODEGEN_PATH)/h2def.py $(EVAS_PATH)/Evas_Data.h > $@
-
 evas.defs: $(CODEGEN_PATH)/h2def.py $(EVAS_PATH)/Evas.h $(EVAS_PATH)/Evas_Data.h
 	$(CODEGEN_PATH)/h2def.py $(EVAS_PATH)/Evas.h > $@
+	$(CODEGEN_PATH)/h2def.py $(EVAS_PATH)/Evas_Data.h >> $@
 
 clean:
 	rm -f *.o evas.c evas.defs
+
+
+### may need later ??
+# 	--override evas.override --register evas_data.defs \
+#
+# evas_data.defs: $(CODEGEN_PATH)/h2def.py $(EVAS_PATH)/Evas.h $(EVAS_PATH)/Evas_Data.h
+# 	$(CODEGEN_PATH)/h2def.py $(EVAS_PATH)/Evas_Data.h > $@

Deleted: trunk/src/host/pye17/evas/evas_data.defs
===================================================================
--- trunk/src/host/pye17/evas/evas_data.defs	2008-09-20 16:42:28 UTC (rev 4659)
+++ trunk/src/host/pye17/evas/evas_data.defs	2008-09-22 04:13:41 UTC (rev 4660)
@@ -1,485 +0,0 @@
-;; -*- scheme -*-
-; object definitions ...
-(define-object Evas_Array
-  (c-name "Evas_Array")
-  (gtype-id "Evas_Array")
-)
-
-(define-object Evas_Hash
-  (c-name "Evas_Hash")
-  (gtype-id "Evas_Hash")
-)
-
-(define-object Evas_List
-  (c-name "Evas_List")
-  (gtype-id "Evas_List")
-)
-
-(define-object Evas_Object_List
-  (c-name "Evas_Object_List")
-  (gtype-id "Evas_Object_List")
-)
-
-;; Enumerations and flags ...
-
-
-;; From Evas_Data.h
-
-(define-function evas_array_new
-  (c-name "evas_array_new")
-  (is-constructor-of "EvasArray")
-  (return-type "Evas_Array*")
-  (parameters
-    '("unsigned-int" "step")
-  )
-)
-
-(define-function evas_array_setup
-  (c-name "evas_array_setup")
-  (return-type "none")
-  (parameters
-    '("Evas_Array*" "array")
-    '("unsigned-int" "step")
-  )
-)
-
-(define-function evas_array_free
-  (c-name "evas_array_free")
-  (return-type "none")
-  (parameters
-    '("Evas_Array*" "array")
-  )
-)
-
-(define-function evas_array_append
-  (c-name "evas_array_append")
-  (return-type "none")
-  (parameters
-    '("Evas_Array*" "array")
-    '("void*" "data")
-  )
-)
-
-(define-function evas_array_get
-  (c-name "evas_array_get")
-  (return-type "void*")
-  (parameters
-    '("Evas_Array*" "array")
-    '("unsigned-int" "index")
-  )
-)
-
-(define-function evas_array_clean
-  (c-name "evas_array_clean")
-  (return-type "none")
-  (parameters
-    '("Evas_Array*" "array")
-  )
-)
-
-(define-function evas_array_flush
-  (c-name "evas_array_flush")
-  (return-type "none")
-  (parameters
-    '("Evas_Array*" "array")
-  )
-)
-
-(define-function evas_array_remove
-  (c-name "evas_array_remove")
-  (return-type "none")
-  (parameters
-    '("Evas_Array*" "array")
-    '("void*" "callback")
-    '("void*" "gdata")
-  )
-)
-
-(define-function evas_array_hash_new
-  (c-name "evas_array_hash_new")
-  (is-constructor-of "EvasArrayHash")
-  (return-type "Evas_Array_Hash*")
-)
-
-(define-function evas_array_hash_free
-  (c-name "evas_array_hash_free")
-  (return-type "none")
-  (parameters
-    '("Evas_Array_Hash*" "hash")
-  )
-)
-
-(define-function evas_array_hash_add
-  (c-name "evas_array_hash_add")
-  (return-type "none")
-  (parameters
-    '("Evas_Array_Hash*" "hash")
-    '("int" "key")
-    '("int" "data")
-  )
-)
-
-(define-function evas_array_hash_search
-  (c-name "evas_array_hash_search")
-  (return-type "int")
-  (parameters
-    '("Evas_Array_Hash*" "hash")
-    '("int" "key")
-  )
-)
-
-(define-function evas_hash_add
-  (c-name "evas_hash_add")
-  (return-type "Evas_Hash*")
-  (parameters
-    '("Evas_Hash*" "hash")
-    '("const-char*" "key")
-    '("const-void*" "data")
-  )
-)
-
-(define-function evas_hash_direct_add
-  (c-name "evas_hash_direct_add")
-  (return-type "Evas_Hash*")
-  (parameters
-    '("Evas_Hash*" "hash")
-    '("const-char*" "key")
-    '("const-void*" "data")
-  )
-)
-
-(define-function evas_hash_del
-  (c-name "evas_hash_del")
-  (return-type "Evas_Hash*")
-  (parameters
-    '("Evas_Hash*" "hash")
-    '("const-char*" "key")
-    '("const-void*" "data")
-  )
-)
-
-(define-function evas_hash_find
-  (c-name "evas_hash_find")
-  (return-type "void*")
-  (parameters
-    '("const-Evas_Hash*" "hash")
-    '("const-char*" "key")
-  )
-)
-
-(define-function evas_hash_modify
-  (c-name "evas_hash_modify")
-  (return-type "void*")
-  (parameters
-    '("Evas_Hash*" "hash")
-    '("const-char*" "key")
-    '("const-void*" "data")
-  )
-)
-
-(define-function evas_hash_size
-  (c-name "evas_hash_size")
-  (return-type "int")
-  (parameters
-    '("const-Evas_Hash*" "hash")
-  )
-)
-
-(define-function evas_hash_free
-  (c-name "evas_hash_free")
-  (return-type "none")
-  (parameters
-    '("Evas_Hash*" "hash")
-  )
-)
-
-(define-function evas_hash_foreach
-  (c-name "evas_hash_foreach")
-  (return-type "none")
-  (parameters
-    '("const-Evas_Hash*" "hash")
-    '("void*" "callback")
-    '("const-void*" "fdata")
-  )
-)
-
-(define-function evas_hash_alloc_error
-  (c-name "evas_hash_alloc_error")
-  (return-type "int")
-)
-
-(define-function evas_list_append
-  (c-name "evas_list_append")
-  (return-type "Evas_List*")
-  (parameters
-    '("Evas_List*" "list")
-    '("const-void*" "data")
-  )
-)
-
-(define-function evas_list_prepend
-  (c-name "evas_list_prepend")
-  (return-type "Evas_List*")
-  (parameters
-    '("Evas_List*" "list")
-    '("const-void*" "data")
-  )
-)
-
-(define-function evas_list_append_relative
-  (c-name "evas_list_append_relative")
-  (return-type "Evas_List*")
-  (parameters
-    '("Evas_List*" "list")
-    '("const-void*" "data")
-    '("const-void*" "relative")
-  )
-)
-
-(define-function evas_list_append_relative_list
-  (c-name "evas_list_append_relative_list")
-  (return-type "Evas_List*")
-  (parameters
-    '("Evas_List*" "list")
-    '("const-void*" "data")
-    '("Evas_List*" "relative")
-  )
-)
-
-(define-function evas_list_prepend_relative
-  (c-name "evas_list_prepend_relative")
-  (return-type "Evas_List*")
-  (parameters
-    '("Evas_List*" "list")
-    '("const-void*" "data")
-    '("const-void*" "relative")
-  )
-)
-
-(define-function evas_list_prepend_relative_list
-  (c-name "evas_list_prepend_relative_list")
-  (return-type "Evas_List*")
-  (parameters
-    '("Evas_List*" "list")
-    '("const-void*" "data")
-    '("Evas_List*" "relative")
-  )
-)
-
-(define-function evas_list_remove
-  (c-name "evas_list_remove")
-  (return-type "Evas_List*")
-  (parameters
-    '("Evas_List*" "list")
-    '("const-void*" "data")
-  )
-)
-
-(define-function evas_list_remove_list
-  (c-name "evas_list_remove_list")
-  (return-type "Evas_List*")
-  (parameters
-    '("Evas_List*" "list")
-    '("Evas_List*" "remove_list")
-  )
-)
-
-(define-function evas_list_promote_list
-  (c-name "evas_list_promote_list")
-  (return-type "Evas_List*")
-  (parameters
-    '("Evas_List*" "list")
-    '("Evas_List*" "move_list")
-  )
-)
-
-(define-function evas_list_find
-  (c-name "evas_list_find")
-  (return-type "void*")
-  (parameters
-    '("const-Evas_List*" "list")
-    '("const-void*" "data")
-  )
-)
-
-(define-function evas_list_find_list
-  (c-name "evas_list_find_list")
-  (return-type "Evas_List*")
-  (parameters
-    '("const-Evas_List*" "list")
-    '("const-void*" "data")
-  )
-)
-
-(define-function evas_list_free
-  (c-name "evas_list_free")
-  (return-type "Evas_List*")
-  (parameters
-    '("Evas_List*" "list")
-  )
-)
-
-(define-function evas_list_last
-  (c-name "evas_list_last")
-  (return-type "Evas_List*")
-  (parameters
-    '("const-Evas_List*" "list")
-  )
-)
-
-(define-function evas_list_next
-  (c-name "evas_list_next")
-  (return-type "Evas_List*")
-  (parameters
-    '("const-Evas_List*" "list")
-  )
-)
-
-(define-function evas_list_prev
-  (c-name "evas_list_prev")
-  (return-type "Evas_List*")
-  (parameters
-    '("const-Evas_List*" "list")
-  )
-)
-
-(define-function evas_list_data
-  (c-name "evas_list_data")
-  (return-type "void*")
-  (parameters
-    '("const-Evas_List*" "list")
-  )
-)
-
-(define-function evas_list_count
-  (c-name "evas_list_count")
-  (return-type "int")
-  (parameters
-    '("const-Evas_List*" "list")
-  )
-)
-
-(define-function evas_list_nth
-  (c-name "evas_list_nth")
-  (return-type "void*")
-  (parameters
-    '("const-Evas_List*" "list")
-    '("int" "n")
-  )
-)
-
-(define-function evas_list_nth_list
-  (c-name "evas_list_nth_list")
-  (return-type "Evas_List*")
-  (parameters
-    '("const-Evas_List*" "list")
-    '("int" "n")
-  )
-)
-
-(define-function evas_list_reverse
-  (c-name "evas_list_reverse")
-  (return-type "Evas_List*")
-  (parameters
-    '("Evas_List*" "list")
-  )
-)
-
-(define-function evas_list_sort
-  (c-name "evas_list_sort")
-  (return-type "Evas_List*")
-  (parameters
-    '("Evas_List*" "list")
-    '("int" "size")
-    '("void*" "callback")
-  )
-)
-
-(define-function evas_list_alloc_error
-  (c-name "evas_list_alloc_error")
-  (return-type "int")
-)
-
-(define-function evas_object_list_append
-  (c-name "evas_object_list_append")
-  (return-type "void*")
-  (parameters
-    '("void*" "in_list")
-    '("void*" "in_item")
-  )
-)
-
-(define-function evas_object_list_prepend
-  (c-name "evas_object_list_prepend")
-  (return-type "void*")
-  (parameters
-    '("void*" "in_list")
-    '("void*" "in_item")
-  )
-)
-
-(define-function evas_object_list_append_relative
-  (c-name "evas_object_list_append_relative")
-  (return-type "void*")
-  (parameters
-    '("void*" "in_list")
-    '("void*" "in_item")
-    '("void*" "in_relative")
-  )
-)
-
-(define-function evas_object_list_prepend_relative
-  (c-name "evas_object_list_prepend_relative")
-  (return-type "void*")
-  (parameters
-    '("void*" "in_list")
-    '("void*" "in_item")
-    '("void*" "in_relative")
-  )
-)
-
-(define-function evas_object_list_remove
-  (c-name "evas_object_list_remove")
-  (return-type "void*")
-  (parameters
-    '("void*" "in_list")
-    '("void*" "in_item")
-  )
-)
-
-(define-function evas_object_list_find
-  (c-name "evas_object_list_find")
-  (return-type "void*")
-  (parameters
-    '("void*" "in_list")
-    '("void*" "in_item")
-  )
-)
-
-(define-function evas_stringshare_init
-  (c-name "evas_stringshare_init")
-  (return-type "none")
-)
-
-(define-function evas_stringshare_shutdown
-  (c-name "evas_stringshare_shutdown")
-  (return-type "none")
-)
-
-(define-function evas_stringshare_add
-  (c-name "evas_stringshare_add")
-  (return-type "const-char*")
-  (parameters
-    '("const-char*" "str")
-  )
-)
-
-(define-function evas_stringshare_del
-  (c-name "evas_stringshare_del")
-  (return-type "none")
-  (parameters
-    '("const-char*" "str")
-  )
-)
-
-




More information about the commitlog mailing list