Commit Graph

19 Commits

Author SHA1 Message Date
Vitor Sousa dae35333fd eolian_cxx: Use C++ wrappers instead of native types as parameters
Summary:
Using C++ wrapper types in the signature of methods of the generated
classes.
Now, when the type is an Eo type defined in Eolian, eolian_cxx will detect
it and use the equivalent C++ wrapper.

Types defined in Eolian no longer need to be specified in the lookup table,
so removed them from there.

Disable wrapping of non-const char*. The current wrapper (unique_ptr) is
not suited for some required operations like ownership acquisition from
C code.

Fix constructing properties that only have the "set" method.

Fix translation of non-const parameters.

Modified Makefiles to allow proper inclusion of evas_cxx headers required
by some tests and examples.

Move one auxiliary function to another reader to make it more accessible.

@feature

Reviewers: felipealmeida, q66, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2752
2015-06-24 15:23:01 +01:00
Stefan Schmidt d48c5accea Revert "autotools: enable make check per individual modules."
This reverts commit 35119e7bfd.

Reverted to bring make check back in a working state. Also the way we
want to handle a more modular testing needs discussion.
2015-05-07 20:50:56 +02:00
kabeer khan 35119e7bfd autotools: enable make check per individual modules.
Currently make check runs tests of whole EFL.Enabled running
of tests of individual modules by make check-<modulename>

Signed-off-by: kabeer khan <kabeer.khan@samsung.com>
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:07 +02:00
Jean-Philippe Andre aa057fd63d Ecore audio: Fix (skip) build on Windows
Thanks vtorri for the report
2015-04-28 15:24:09 +09:00
Felipe Magno de Almeida b55a8104ad cxx: Made automake files depend on their C counterparts for compilation
Avoids redundancy and maintenance for non-C++ developers.
2015-04-14 01:06:57 -03:00
Vitor Sousa d530389898 eolian_cxx: Add protected methods and events to C++ wrappers and fixes
Using eina::string_view in eolian generated interfaces (instead of
std::string) to allow lightweight passing of both C strings and C++
std::string.

Also, No longer using eina::optional in generated headers for types
that already implements the concept of null state (like Eo wrappers
and eina_accessor).

Also fix allocating callback objects require by class methods
(i.e. static) in static vectors so the memory will be freed when the
programs exit.

Added a new test case for testing callbacks on class methods.

Moved method definitions and supplementary code from generated C++
wrappers to auxiliary header file (.eo.impl.hh) generated together
with the main ".eo.hh" file. Updated Makefiles to list such files in
the compilation and cleanup processes. Updated .gitignore to include
these new generated files.

Made general adjustments on the documentation of generated C++ wrappers

Added "PREDEFINED" preprocessor macro definition in the Doxyfile.in in
order to make some adjustments for better documentation in the C++
generated headers.  Excluding generation of documentation for classes
in the "eo_cxx" namespace (the namespace for "abstract" eolian C++
wrappers).  Now generating the documentation for the events too.
Hiding some auxiliary code from being documented. Some aesthetic
adjustments for generated white space. Generate documentation for the
main constructor of C++ wrappers and added auxiliary grammars to list
parameters names.
2015-04-14 01:06:57 -03:00
Jean Guyomarc'h b50813f6e5 autotools: provide BSD-echo compatibility (fix c++ bindings)
Summary: The '-e' option does not exist in BSD-echo, nevertheless it behaves by default like the "echo -e" of the GNU-echo.

Reviewers: raster, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1376

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-08-27 22:31:20 +02:00
Savio Sena 073b666022 autotools: Fixed 'make examples' and 'make examples-install'
It was broken in set-ups with ($(builddir) != $(srcdir)) && ($(builddir) !=
$(srcdir)/build)
2014-07-02 20:01:09 -03:00
Savio Sena 847dcd26ac autotools/eolian-cxx: Added variable to avoid code duplication. 2014-07-02 12:57:58 -03:00
Savio Sena a5adffa152 autotools/eolian-cxx: Fixed the dependencies in some rules. 2014-07-01 17:08:47 -03:00
Savio Sena 951fa3ac29 autotools: Fixed 'make clean' for Eolian-Cxx.
Included all generated C++ headers in CLEANFILES (Automake).
2014-07-01 13:57:06 -03:00
Tom Hacohen 9305d8e54f Revert "Eolian CXX: Fix make distcheck"
This is essentially a revert of my recent commit. This is wrong. These
files are not built sources, as they are not/should not be used by
anything else. They are just generated files. Putting them there
essentially makes the build linear and just wrong.

See commit 2010de6810 which first
introduced this change for more details.

This reverts commit 43038144c2.
2014-06-11 10:58:22 +01:00
Jean-Philippe Andre 43038144c2 Eolian CXX: Fix make distcheck
nodist files should be added to BUILT_SOURCES for
make distcheck to work (when cleaning the tree)
2014-06-11 10:02:42 +09:00
Tom Hacohen 2010de6810 C++ bindings: Generate them as part of the build, not pre build.
There's no reason why it should be forced in with BUILT_SOURCES.
It should be part of the normal build and dependency based (nothing should depend
on it anyway).

This patch fixes that.
2014-06-04 16:14:29 +01:00
Savio Sena 3e5408cfb0 autotools: Fix Makefile_Ecore_Audio_Cxx.am.
Summary: This patch fixes T1246.

Reviewers: cedric, smohanty, stefan_schmidt, raster

Reviewed By: raster

CC: felipealmeida, cedric

Maniphest Tasks: T1246

Differential Revision: https://phab.enlightenment.org/D873
2014-05-20 12:19:25 +09:00
Stefan Schmidt 89b55830ba Revert "eolian-cxx: re-enable Makefile_Ecore_Audio_Cxx installation and tests."
This reverts commit 1e592d22b7.
2014-05-12 16:49:01 +02:00
Savio Sena 1e592d22b7 eolian-cxx: re-enable Makefile_Ecore_Audio_Cxx installation and tests.
Reviewers: cedric, stefan, stefan_schmidt, smohanty

CC: felipealmeida, cedric

Differential Revision: https://phab.enlightenment.org/D839

Signed-off-by: Cedric Bail <cedric.bail@free.fr>
2014-05-09 12:48:10 +02:00
Felipe Magno de Almeida 8149823897 eolian-cxx: fix make distcheck and automake files for Eolian C++
Summary:
Fixed distcheck for Eolian C++. Made the generated files as
nodist so it doesn't get picked up for generation way too
early.

Reviewers: cedric, seoz

CC: cedric

Maniphest Tasks: T1220

Differential Revision: https://phab.enlightenment.org/D820

Signed-off-by: Cedric Bail <cedric.bail@free.fr>
2014-05-04 12:21:30 +02:00
Savio Sena 46b6e8a563 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>
2014-05-03 00:56:32 +02:00