summaryrefslogtreecommitdiff
path: root/README
blob: fa60406caef626bae8461ab8a4e9d9ad1643a67c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
##################

EO Introspection

##################

EO introspection is set of tools to generate high-level
language bindings for C libraries based on Eo(E Object) library,
which is a part of Enlightenent Foundation Libraries.
http://svn.enlightenment.org/svn/e/trunk/efl/

Eo library provides an opportunity
to use object oriented concepts in C.

EO Introspection provides easy generation
of Python and JS bindings for your library based on Eo.

#####################################################
COMPILING AND INSTALLING

   python-dev package is required, 
   because package needs to compile source c files
     Install python-dev package:
     > sudo apt-get install python-dev build-essential

   Installing eoparser:

     > python setup.py build
     (do this as root unless you are installing in your users directories)
     > python setup.py install


   To compile Cython files, cython (0.17)  is required.
     Install pip (python installs packages):
     > sudo apt-get install python-pip
     Install cython:
     > pip install cython
     or upgrade:
     > pip install --upgrade cython




#
#
#####################################################

Tools:
      Scanner
      Graph Generator
      Python code generator
      JS code generator

#####################################################
Scanner is a part of EObject introspection module.
It analyzes source and header C files, which can contain EO-styled class definition,
   and generates XML - description for each found class

#####################################################

1. Introspecting folder:
    Scanner runs recursively on defined folders
    a. > python eo_xml_gen.py --dir=IN_DIR --dir=IN_DIR2 --outdir=OUT_DIR -include=INCLUDE_DIR
      script searches for dependency xmlfiles in Python env paths.
      if PYTHONPATH wasn't set explicit --include=INCLUDE_DIR can be needed

    b. Building classes graph chart:
      Graph generator runs recursively on defined folders and generates graphviz dot file,
      which can be used to generate image

#      > python eo_graph_gen.py --dir=FOLDER_WITH_XML1 --dir=FOLDER_WITH_XMLS --outfile=OUTFILE.dot
#      > dot -Tpng OUTFILE.dot -o out.png
#      > eog out.png
      > python eo_graph_gen.py --dir=FOLDER_WITH_XML1 --dir=FOLDER_WITH_XMLS --outfile=graph.png
      > eog graph.png

2. Generating python-bindings: read /eo_py/README