summaryrefslogtreecommitdiff
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
parentb332dac9eb14f009f9538c2b96c6ff652f9d4916 (diff)
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,
13 and supposes that reader has some knowledge 13 and supposes that reader has some knowledge
14 about Eo, Elementary, Python and JS bindings 14 about Eo, Elementary, Python and JS bindings
15 15
16#############################################################
16 17
17* Generating function names 18* Generating function names
18 19
@@ -43,6 +44,8 @@ language bindings for C libraries based on Eo (E Object) library,
43 At the moment full names like some_class_color_set() and 44 At the moment full names like some_class_color_set() and
44 another_class_color_set() will be generated. 45 another_class_color_set() will be generated.
45 46
47#############################################################
48
46* Properties names parsing 49* Properties names parsing
47 If func name ends with '_set'/'_get' 50 If func name ends with '_set'/'_get'
48 parameters are checked on direction 'in' for 'set' prop 51 parameters are checked on direction 'in' for 'set' prop
@@ -52,6 +55,7 @@ language bindings for C libraries based on Eo (E Object) library,
52 Too common implementation. Need to provide descriptions(comments). 55 Too common implementation. Need to provide descriptions(comments).
53 56
54 57
58#############################################################
55 59
56* Parameter's Types; 60* Parameter's Types;
57 Basic types can be detected; 61 Basic types can be detected;
@@ -77,6 +81,7 @@ language bindings for C libraries based on Eo (E Object) library,
77 81
78 Requires work. 82 Requires work.
79 83
84#############################################################
80 85
81* Constructing object: 86* Constructing object:
82 Now objects are constructed with default constuctor. 87 Now objects are constructed with default constuctor.
@@ -106,6 +111,7 @@ language bindings for C libraries based on Eo (E Object) library,
106 111
107 and provide the way to parse argv[] in __init__ func? 112 and provide the way to parse argv[] in __init__ func?
108 113
114#############################################################
109 115
110* Callbacks in Python. 116* Callbacks in Python.
111 Issues: 117 Issues:
@@ -158,11 +164,14 @@ language bindings for C libraries based on Eo (E Object) library,
158 - define extern event's enum 164 - define extern event's enum
159 - define public event_add/del funcs for class 165 - define public event_add/del funcs for class
160 166
167#############################################################
168
161* Callbacks in JS: 169* Callbacks in JS:
162 In elev8 one callback per event was implemented, without adding cb data. 170 In elev8 one callback per event was implemented, without adding cb data.
163 171
164 There are some ideas how to put several callbacks and data if needed, but it must be checked. 172 There are some ideas how to put several callbacks and data if needed, but it must be checked.
165 173
174#############################################################
166 175
167* Adding elm_init() and other additional funcs 176* Adding elm_init() and other additional funcs
168 177
@@ -180,10 +189,13 @@ language bindings for C libraries based on Eo (E Object) library,
180 < add files manually 189 < add files manually
181 - compile module 190 - compile module
182 191
192#############################################################
183 193
184* Enums from headers. 194* Enums from headers.
185 Need to provide descriptions(comments), to understand how to fetch it 195 Need to provide descriptions(comments), to understand how to fetch it
186 196
197#############################################################
198
187* Issues about elementary: 199* Issues about elementary:
188 After parsing sources, found headers are included 200 After parsing sources, found headers are included
189 into generated files. 201 into generated files.
@@ -192,6 +204,7 @@ language bindings for C libraries based on Eo (E Object) library,
192 including elm_*.h and Elementary.h and compilation flags like 204 including elm_*.h and Elementary.h and compilation flags like
193 -DELM_INTERNAL_API_ARGESFSDFEFC=1 205 -DELM_INTERNAL_API_ARGESFSDFEFC=1
194 206
207#############################################################
195 208
196* EO repository for Python 209* EO repository for Python
197 initial eorepo package will be installed with eoparser package. 210 initial eorepo package will be installed with eoparser package.
@@ -206,18 +219,17 @@ language bindings for C libraries based on Eo (E Object) library,
206 eodefault.pxd 219 eodefault.pxd
207 eodefault.c 220 eodefault.c
208 221
209
210 When generating cython files for some module: 222 When generating cython files for some module:
211 - all classes are parsed 223 - all classes are parsed
212 - EoBase will be parent for some classes, 224 - EoBase will be parent for some classes,
213 so EoBase will be imported from eorepo.eobase 225 so EoBase will be imported from eorepo.eobase
214 also eodeafault will be cimported from eorepo.eobase. 226 also eodeafault will be cimported from eorepo.eobase.
227 - packages will be also installed into eorepo folder.
215 228
216 but we need to provide mechanism to import modules for any case. 229 ! but, I can't include packages different from eobase
230 ! need to provide mechanism to import any parent modules
217 231
218 following packages will be also installed into eorepo folder. 232 Correct layout should be like this:
219
220 1. Correct layout should be like this:
221 233
222 eorepo / 234 eorepo /
223 eobase / 235 eobase /
@@ -236,43 +248,48 @@ language bindings for C libraries based on Eo (E Object) library,
236 __init__.py # this can be autogenerated 248 __init__.py # this can be autogenerated
237 from eorepo.elementary.c_elementary import ElmWin 249 from eorepo.elementary.c_elementary import ElmWin
238 250
239 251 if we want to create module "elementary", setup.py will be created,
240 elementary class, which depends on EvasClass 252 which creates package "elementary", with "c_elementary.so" module and
241 must be able to find path and module to import this EvasClass. 253 proper __init__.py, which imports ElmWin from "c_elementary.so" into
242 T.e. must do: from eorepo.evas.c_evas import EvasClass. 254 elementary
243 255
244 in some file: 256 Each module, being installed must provide some package desc
245 C 257 file:
246 258 it must content all classes of module and path to this module.
247 259 {EvasObj : [eorepo.evas.c_evas]}
248 usage: 260 {ElmWin : [eorepo.elm.c_elm]}
249 import eorepo.elementary - #this will activate __init__ 261 If I need to include some class, I search for this "desc file";
250 #in elementary folder, and will 262 look for class name in it, and include class from package.
251 # import ElmWin from c_elementary into elementary 263
252 # so eorepo.elementary.ElmWin can be used 264 And so I don't need XML_INCLUDE or look for parent's XMLs.
253 # or like this 265 And I don't need XML files at all.
266
267 Usage in users app:
268 import eorepo.elementary -
269 #this will activate __init__ in elementary folder, and will
270 # import ElmWin from c_elementary into elementary
271 # so eorepo.elementary.ElmWin can be used
272 # or like this
254 from eorepo.elementary import ElmWin 273 from eorepo.elementary import ElmWin
255 274
256 275#############################################################
257 276
258 277* Eorepo for js:
259 278 Currently there are several base files, which must be used in module compilation:
260 279 CElmObject.cc/h
261 280 elm.h
262 281 main.cc
263
264
265
266
267
268
269
270
271
272
273 282
283 eobase.cc/h - autogenerated for Eo_Base
274 284
285 1. Think, if this files must be copied for compilation
286 Or statically linked...
287 ...or smth else
275 288
289 2. elev8 looks for modules in its folder, so I have to install module into this folder
290 need to find way to solve it
276 291
292 3. In repo need to save module's h files, to include into childs modules
293 4. So each module must install some desc file: {class name : header}
277 294
278 295