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