diff options
author | Savio Sena <savio@expertisesolutions.com.br> | 2014-05-03 00:55:51 +0200 |
---|---|---|
committer | Cedric Bail <cedric.bail@free.fr> | 2014-05-03 00:56:32 +0200 |
commit | 46b6e8a563bd429690e7bffba4e98d06aa40798d (patch) | |
tree | b7a2aebfc32bcc6d7a2600072a00d69a9f68d9a1 /src/lib/eolian_cxx/Eolian_Cxx.hh | |
parent | 64c6c63725d96f03baf34b660ca71e13b29078c1 (diff) |
eolian_cxx: initial version of the EFL C++ Bindings Generator.
Summary:
This patch adds 'eolian_cxx' -- a C++ bindings generator --
to the EFL tree. Eolian Cxx uses Eolian API to read .eo files and generate
.eo.hh. It relies/depends on Eo Cxx and Eina Cxx (both non-generated
bindings).
src/bin/eolian_cxx: The eolian_cxx program.
src/lib/eolian_cxx: A header-only library that implements the C++ code
generation that binds the .eo classes.
=Examples=
src/examples/eolian_cxx/eolian_cxx_simple_01.cc: The simplest example,
it just uses some "dummy" generated C++ classes.
src/examples/eolian_cxx/eolian_cxx_inherit_01.cc: Illustrates how
pure C++ classes inherit from .eo generated classes.
src/examples/evas/evas_cxx_rectangle.cc: More realistic example using
the generated bindings Evas Cxx. Still a bit shallow because we don't
have full fledged .eo descriptions yet, but will be improved.
=Important=
The generated code is not supported and not a stable API/ABI. It is
here to gather people interest and get review before we set things in
stone for release 1.11.
@feature
Reviewers: cedric, smohanty, raster, stefan_schmidt
CC: felipealmeida, JackDanielZ, cedric, stefan
Differential Revision: https://phab.enlightenment.org/D805
Signed-off-by: Cedric Bail <cedric.bail@free.fr>
Diffstat (limited to 'src/lib/eolian_cxx/Eolian_Cxx.hh')
-rw-r--r-- | src/lib/eolian_cxx/Eolian_Cxx.hh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/lib/eolian_cxx/Eolian_Cxx.hh b/src/lib/eolian_cxx/Eolian_Cxx.hh new file mode 100644 index 0000000000..c4fe6438a9 --- /dev/null +++ b/src/lib/eolian_cxx/Eolian_Cxx.hh | |||
@@ -0,0 +1,37 @@ | |||
1 | |||
2 | #ifndef EOLIAN_CXX_LIB_HH | ||
3 | #define EOLIAN_CXX_LIB_HH | ||
4 | |||
5 | extern "C" | ||
6 | { | ||
7 | #include <Eolian.h> | ||
8 | #ifdef HAVE_CONFIG_H | ||
9 | # include <config.h> | ||
10 | #endif | ||
11 | } | ||
12 | |||
13 | namespace efl { namespace eolian { | ||
14 | |||
15 | struct eolian_init | ||
16 | { | ||
17 | eolian_init() | ||
18 | { | ||
19 | ::eolian_init(); | ||
20 | } | ||
21 | ~eolian_init() | ||
22 | { | ||
23 | ::eolian_shutdown(); | ||
24 | } | ||
25 | }; | ||
26 | |||
27 | } } | ||
28 | |||
29 | #ifdef EFL_BETA_API_SUPPORT | ||
30 | |||
31 | #include "eo_types.hh" | ||
32 | #include "eo_validate.hh" | ||
33 | #include "eo_generate.hh" | ||
34 | |||
35 | #endif | ||
36 | |||
37 | #endif // EOLIAN_CXX_LIB_HH | ||