summaryrefslogtreecommitdiff
path: root/src/Makefile_Eolian_Cxx.am
Commit message (Collapse)AuthorAgeFilesLines
* cxx: Modify how to generate C++ headers and allow cyclic dependenciesFelipe Magno de Almeida2017-01-181-3/+12
| | | | | Allow cyclic dependencies in generated C++ headers by changing order of includes and creating forward declarations.
* eolian-cxx: Added cyclic compilation testFelipe Magno de Almeida2017-01-181-0/+2
|
* eo-cxx: race for promisesFelipe Magno de Almeida2016-09-141-2/+1
|
* eolian-cxx: Implement future template class for C++Felipe Magno de Almeida2016-09-111-2/+2
|
* build: split EXTRA_DIST files in src/ off from DISTFILES and handle separatelyStefan Schmidt2016-06-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This is again to avoid the "Argument list too long" error we are hitting more and more now. Given we just merged elementary, emotion generic players, evas generic loaders and elm_code it is not surprising we are hitting it again. This time the number of files being hold in DISTFILES has just grown to big so a make dist was no longer possible. If one looks at what the DISTFILES variable from automake holds you can image it grows a lot with all the source files plus generated files we have in tree now. DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) To cut off a big chunk but still keep all the other automagic in place for SOURCE files I went and renamed the EXTRA_DIST in src/ to EXTRA_DIST2 and handle the files in a dist-hook now. Another thing to note here is that this also only happens as we have the one big Makefile with includes. If we go back to per directory Makefiles this problem should vanish as well. In any case we need a solution for 1.18 now and this is what I have to offer. If you have a cleaner solution in mind feel welcome to test it out and if everything we need keeps working (make, make examples, make check, make benchmark, make dist and make distcheck) go ahead.
* eolian-cxx: Rewrite to accomodate new features of the C++ bindingFelipe Magno de Almeida2016-06-061-38/+49
|
* eolian-cxx: ship new complex.eo file in distStefan Schmidt2016-05-241-1/+2
|
* eolian-cxx: Add test for list and array complex typesFelipe Magno de Almeida2016-05-231-1/+10
|
* c++: Reorganized C++ binding generationFelipe Magno de Almeida2016-05-231-0/+1
| | | | | | 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.
* eolian-cxx: Added test for the removal of the .Base class requirementFelipe Magno de Almeida2016-05-041-4/+15
| | | | Test creates class with the same name as the namespace of another class
* tests: eolian_cxx: fix distcheck after new name_name.eo file got addedStefan Schmidt2016-04-251-2/+7
| | | | | We need to ship this file in axtra dst and also make sure we clean up the generated files afterwards.
* eolian-cxx: Remove .Base requirementFelipe Magno de Almeida2016-04-211-0/+5
| | | | | Remove requirement that class can't have the same name as another class's namespace.
* Test rework #19: Eolian_CxxVincent Torri2016-02-161-1/+2
|
* autotools: remove EOLIAN_FLAGSDaniel Kolesa2015-06-011-3/+0
| | | | | We don't need to specify each dir separately as Eolian has been searching recursively for quite a while.
* Revert "autotools: enable make check per individual modules."Stefan Schmidt2015-05-071-6/+0
| | | | | | | This reverts commit 35119e7bfdc7c13c2041293f3d0b2ebe1fb7c313. Reverted to bring make check back in a working state. Also the way we want to handle a more modular testing needs discussion.
* autotools: enable make check per individual modules.kabeer khan2015-05-071-0/+6
| | | | | | | | 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>
* eolian-cxx: Fix dependency problem in makefileFelipe Magno de Almeida2015-04-141-5/+5
| | | | Fixed lacking explicit dependency for C Eolian headers, causing random compilation errors in test for eolian-cxx.
* cxx: Made automake files depend on their C counterparts for compilationFelipe Magno de Almeida2015-04-141-1/+5
| | | | Avoids redundancy and maintenance for non-C++ developers.
* eolain_cxx: Fix C++ support for new Eolian featuresVitor Sousa2015-04-141-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added optional constructor methods for C++ Eolian wrappers. Changed the interface of wrappers' main constructors. If there are optional constructor methods they should be passed as variadic template argument at the end of the constructor. To support variadic template arguments, the optional "parent" parameter is now the first parameter and there is another constructor without the "parent" parameter. Checking for @optinal and @nullable attributes instead of @nonull. Now @nonull is the default, and eina::optional is only used when @optional or @nullable attribute is specified. The names of constructor methods no longer have the class name prefixed. Added unit tests for checking the binding of optional constructors. Added new .eo file to be used in the test. Changed the generated documentation of constructors. Changed the efl::eo::inherit accordingly, to address these new features. Now the constructor methods should be explicit called in the efl::eo::inherit constructor, which will receive them via variadic template arguments. Added another constructor to efl::eo::inherit for passing the parent object. Updated some tests and examples to follow the new interface. Removed some code that is no longer necessary. Also, fix Eolian C++ support for constructing properties. fix assertion when parsing constructing properties. Now if a property is a constructing property eolian_cxx will generate a constructor method that have the property name (without the "_set" suffix).
* eo_cxx: Fix signal_connection disconnect crashVitor Sousa2015-04-141-1/+1
| | | | | | | | | | | | Fixed crash when disconnecting event inside of its own event callback. Instead of deleting the callback object immediately during disconnection (which causes the callback to be freed), the deletion is now scheduled for later (using ecore_main_loop_thread_safe_call_async). Updated some Makefiles to proper include ecore now that it is used in all event wrappers. Added a unit test to verify crashes under these circumstances.
* eolian_cxx: Add protected methods and events to C++ wrappers and fixesVitor Sousa2015-04-141-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* eolian_cxx: Fix occasional build error with eolian_cxx_test_wrapper.ccVitor Sousa2015-02-231-0/+1
|
* allow C++ user create new classes inheriting from Eolian generated ClassesLarry Jr2015-01-051-1/+12
|
* eolian_cxx: Add implicit conversion of the returned pointer of C++ wrappersVitor Sousa2015-01-051-2/+24
| | | | | | | | | | | Overloaded address-of operator for C++ Eolian wrappers for implicit converting to any ancestor pointer type when getting the object memory address. Added new grammars to aid the creation of the pointer wrappers responsible of doing the implicit conversions. Added a unit test which checks the address-of overload for arbitrary classes. Added new .eo files to be used in it.
* cxx: General C++ Eo wrapper generation improvementVitor Sousa2015-01-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using a new architecture in the generated files that simplify multiple inheritance and allows the use of interface types as parameters. No longer using a hand-crafted C++ header for eo_base.eo. This file was added to the generation process. Updated all files that are dependent in the hand-crafted eo_base C++ header. Now there is a class that contains the essentials functions of the former eo::base wrapper and that is used to create (through inheritance) the "concrete" classes for all Eo generated wrappers. No longer binding any function or property that are protected, private or legacy for now. eolian_type_instance is now a struct with general information for the whole type. Added the new header file namespace_generator.hh to hold namespace generation grammars. Separated declaration and definition of Eo wrappers methods. Referring for most objects by its full name (starting at the global namespace ::) in the generated files. Created additional helper grammars to avoid code replication. Removed a TODO comment referring to a doubt about inheritance of constructor methods. Added a TODO comment regarding memory allocation for callbacks in static member functions.
* eolian_cxx: Assertions to ensure C++ wrapper compatibility with Eo*Vitor Sousa2015-01-051-0/+1
| | | | | | | | | | | | | | | Added static assertion in the generated header to ensure that the wrapper have the same size of Eo*, thus grating compatibility between these types. Added static assertion in the generated header to ensure that the wrapper have standard layout. This should ensure correct type sizes when dealing with inheritance. Created a test to ensure that eo::base and the eolian wrappers have the same size of a Eo*. Added eolian_cxx_test_wrapper.cc to the list of test source files in Makefile_Eolian_Cxx.am.
* makefile_eolian_cxx: Fix indent and trailing whitespaceStefan Schmidt2014-11-171-3/+3
| | | | Purely cosmetic as I stumbled over it when looking at the file.
* build_eolian_cxx_test: Set dependencies correctly and remove BUILT_SOURCESStefan Schmidt2014-08-051-5/+4
| | | | | | | | | | This took quite a while to figure out. The two object names for the cxx callback test and callback.c have been to close. callback.c needs the eolian headers and the CXX test needs the eolian_cxx headers. Split it up and set the deps correctly. If you always run check with something like -j 9 you might have never noticed as it was very likely that the headers have been generated due to the wrong dep before.
* Revert "Eolian CXX: Get rid of built sources for the callbacks test sources."Stefan Schmidt2014-08-041-0/+4
| | | | | | | | This reverts commit 638e72fda4bd312247c133038b26d8105315176f. After this change the files did not end up in the tarball and failing make distcheck ../../src/tests/eolian_cxx/callback.c:11:25: fatal error: callback.eo.h: No such file or directory
* Eolian CXX: Get rid of built sources for the callbacks test sources.Tom Hacohen2014-08-041-4/+0
| | | | This is not needed now that dependencies are well in place.
* tests/eolian_cxx: Package callback.eo file into tarball in all cases.Stefan Schmidt2014-07-311-2/+1
| | | | | When running make distcheck with release mode enabled the callback.eo file did not find its way into the tarball and failed the build.
* autotools: Fix eolian_cxx tests.Savio Sena2014-07-301-1/+2
| | | | | Added callback.eo.c and callback.eo.h as dependencies to eolian_cxx_test_callback.c and also added all generated files to CLEANFILES.
* Revert "tests/eolian_cxx: Add another generated file to BUILT_SOURCES"Carsten Haitzler (Rasterman)2014-07-301-2/+1
| | | | | | | | | | This reverts commit 577a6bfbba0a1cf19f394c66addf27b0332500d6. This brings efl back to building - it entirely stopped building for me with this change so even if this tried to fix something... it made just regular building of efl at all cease to work here which i'd say is bad (if this just fixes a dist problem - at least dist is broken, but regular build is not - we are in better shape).
* tests/eolian_cxx: Add another generated file to BUILT_SOURCESStefan Schmidt2014-07-301-1/+2
| | | | | | If not put into BUILT_SOURCES it will not be added to CLEANFILES and thus staying around as uncleaned file which make distcheck complain about it.
* autotools: Added missing .eo to EXTRA_DISTSavio Sena2014-07-211-0/+2
| | | | This fixes "make dist".
* eolian-cxx: Added callback testFelipe Magno de Almeida2014-07-181-4/+13
| | | | Added test for callback generation and uses
* eolian-cxx: Initial version of complex types / callbacks / events ↵Savio Sena2014-07-181-8/+3
| | | | implementation.
* eolian-cxx: Added tests.Savio Sena2014-07-181-0/+39
|
* eolian_cxx: add missing file for make dist.Cedric BAIL2014-07-071-0/+1
|
* eolian-cxx: Added namespaces and more (see below)Daniel Kolesa2014-06-301-5/+4
| | | | | | | | | | | 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.
* Dont install c++ headers of bindings when --disable-c++11 is used.Guillaume Friloux2014-06-021-1/+1
|
* autotools: Fix eolianc-xx header distribution.Savio Sena2014-05-261-3/+4
| | | | | | | | | | | | | | | Summary: Sorry, last patch added the headers to the correct relative location but replaced dist with nodist which is incorrect. nodist is for generated headers only. Reviewers: cedric, raster Reviewed By: raster CC: felipealmeida, smohanty, cedric Differential Revision: https://phab.enlightenment.org/D898
* autotools: fix Eolian-Cxx installation.Savio Sena2014-05-241-3/+6
| | | | | | | | | | | | Summary: grammar/* is now installed to the correct destination. Reviewers: tasn, cedric CC: JackDanielZ, felipealmeida, smohanty, cedric Differential Revision: https://phab.enlightenment.org/D895 Signed-off-by: Cedric Bail <cedric.bail@free.fr>
* eolian_cxx: oops, forgot to disable build of Eolian_Cxx if C++11 is not ↵Cedric Bail2014-05-041-0/+4
| | | | available.
* eolian-cxx: fix make distcheck and automake files for Eolian C++Felipe Magno de Almeida2014-05-041-34/+27
| | | | | | | | | | | | | | | | | 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>
* eolian_cxx: add forgotten include for packaging.Cedric Bail2014-05-041-0/+15
|
* eolian_cxx: fix include for cross compiling on Windows.Cedric Bail2014-05-041-11/+2
|
* eolian_cxx: initial version of the EFL C++ Bindings Generator.Savio Sena2014-05-031-0/+46
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>