aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYakov Goldberg <yakov.g@samsung.com>2012-12-17 13:57:31 +0200
committerYakov Goldberg <yakov.g@samsung.com>2012-12-17 13:57:31 +0200
commitb1f6b5a11e3e68d1645acb4736e3b05122944263 (patch)
tree23878511c109f92eb877137d04b102b3e1b316e8
parentDEV_README up (diff)
downloadeo_bindings-b1f6b5a11e3e68d1645acb4736e3b05122944263.tar.gz
DEV_README up
Signed-off-by: Yakov Goldberg <yakov.g@samsung.com>
-rw-r--r--DEV_README89
1 files changed, 53 insertions, 36 deletions
diff --git a/DEV_README b/DEV_README
index d115463..7d0b7da 100644
--- a/DEV_README
+++ b/DEV_README
@@ -13,6 +13,7 @@ language bindings for C libraries based on Eo (E Object) library,
and supposes that reader has some knowledge
about Eo, Elementary, Python and JS bindings
+#############################################################
* Generating function names
@@ -43,6 +44,8 @@ language bindings for C libraries based on Eo (E Object) library,
At the moment full names like some_class_color_set() and
another_class_color_set() will be generated.
+#############################################################
+
* Properties names parsing
If func name ends with '_set'/'_get'
parameters are checked on direction 'in' for 'set' prop
@@ -52,6 +55,7 @@ language bindings for C libraries based on Eo (E Object) library,
Too common implementation. Need to provide descriptions(comments).
+#############################################################
* Parameter's Types;
Basic types can be detected;
@@ -77,6 +81,7 @@ language bindings for C libraries based on Eo (E Object) library,
Requires work.
+#############################################################
* Constructing object:
Now objects are constructed with default constuctor.
@@ -106,6 +111,7 @@ language bindings for C libraries based on Eo (E Object) library,
and provide the way to parse argv[] in __init__ func?
+#############################################################
* Callbacks in Python.
Issues:
@@ -158,11 +164,14 @@ language bindings for C libraries based on Eo (E Object) library,
- define extern event's enum
- define public event_add/del funcs for class
+#############################################################
+
* Callbacks in JS:
In elev8 one callback per event was implemented, without adding cb data.
There are some ideas how to put several callbacks and data if needed, but it must be checked.
+#############################################################
* Adding elm_init() and other additional funcs
@@ -180,10 +189,13 @@ language bindings for C libraries based on Eo (E Object) library,
< add files manually
- compile module
+#############################################################
* Enums from headers.
Need to provide descriptions(comments), to understand how to fetch it
+#############################################################
+
* Issues about elementary:
After parsing sources, found headers are included
into generated files.
@@ -192,6 +204,7 @@ language bindings for C libraries based on Eo (E Object) library,
including elm_*.h and Elementary.h and compilation flags like
-DELM_INTERNAL_API_ARGESFSDFEFC=1
+#############################################################
* EO repository for Python
initial eorepo package will be installed with eoparser package.
@@ -206,18 +219,17 @@ language bindings for C libraries based on Eo (E Object) library,
eodefault.pxd
eodefault.c
-
When generating cython files for some module:
- all classes are parsed
- EoBase will be parent for some classes,
so EoBase will be imported from eorepo.eobase
also eodeafault will be cimported from eorepo.eobase.
+ - packages will be also installed into eorepo folder.
- but we need to provide mechanism to import modules for any case.
+ ! but, I can't include packages different from eobase
+ ! need to provide mechanism to import any parent modules
- following packages will be also installed into eorepo folder.
-
- 1. Correct layout should be like this:
+ Correct layout should be like this:
eorepo /
eobase /
@@ -236,43 +248,48 @@ language bindings for C libraries based on Eo (E Object) library,
__init__.py # this can be autogenerated
from eorepo.elementary.c_elementary import ElmWin
-
- elementary class, which depends on EvasClass
- must be able to find path and module to import this EvasClass.
- T.e. must do: from eorepo.evas.c_evas import EvasClass.
-
- in some file:
- C
-
-
- usage:
- import eorepo.elementary - #this will activate __init__
- #in elementary folder, and will
- # import ElmWin from c_elementary into elementary
- # so eorepo.elementary.ElmWin can be used
- # or like this
+ if we want to create module "elementary", setup.py will be created,
+ which creates package "elementary", with "c_elementary.so" module and
+ proper __init__.py, which imports ElmWin from "c_elementary.so" into
+ elementary
+
+ Each module, being installed must provide some package desc
+ file:
+ it must content all classes of module and path to this module.
+ {EvasObj : [eorepo.evas.c_evas]}
+ {ElmWin : [eorepo.elm.c_elm]}
+ If I need to include some class, I search for this "desc file";
+ look for class name in it, and include class from package.
+
+ And so I don't need XML_INCLUDE or look for parent's XMLs.
+ And I don't need XML files at all.
+
+ Usage in users app:
+ import eorepo.elementary -
+ #this will activate __init__ in elementary folder, and will
+ # import ElmWin from c_elementary into elementary
+ # so eorepo.elementary.ElmWin can be used
+ # or like this
from eorepo.elementary import ElmWin
-
+#############################################################
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+* Eorepo for js:
+ Currently there are several base files, which must be used in module compilation:
+ CElmObject.cc/h
+ elm.h
+ main.cc
+ eobase.cc/h - autogenerated for Eo_Base
+ 1. Think, if this files must be copied for compilation
+ Or statically linked...
+ ...or smth else
+ 2. elev8 looks for modules in its folder, so I have to install module into this folder
+ need to find way to solve it
+ 3. In repo need to save module's h files, to include into childs modules
+ 4. So each module must install some desc file: {class name : header}