Commit Graph

88 Commits

Author SHA1 Message Date
Cedric BAIL 0b04186a7f emile: initial introduction of Emile.
The intent of Emile is to be the common layer for serialisation, compression
and ciphering. It will expose the library we currently use internally to an
easier use from the outside (like gcrypt and lz4). It should improve portability.
Instead of pushing JSON, XML and what's not to Eina, I do think that they will
fit better in Emile.

As for the naming of Emile, you will need to be French and say :
"Un quoi ?" "Un serializer !"

Regarding why it is put there in the stack. Right now there is two users of
compression (eet and terminology), two users of cipher library (eet and ecore_con)
and a few handful of user for serialization (eina, eet, efreet, ecore_con, ...).
So the choice was quite simple, it needed to be below Eet. Now it could have been
on top of Eo or integrated into Eina.

One of the use case I am thinking of, is to compress Eo object when a canvas get
hidden/minized. For that it require Eo to use that library and it can't be a higher
level object. And with current implementation of Eo it is perfectly possible to
implement such idea. So not at Eo level.

As for Eina, I am starting to think it is getting to much things in its namespace.
I do believe that infact Eina_Simple_XML and Eina_File should after all have landed
in their own library. That's why I am putting the current logic in a new library.
It is going to expand, I want it to provide an few SAX like parser for JSON,
Eet_Data and protobuf with also an API like Eet_Data to directly feed those value
into a C structure without using a DOM at all. It would also be the right place
to experiment and benchmark for a new Eet_Data format that could be more efficient
to use.

So at the end, and due to how I see things going and being used, I do think it
is better of in its own library.
2015-03-17 09:58:17 +01:00
Cedric BAIL cf52036667 Revert "Add --disable-gui."
This reverts commit 3ed4f74590.
2015-03-17 09:58:17 +01:00
Stefan Schmidt dd6f81ea15 build: Ensure we have $(DESTDIR)$(libdir) during parallel install
While install-exec-hook gets normally executed after install and
thus we would have this we need to ensure it here when we want to
be safe regarding parallel install.
2015-02-25 16:43:35 +01:00
Larry Jr 2b12114777 allow C++ user create new classes inheriting from Eolian generated Classes 2015-01-05 15:52:27 -02:00
Stefan Schmidt a80b88c0ea elocation: Add example for using the elocation API
Basic example to show API usage.
2014-11-11 11:03:23 +01:00
Stefan Schmidt a2d2cdaf9f elocation: Add elocation libraray to EFL.
Elocation is meant as a convenience library to ease application developers
the usage of geo information in their apps. Adding a geo tag to a picture or
translating an address to a GPS position and show it on a map widget are just
some of the use cases.

In the beginning elocation will rely on the GeoClue1 DBus service. Supporting
the new GeoClue2 DBus service is planned and worked on. GeoClue offers
providers for various techniques to get hold off the current position. Ranging
from GeoIP over wifi and GSM cell location to GPS.

This has been developed a while ago and was living in my private dev space.
It is about time to move this into EFL and bring it forward.

The detection of the GeoClue service is being handled on runtime and no new
dependency is added due to this library.

@feature
2014-11-11 11:02:08 +01:00
Daniel Kolesa f33101ea8c elua/autotools: generate .eo.lua files out of all eo files at build time
Also change the generator a bit so that it doesn't rely on lib name information
and fix the runtime to properly source lua files within tree.
2014-10-06 13:28:09 +01:00
Felipe Magno de Almeida 30fa700599 [cxx] Fixed distclean when the C++ binding is enabled
The C++ examples were being added twice. So the make distclean was tried after the Makefile was already removed.

Removes the EXAMPLES_SUBDIRS redundancy for the C++ examples.
2014-09-30 12:47:20 -03:00
Cedric BAIL 48ee3ed15f autotools: extra dist subdirs must be filled with all directory.
It is important to remember to also include the one we don't build.
2014-09-09 12:27:51 +02:00
Tom Hacohen 218e76fd30 Ecore con: Start migration to eo. 2014-08-22 17:00:49 +01:00
Tom Hacohen 3a468f7ad3 Efl interface file: Start using the new interface. 2014-08-21 11:02:11 +01:00
Tom Hacohen 2f9d1dc69e Efl: Create Efl_Cxx makefile and headers. 2014-08-21 11:02:10 +01:00
Tom Hacohen b0b533fcb1 Efl: Create libefl.
Create libefl.so and the interal package for dependencies.
2014-08-21 11:02:10 +01:00
Cedric BAIL b91012f62c autotools: try to simplify our Makefile.am to reduce warnings. 2014-08-12 11:19:57 +02:00
Vincent Torri 9631585f24 efl: remove Windows CE support 2014-07-13 15:17:17 +02:00
Savio Sena 1ede3cc69f autotools: Removed duplicate from src/Makefile.am. 2014-07-03 13:54:54 -03:00
Felipe Magno de Almeida 30df128be5 eldbus-cxx: Implementation of eldbus C++ API
Summary:
Applications can:

  void method_callback(void* data, const Eldbus_Service_Interface* iface,
                       const Eldbus_Message* message);
  struct { ... } data_struct;

  Eldbus_Method methods[] =
   {
     "method1", ELDBUS_ARGS("b", "bool"), ELDBUS_ARGS("b", "bool"), ELDBUS_METHOD_FLAG_HAS_DATA
     , (Eldbus_Method_Cb)&method_callback, &data_struct
   };

   And method_callback will be called with data parameter pointing to data_struct global object.

