summaryrefslogtreecommitdiff
path: root/src/bin/eolian_cxx (follow)
AgeCommit message (Collapse)Author
2019-10-24cxx: Add license to CXX bindings.Felipe Magno de Almeida
Summary: Like C#, it will also be Apache 2.0 Depends on D9414 Reviewers: vitor.sousa, woohyun, jpeg, lauromoura Reviewed By: lauromoura Subscribers: jpeg, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9418
2019-09-30bindings: Fix disposal of eolian stateLauro Moura
Summary: It was actually leaking before. Let's use some RAII classes that were already there. ref T8280 Reviewers: q66, felipealmeida, brunobelo Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T8280 Differential Revision: https://phab.enlightenment.org/D10237
2019-08-16eolian-cxx: Fix use after free for base variableFelipe Magno de Almeida
T8137 Differential Revision: https://phab.enlightenment.org/D9575
2019-07-31eolian-cxx: Generate eot filesFelipe Magno de Almeida
Summary: Eolian Type files were not being generated, which made some template specialization to not be defined, for example for function_wrappers. Reviewers: bu5hm4n, woohyun, lauromoura Reviewed By: lauromoura Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9468
2019-05-03eolian: refactor parsing API and path handlingDaniel Kolesa
This splits the eolian_file_parse API into two, one for parsing files already present in the database (always by filename) and one for parsing paths. It fixes several bugs/leaks on the way (incorrect use of stringshare etc.) as well as adds checking for whether there are no conflicting filenames at scan time, for free. That means it is now no longer possible to scan two paths which have an eo or eot file of the same name in them. It should also be faster now. It also fixes T7820. @fix
2018-12-17build: remove unused meson fileMarcel Hollerbach
this was added by accident Differential Revision: https://phab.enlightenment.org/D7469
2018-11-23eolian: implement new inherit behaviorDaniel Kolesa
Eolian now separates 'parent' and 'extensions'. For regular classes, parent is the first item in the inherits list and extesions is the rest. For interfaces and mixins, parent is NULL and extends is the inherits list. The reason for this is the separation of them in syntax in near future. It also slightly changes the behavior; since for interfaces and mixins, parent is always NULL now, you can freely inherit from all types of classes without needing to manually put an interface type as the first item of the inherits list.
2018-10-24meson: here comes cxx bindingsMarcel Hollerbach
this commits is bringing cxx bindings. You can enable / disable them with the cxx option. Differential Revision: https://phab.enlightenment.org/D7181
2018-10-18Revert "meson: add cxx bindings"Marcel Hollerbach
This reverts commit 5aaf2cbb5defd64a2048fe90e80004d435bbca1a. The cxx bindings were accidently merged. Things are missing (like .eot.h files)
2018-10-18meson: add cxx bindingsMarcel Hollerbach
this commit adds cxx bindings to meson. Differential Revision: https://phab.enlightenment.org/D7169
2018-05-03efl_mono: More uniformization of the handling of namesLauro Moura
Summary: Uses a common helper to open and close namespaces, to get the managed and unmanaged name of things, the interface, concrete and inherit class names, etc. eolian_cxx: Add namespace information to func_def, as it'll avoid eolian-cxx clients dealing with the eolian C api directly when trying to access a function pointer namespace. Depends on D6048 Reviewers: felipealmeida, vitor.sousa Reviewed By: vitor.sousa Subscribers: cedric Tags: #efl Differential Revision: https://phab.enlightenment.org/D6049
2018-03-12eolian: update type/var name APIsDaniel Kolesa
2018-03-12eolian: update class name APIsDaniel Kolesa
2018-03-09eolian cxx: fix typoDaniel Kolesa
2018-03-08eolian cxx: replace declaration api with obj apiDaniel Kolesa
2018-03-08eolian cxx: remove usages of obsolete file_get APIsDaniel Kolesa
2018-03-02eolian cxx,csharp: Update after eolian changesLauro Moura
Closes D5829.
2018-03-02eolian*: replace various directory_scan/file_parseDaniel Kolesa
2018-02-27eolian: eolian_* -> eolian_state_*, Eolian -> Eolian_StateDaniel Kolesa
2017-12-17eolian cxx: pass state when getting declsDaniel Kolesa
2017-12-06eolian_cxx: Fix unit initializationLauro Moura
Summary: eolian_cxx was segfaulting due to a null unit being passed to class_get_by_file. Reviewers: felipealmeida, jpeg, q66 Differential Revision: https://phab.enlightenment.org/D5611
2017-12-05eolian cxx: free state on exitDaniel Kolesa
2017-12-05eolian: pass state where necessaryDaniel Kolesa
This modifies the API so that global state removal is made possible. It's still used internally for now but externally the state is contained.
2017-12-05cxx: Fix compilation after mergeJean-Philippe Andre
This resolves a few issues and brings back the experimental features. Also, disable some of the ugliest experiments: - manual function overrides, - define APIs only in eo_cxx namespace Some APIs are generated behind EFL_CXXPERIMENT (eg. event_name_cb_add or some weak pointer stuff). I believe they are useful but would like to make sure there are no serious drawbacks with generating those.
2017-12-05cxx: Define types after forward declarationsJean-Philippe Andre
This is useful if the types refer to the current class.
2017-12-05cxx: Implement support for partsJean-Philippe Andre
This generates methods like this: Part_Class part_name() const; Which can then be used like: slider.indicator().format_string_set("%1.1f");
2017-12-05cxx: Use set for forward classesJean-Philippe Andre
This avoids duplication. Not very important as there are FWD_GUARD macros anyway.
2017-12-05cxx: Fix some pedantic warnings from clangJean-Philippe Andre
Shadow variables, 0 used as nullptr. clang still complains that usage() is not declared as noreturn.
2017-12-05cxx: Add support for function pointersJean-Philippe Andre
This was tested on the function pointer Efl.Ui.Format_Func_Cb
2017-12-05cxx: No need to declare the current class twiceJean-Philippe Andre
This avoids double _FWD_GUARD for the current class in a .eo.hh header.
2017-10-25eolian: make inherits_get return a list of classes, not stringsDaniel Kolesa
Most of the time you need to retrieve the class from the string anyway, so remove this relic of old Eolian and gain some small performance benefits and extra convenience. Subtly breaks API but everything should be updated.
2017-09-13eolian: always implicitly validate database and remove its APIDaniel Kolesa
2017-06-02eolian-cxx: Fixed compilation error after Eolian_Unit type introductionFelipe Magno de Almeida
2017-01-18cxx: Modify how to generate C++ headers and allow cyclic dependenciesFelipe Magno de Almeida
Allow cyclic dependencies in generated C++ headers by changing order of includes and creating forward declarations.
2016-10-25eolian: remove type silencing stuff entirelyDaniel Kolesa
this was useful during transition, but not anymore
2016-09-14eina-cxx: Moved variant to eina C++Felipe Magno de Almeida
2016-06-06eolian_cxx: add missing libgen.h include for basename() to fix build on OS XStefan Schmidt
On Linux this went through and has gone unnoticed. basename() needs libgen.h though and eolian_cxx was not including it.
2016-06-06eolian-cxx: Rewrite to accomodate new features of the C++ bindingFelipe Magno de Almeida
2016-05-26eolian-cxx: Fixed lookup of class typesFelipe Magno de Almeida
2016-05-23eolian-cxx: Fix generation of complex types in C++ bindingFelipe Magno de Almeida
Fixed generation of complex types in C++ binding, with tests. This problem came after the removal of the pointer types for top-level complex types.
2016-05-23c++: Reorganized C++ binding generationFelipe Magno de Almeida
Moved all generation to a single Makefile_Cxx.am file instead of throughout the whole project. And fixed C++ generation on Elementary after elm merge.
2016-05-17eolian: add event_prefix and have classes follow that or eo_prefix by defaultDaniel Kolesa
Previously events used to use class name as a prefix and ignored eo_prefix when specified. This is no longer the case. Events follow eo_prefix by default now. In order to get around this for classes where this is undesirable, a new field event_prefix was added which takes priority over eo_prefix. If neither is specified, class name is used like previously. @feature
2016-04-21eolian-cxx: Remove .Base requirementFelipe Magno de Almeida
Remove requirement that class can't have the same name as another class's namespace.
2016-03-03eolian_cxx: Fix C++ compilation with new Eolian_Type_Type valuesVitor Sousa
2016-02-10eolian: allow silencing of type errors in validationDaniel Kolesa
This allows generators to silence type errors in validation in order to reduce duplicate error messages when generating multiple files. Also adjusted the C generator to only emit type errors when generating Eo header files. @feature
2015-10-09eolian-cxx: Fixed possible exception escaping mainFelipe Magno de Almeida
Added try/catch around main to show the reason for the generation failure. @fix CID 1265600
2015-09-03eolian: remove support for old style docs completelyDaniel Kolesa
2015-07-08eolian: improve function_full_c_name_get APIDaniel Kolesa
It's now generalized to work properly with legacy functions as well as correctly append suffixes. Thus, it can be easily used with the documentation generator and in other places. @feature
2015-06-24eolian_cxx: Use C++ wrappers instead of native types as parametersVitor Sousa
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-11eolian: remove support for old event doc syntaxDaniel Kolesa