summaryrefslogtreecommitdiff
path: root/src/bin/eolian_cxx (follow)
AgeCommit message (Collapse)Author
2014-07-21eolian-cxx: Added missing keyword.Savio Sena
Keyword "register" is also used in Elementary.
2014-07-21eolian-cxx: Handle C++ keywords in function names.Savio Sena
When function names are C++ keywords append '_' to it.
2014-07-18eo-cxx: Added a few complex types to lookup tableFelipe Magno de Almeida
2014-07-18Fixed type looking up for complex typesFelipe Magno de Almeida
2014-07-18Changed uses of std::abort to assert's with better descriptionFelipe Magno de Almeida
2014-07-18eolian-cxx: Fixed complex-types.Savio Sena
2014-07-18eolian-cxx: Fixed the translation of classnamesSavio Sena
2014-07-18eolian-cxx: Fixed using eo::base for extension_inheritanceFelipe Magno de Almeida
Extended the logic for rewriting the eo::base to efl::eo::base for parents to extension inheritance.
2014-07-18eolian-cxx: Fixed the translation of the native type.Savio Sena
2014-07-18eolian-cxx: Initial version of complex types / callbacks / events ↵Savio Sena
implementation.
2014-07-17Eolian generator: Disable system dir scan.Tom Hacohen
This was causing trouble for cross compilation. Thanks to q66 for the fix and cedric for reporting.
2014-07-11eolian: events now use Eolian_Type* instead of stringshareDaniel Kolesa
2014-07-09eolian: the entire API is now const correctDaniel Kolesa
2014-07-09eolian_cxx: pass everything by refDaniel Kolesa
2014-07-09eolian: refactoring step sixDaniel Kolesa
Move Eolian_Function as well, plus fix const correctness of several API funcs.
2014-07-09eolian-cxx: Pass references instead of pointers.Savio Sena
Fix Eolian-Cxx API to pass references instead of pointers.
2014-07-09eolian: refactoring step fiveDaniel Kolesa
Move from all instances of Eolian_Type to Eolian_Type*.
2014-07-09eolian: refactoring step fourDaniel Kolesa
Move from all isntances of Eolian_Function_Parameter to Eolian_Function_Parameter* plus const fixes.
2014-07-09eolian: refactoring step threeDaniel Kolesa
Move from all instances of Eolian_Event and Eolian_Implement to Eolian_Event* and Eolian_Implement*.
2014-07-09eolian: refactoring step twoDaniel Kolesa
Move from all instances of Eolian_Class to Eolian_Class*.
2014-07-07eolian: new API: eolian_system_directory_scan, use itDaniel Kolesa
2014-07-04eolian-cxx: Removed Wshadow warnings.Savio Sena
Summary: Removes Wshadow warnings by prepending/appending radices to the target variables and parameters. Reviewers: felipealmeida CC: cedric Differential Revision: https://phab.enlightenment.org/D1118
2014-07-03eolian: have eolian_all_classes_list_get instead of eolian_class_names_list_getDaniel Kolesa
2014-07-01eolian_cxx: no need to normalizeDaniel Kolesa
2014-07-01eolian-cxx: Make proper handling of namespaces.Savio Sena
Summary: The generation of class prefixes was not taking into account the full classname -- the namespace was not being prepended to it. Fixed that and also re-organized the code a bit, removed some Wshadow warnings also. This commit fixes 'make examples' and 'make check'. Reviewers: tasn, cedric, q66 CC: felipealmeida, smohanty, cedric Differential Revision: https://phab.enlightenment.org/D1100
2014-06-30eolian: _CLASS -> _CLASS/INTERFACE/MIXINDaniel Kolesa
2014-06-30eolian-cxx: Added namespaces and more (see below)Daniel Kolesa
Implemented namespaces Added eolian_wrappers.hh with C++ code wrapping Eolain API Changed eolian_cxx program options. Now they're eolian_gen's Added functions to safe_str.hh (safe_lower, safe_upper, normalize_spaces, path_base) Added a mocked version of type_lookup.hh in advance. The full version will come as soon as complex-types are added. Made apply again by Daniel Kolesa, original implementation by Savio Sena.
2014-06-30eolian: new type APIDaniel Kolesa
This new API supports function pointer types, multiple type subtypes, const attribute without parsing the name string, own attribute for any partial type and more. This commit also updates the C and C++ generators so that they compile and generate correct code. @feature
2014-06-30eolian_cxx: use the new eolian dedup APIDaniel Kolesa
2014-06-30eolian_cxx/generator: support for eot filesDaniel Kolesa
2014-06-20eolian_cxx: support API deduplication like the main generatorDaniel Kolesa
2014-06-03Eolian CXX: Remove unneeded Eo.h include.Tom Hacohen
Eo.h depends on things that are generated by normal Eolian, and because Eolian C++ is generating code pre-build (WHY THE FUCK???), the dependencies are missing. This removes the stupid include, but a more proper fix would be to move eolian_cxx to be part of the build process and not pre-build.
2014-06-03Eolian cxx: Fix it to use the right class names.Tom Hacohen
This is following the class name change in normal eolian.
2014-05-29Eolian: modify 'implement' API parameters.Daniel Zaoui
The function eolian_implement_information_get was returning strings for the class and the function. It was written in this way at the beginning because it was not needed to verify the correctness of the class and the function. Now that we have the namespace feature, this function must check it, meaning that the class and the function are now known. So we can return them instead of returning the strings. The generators had to find the class from the classname. It is no more needed. The C++ generator has been adapted to this new API.
2014-05-26Eolian/Generator: add support to namespaces.Daniel Zaoui
The C generators now support namespaces generation.
2014-05-26Eolian: modify API to allow future scalabilityDaniel Zaoui
Until now, the functions giving access to class information were taking the class name as parameter. Except the fact that we needed to search into a hash table for the internal class structure, no flexibility is possible. This change consists in modifying most of the APIs using the class name with a new Eolian_Class type and adapt the code of the C and C++ generators accordingly.
2014-05-09eolian-cxx: fix #include directives generationFelipe Magno de Almeida
Summary: Fix eolian_cxx #include directives generation for relative paths Reviewers: cedric, stefan, stefan_schmidt CC: cedric, savio Differential Revision: https://phab.enlightenment.org/D833 Signed-off-by: Cedric Bail <cedric.bail@free.fr>
2014-05-07eolian_cxx: fix install-examples and (post-install) compilation.Savio Sena
Summary: This patch fixes T1226 by adding a Makefile.examples to examples/eolian_cxx. It also fixes a bug in bin/eolian_cxx: the include paths were not being correctly generated for directories outside EFL tree. Reviewers: cedric, smohanty, stefan_schmidt, stefan CC: uartie, wayland-efl, felipealmeida, raster, woohyun, cedric Maniphest Tasks: T1226 Differential Revision: https://phab.enlightenment.org/D824 Signed-off-by: Cedric Bail <cedric.bail@free.fr>
2014-05-07Eolian_CXX: Fix generation warnings.Daniel Zaoui
Since there was a bug in Eolian (Spank on you Savio that you didn't tell me :-)), the cxx generator needed some workaround that is no more mandatory now.
2014-05-07eolian_cxx: remove warnings from bin and lib.Savio Sena
Reviewers: cedric, smohanty, stefan_schmidt, stefan CC: felipealmeida, cedric Differential Revision: https://phab.enlightenment.org/D826 Signed-off-by: Cedric Bail <cedric.bail@free.fr>
2014-05-05eolian-cxx: Fixed the generation .eo.h path.Savio Sena
Summary: This patch fixes T1225 Reviewers: uartie CC: uartie, wayland-efl, felipealmeida, cedric, smohanty, raster, stefan_schmidt, stefan, woohyun Maniphest Tasks: T1225 Differential Revision: https://phab.enlightenment.org/D821
2014-05-04eolian-cxx: fix make distcheck and automake files for Eolian C++Felipe Magno de Almeida
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-03eolian_cxx: initial version of the EFL C++ Bindings Generator.Savio Sena
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>