Also, Eldbus-cxx supports registering an interface passing a lambda or
function object as method. For example:

  edb::service_interface iface = edb::service_interface_register
    (c, path, interface
     , es::method("SendStringAndBool"
                  , [expected_string, expected_bool] (std::string const& n, bool b
                                                      , bool* out)
                  {
                    std::cout << "Running SendStringAndBool" << std::endl;
                    ck_assert(n == expected_string);
                    ck_assert(b == expected_bool);
                    *out = b;
                    return n;
                  }
                  , es::ins<std::string, bool>("string", "bool")
                  , es::outs<std::string, bool>("string", "bool")
                  )
    );

When a request for "SendStringAndBool" with the proper signature is
called, executes the lambda and replies with the return value and
its bool* out parameter value.

Reviewers: cedric, woohyun, raster

CC: savio, cedric

Differential Revision: https://phab.enlightenment.org/D1052
2014-07-03 16:28:23 +09:00
Daniel Kolesa 09a079cb10 autotools: do not use sed -i 2014-07-02 22:16:16 +01:00
Daniel Kolesa 4e1b33f9f0 autotools: seems like GNU sed is incompatible... will fix later 2014-07-02 21:41:53 +01:00
Daniel Kolesa df0ae2881c autotools: so it seems like the space is required after all. 2014-07-02 21:07:22 +01:00
Daniel Kolesa 5acd33c20c autotools: sed portability 2014-07-02 21:02:48 +01:00
Daniel Kolesa 876adb13e5 elua: extra cond 2014-06-10 15:48:52 +01:00
Daniel Kolesa 91ba672609 elua: preparation for lua file generation 2014-06-10 15:48:52 +01:00
Daniel Kolesa 832f652a5a Elua: initial commit
Elua is a LuaJIT based runtime for the EFL meant to provide facilities for rapid application development. The name is temporary. The EFL bindings will be generated with Eolian. @feature
2014-06-10 15:48:46 +01:00
Guillaume Friloux 3ed4f74590 Add --disable-gui.
This allows people to disable the building of anything GUI related.
In my case, it is used for servers.

I encourage anyone that think they can do a better patch to improve it,
as i dislike having to add all those AM_CONDITIONAL().

Maybe the macros should be improved.
2014-06-05 13:40:44 +02:00
Felipe Magno de Almeida 0a6a3deaee eolian_cxx: removes C++ examples when C++11 isn't supported
Summary:
Added HAVE_CXX11 guards to Makefile*.am files for C++ binding to avoid
compilation errors for examples when C++11 isn't supported. This also
disable installation of all EFL CXX pkgconfig files.

Reviewers: cedric, stefan, stefan_schmidt

CC: cedric, savio

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

Signed-off-by: Cedric Bail <cedric.bail@free.fr>
2014-05-09 12:43:43 +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
Yossi Kantor 2c8bc8df52 Eolian: Integration of Ecore Audio In 2014-04-02 15:56:14 +03:00
Cedric BAIL b56d7bba60 evas: add benchmark for TGV loader and saver. 2014-04-01 22:00:14 +09:00
Felipe Magno de Almeida ab3eb4b2d3 eet-cxx: add implementation for eet C++.
Usage example:

  struct type
  {
    int foo;
    float bar;
  };

  type t0;

  auto descriptor = make_descriptor("type", &type::ofo, &type::bar);

  eet_data_write(file, descriptor.native_handle(), "type", &t0, false);

  std::unique_ptr<type> p = read_by_ptr(file, "type", descriptor);
  type t = read(file, "type", descriptor);

@feature

Reviewers: cedric, smohanty

Reviewed By: cedric

CC: savio, cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@free.fr>
2014-04-01 22:00:13 +09:00
Yossi Kantor 2be615916a Eolian: Integration of Edje and Edje Edit 2014-03-24 08:14:30 +02:00
Daniel Zaoui e5be817b7f Eolian: Fix path to .eo 2014-03-09 13:19:07 +02:00
Daniel Zaoui a3e38d7884 Eolian: generation of the first Eo file.
The first object that we generate with Eolian is Evas_Line, as it is a
simple one.
Two files are generated during build:
- the .eo.c contains the APIs definitions invoking Eo, the Eo functions
extracting the parameters and calling the hand written functions and
Eo structures to define the objects. These hand written functions are
located in e.g evas_object_line.c.
- the .eo.h contains the APIs and Eo prototyes.

We will continue with the other objects. If you note something wrong,
please update us asap:
daniel.zaoui@samsung.com
yossi.kantor@samsung.com
2014-03-06 15:12:51 +02:00
Tom Hacohen b5f0df20dc Eolian helper: Fixed rule dependency to correctly depend on eolian_gen.
Without this change, bootstrapping doesn't work as well.
2014-03-06 15:12:51 +02:00
Chris Michael 5938f486f3 ecore-drm: Add Ecore_Drm to main Makefile
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-06 11:17:01 +00:00
Tom Hacohen 5a4f68d472 Eolian: Added eolian to the build system. 2014-03-03 14:09:53 +02:00
Felipe Magno de Almeida 91f5a9b043 ecore_cxx: add main_loop_thread_safe_call_sync and main_loop_thread_safe_call_async with tests
The point of this binding is to enable the support for easy lambda for ecore function
that wont be using Eo. See the tests on how to use those.

Reviewers: cedric, raster

CC: savio, cedric

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

Signed-off-by: Cedric Bail <cedric.bail@free.fr>
2014-02-26 18:52:08 -03:00
Felipe Magno de Almeida f279225a63 eina: add a C++ bindings to Eina @feature.
The goal of this library is to make the life of C++ developers easier
when having to manipulate Eina datatype by providing a layer to abstract
those data type in C++. Check examples for now. Documentation will come
soon, but we are pushing that rather sooner to get feedback on those bindings.

As you will notice, this library is just composed of headers. There is no .so
and we do think it is better this way. Reducing ABI and API stability issue for
applications developers who are the primary target of this binding.

Also please note that you will need to have C++11 to use this binding.

Signed-off-by: Cedric Bail <cedric.bail@free.fr>
2014-02-25 18:05:01 -03:00
Cedric BAIL 0a1cc79a91 Ecore_Avahi: initial commit.
TODO:
- Add tests, how ?
- Integrate with Eo, needed ?
2013-12-17 19:37:05 +09:00
Cedric Bail de7b7f381c build: fix installing in DESTDIR for packaging and buildbot.
This should fix T628 .
2013-12-09 10:57:12 +09:00
Cedric Bail 52f98559a9 efl: remove uuid from all libtool files.
This change is needed for windows as this library is statically linked into
evil, but libtool doesn't get it.
2013-12-08 11:50:54 +09:00
Carsten Haitzler b07c0a76ce alpha1 release autofoo/build tree work to pass distcheck and actually work 2013-11-04 18:33:35 +09:00
Daniel Willmann b0c9d1f818 examples: Make make return an error if one of the examples fails compile
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-07-11 09:55:02 +01:00
Cedric Bail 753978e65d efl: $(DESTDIR) already has '/' 2013-05-06 19:05:44 +09:00
Cedric Bail 019a8b8298 eeze: handle its intall hook correctly. 2013-05-05 17:25:48 +09:00
Cedric Bail 433e123428 efl: force problematic -luuid to go away from .la 2013-05-05 16:03:53 +09:00
Carsten Haitzler daac3fb794 add a global Efl_Config.h for everyone.
* ned to replicate changes in other .pc.in files
* need to replicate changes in other E*.h installed header files
2013-04-24 23:43:33 +09:00
Lucas De Marchi 4e3804041f Rename edbus->eldbus
git grep -l edbus2 | while read f; do sed -i 's/edbus2/eldbus/g' "$f"; done
find . -name '*edbus2*' -exec rename edbus2 eldbus {} \;

git grep -l "EDBUS" | while read f; do sed -i 's/EDBUS/ELDBUS/g' "$f"; done
git grep -l "EDBus" | while read f; do sed -i 's/EDBus/Eldbus/g' "$f"; done
git grep -l "edbus (v2)" | while read f; do sed -i 's/edbus (v2)/eldbus/g' "$f"; done
git grep -l "Edbus" | while read f; do sed -i 's/Edbus/Eldbus/g' "$f"; done
git grep -l "edbus" | while read f; do sed -i 's/edbus/eldbus/g' "$f"; done

find . -name '*edbus*' -exec rename edbus eldbus {} \;
find . -name '*EDBus*' -exec rename EDBus Eldbus {} \;
2013-04-23 12:36:29 -03:00
Stefan Schmidt 85810dac8c tests: Add xml output file for check runs for the use with jenkins.
We can do pretty graphs with jenkins about our unit tests. But we
need the check xml output for that. Enabling it in all suites.
2013-03-12 09:59:06 +00:00