will be used to handle i18n for lua files in EFL (because only gettext 0.18.3+ supports Lua) and it'll be usable standalone too, it will also be able of handling more things than lua support in xgettext does (e.g. concatenated string literals will be considered one string)
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
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.
Summary:
Vanish with these:
src/Makefile_Eolian_Helper.am:15: warning: '%'-style pattern rules are a GNU make extension
src/Makefile.am:36: 'src/Makefile_Eolian.am' included from here
src/Makefile_Eolian.am:42: 'src/Makefile_Eolian_Helper.am' included from here
src/Makefile_Eolian_Helper.am:18: warning: '%'-style pattern rules are a GNU make extension
src/Makefile.am:36: 'src/Makefile_Eolian.am' included from here
src/Makefile_Eolian.am:42: 'src/Makefile_Eolian_Helper.am' included from here
src/Makefile_Eolian_Helper.am:21: warning: '%'-style pattern rules are a GNU make extension
Reviewers: tasn, cedric
CC: JackDanielZ, smohanty, felipealmeida, raster, cedric
Differential Revision: https://phab.enlightenment.org/D894
Signed-off-by: Cedric Bail <cedric.bail@free.fr>
Summary:
EFL_PTHREAD_CFLAGS are needed for tests and users that use
efl::eina::thread's and EFL_PTHREAD_LIBS to eina_cxx, eo and evas examples.
Reviewers: cedric, stefan, stefan_schmidt
CC: cedric, savio
Differential Revision: https://phab.enlightenment.org/D832
Signed-off-by: Cedric Bail <cedric.bail@free.fr>
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>
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>
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>
We only support the Wayland EGL engine build with OpenGL ES but not full
OpenGL. Reflect this in our configure to avoid compile errors after a
successful configure run. Fixes T1202
@fix
Since Lua is already a dependency for Edje, I believe it is safe
to add it as a dependency for Evas as well.
This will be used to replace the (bad) scripting language used for
the Evas filters (text effects).
Enable 3D features using --enable-evas-3d=yes when configuring.
APIs are exposed through Evas_3D.h.
Currently, evas-3d is being supported only on gl_x11 engine.
Conflicts:
src/lib/evas/Evas_Eo.h
Due to the amount of generated debug messages from eolion generation
we end up with 3.8GB log files for elm builds when efl was build with
coverage enabled. Temporary disable this until eolion is fixed and
we can turn it on again.
Added eet into internal dependencies for ecore_evas_connect, ethumb, ethumb_client
I got below errors for ecore_evas_connect, ethumb, ethumb_client
lib/evas/.libs/libevas.so: undefined reference to `eet_data_image_colorspace_get'
lib/evas/.libs/libevas.so: undefined reference to `eet_data_image_read_to_cspace_surface_cipher'
collect2: error: ld returned 1 exit status
The autogenerated check macro by autotools lead to a huge number of file
being added on the command line of a script, when the only things it does
is to test for the definition of those strings.
Hoping this is going to fix the problem. If that doesn't we will need to write
our own CHECK macro here.
The TGV file format is specifically created for Evas. It is designed to allow
region decompression and parallele decompression with a fast path for GPU that
do handle ETC1 compression. Plan for adding other compression method will come
later.
To build SDL with OpenGL ES we need a SDL version which ships these headers
which only starts with SDL 2.x. So we only allow it for full OpenGL right
now until someone wants to port our code over to SDL 2.x
Fixes T856
@fix
configure: fix prerequisite header issue
Summary:
in some platforms like openBSD <sys/socket.h> must be included before
net/if.h
the canonical way to ensure that with autotools is by providing that
fourth directive.
evas: use MAP_ANON instead of MAP_ANONYMOUS
Stupid unpredictable standards (or not so standard).
MAP_ANON exists and is defined almost anywhere unlike MAP_ANONYMOUS
Let's use that for portability's sake (they are practically identical
anyway)
Reviewers: raster, cedric
Reviewed By: cedric
CC: cedric
Differential Revision: https://phab.enlightenment.org/D616
Signed-off-by: Cedric BAIL <cedric.bail@free.fr>
@feature: Add xkbcommon as a dependency for ecore_drm so we can
process input keys
In order for keyboard input to work for ecore_evas_drm, we will need
to translate keypress events into meaningful key names, so require
xkbcommon to deal with the translation.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Some people (I'm one of them) will do user-local builds of EFL and
don't want to install services in /usr, or provide links, rather
choosing to install in ~/.local/share/dbus-1. Then figure out this
case and do not show an alert when the setup is ready.
As we mention $XDG_DATA_DIRS in our alert, we should not do the alert
when the user follows its recommendation. This is now checked.
And handle systemd services if they are used.
If the dbus service contains SystemdService entry and the dbus-daemon
is started with --systemd-activation, then requests for services on
the user session bus will be handled by systemd, creating cgroups and
being handled as native systemd services of Type=dbus.
Added edje into internal dependencies for ethumb_client.
I got below error.
/usr/elocal/lib/libedje.so.1: undefined reference to `evas_object_line_class_get'
collect2: error: ld returned 1 exit status
make[4]: *** [bin/ethumb_client/ethumbd] Error 1
make[4]: *** Waiting for unfinished jobs....
@bugfix: Drm is optional, so ecore-evas should not internally depend
on it unless ecore-drm is found.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
Instead of relying on ${prefix}/share to be the default for ${datadir} or
${dbusservicedir} use the actual paths where the files will be placed.
Somewhat tricky because of autoconfs desire to keep prefix changeable but
continuously evaluating the variables until they don't change work.
Reviewers: raster, englebass
Reviewed By: raster
CC: cedric, stefan_schmidt
Differential Revision: https://phab.enlightenment.org/D581
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>
now that we don't load modules from user dirs anymore - just system,
we can nuke os/arch from module dir and just keep version. since abi
for a module should be stable for a 1.X release series, we dont need
micro, just 1.9 (or 1.10 etc.). this makes thnigs a bit cleaner and
simpler for emotion_generic_players
It is to fix possible build break of ethumb
I got below message.
lib/edje/.libs/libedje.so: undefined reference to `ecore_imf_context_retrieve_selection_callback_set'
collect2: error: ld returned 1 exit status
make[4]: *** [bin/ethumb/ethumb] Error 1
apparently I read the commit order wrong and this fix went in for 1.4.0, not 1.3.2, which means anyone who has 1.3.2 has been having lots of fun crashes for the past 24 hours
this was a fixme which was likely written sometime before July 2010 when the bug was fixed, just prior to the 1.3.1 release. I think it's probably okay to require that release since it's been 3+ years.
ac_cv_prog_cc_c99 being empty just means there is no need to add
any flags for the compiler to be C99-capable.
"no" means the compiler isn't C99-capable.
The check is actually unnecessary as EFL demands a C99-capable
compiler these days but if that every changes ...
Reviewers: zmike
CC: cedric
Differential Revision: https://phab.enlightenment.org/D443
Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
Some commits to port emotion to GStreamer 1.0 and implement some missing features,
clean up code a bit and fix some bugs on the way.
This works as good as the 0.10 code for me now with the emotion examples,
just the Samsung hardware specific code is commented out. This should be
ported by someone who has such hardware, and also in a clean way now that
GStreamer since 1.0 has features to handle all this properly.
There's still a lot of potential to clean things up and fix many bugs, and also
to implement zerocopy rendering. But those are for later if there's actual
interest in this at all.
Commits:
- Update configure checks and ecore example to GStreamer 1.0
- Initial port of emotion to GStreamer 1.0
- Samsung specific code commented out, should be ported by someone
with the hardware.
- Return GST_FLOW_FLUSHING when the sink is unlocked
- Remove unused GSignal from the sink
- Use GstVideoInfo to store the format details inside the sink
- Add support for pixel-aspect-ratio
- Store video format information in GstVideoInfo for the different video streams
- Use GstAudioInfo to store the audio format information
- Remove some unused defines
- Header cleanup
- Implement initial support for GstNavigation interface
- Implement setting of audio/video channel
Reviewers: cedric
CC: cedric
Differential Revision: https://phab.enlightenment.org/D387
Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
This reverts commit d93c4b2307.
Auto is not an option, and does not mean it'll be automatically
detected.
What auto means is that unless explicitly enabled/disabled it'll check
according to the build profile and will enable it automatically if using
the dev profile.
string identifying the build (vendor, maintainer, etc). It defines
EFL_BUILD_ID with default to "none". It can be used by applications
or for bug reports by including Efl_Config.h
Differential Revision: https://phab.enlightenment.org/D288
We need the wayland-scanner program to auto-generate the
subsurface protocol source files from subsurface.xml
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
this makes curl support a pure runtime-only thing. libcurl is loaded by
eina_module (dlopen/dlsym) when curl is actually first needed (when a
url connection/object is created). this means that ecore-con has no
link or compile dependencies on curl, only runtime, AND this saves
memory (due to curl inits using apparently a chunk of private pages).
so this saves memory and moves the dependency to runtime (though still
consider libcurl a dependency of efl - but like a binary executed,
it's at runtime).
So current order is :
- __builtin_bswap*() for compiler that provide it
- _byteswap_*() for MSVC
- bswap_*() for older Linux and some BSD
- own C code when everything else fall appart.
The reason for this order is that the builtin will always generate
the best assembly possible. On my system bswap_*() are not changing
in all version to the best solution as they are almost equivalent to
the C macro.
This add finally support for JPEG 2000, but be aware that libopenjpeg
is very badly managed. There is currently only version 1.5.x that does
provide the right files, is usable by a third party and portable. You
can seriously forget any other version.
Ecore_Evas_Drm will rely on Eeze for drm device discovery, so we need
to check for eeze requirements before ecore_evas.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
Allow ecore-wayland to be configured and compiled with xkbcommon 0.3.0.
Ecore-wayland does not use any of the new APIs in 0.3.1 nor is it exposed
to the bug that was fixed in 0.3.1.
Most distros don't include xkbcommon > 0.3.0 yet. Thus, if 0.3.1 is
required right now, then everyone is forced to build xkbcommon, too,
which contributes to dependency *madness*. Of course, anyone is still
welcome to build and link to xkbcommon 0.3.1 at will.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewers: devilhorns, antognolli
Reviewed By: devilhorns
Differential Revision: https://phab.enlightenment.org/D203
Ecore will now load "system modules" on ecore_init(). The "systemd"
module will use DBus to monitor localed, hostnamed and timedated and
add system events related to those changes.
configure command:
./configure --disable-ecore-con --disable-curl --with-glib=no --with-crypto=none
EFL_CRYPTO_DEPEND macro appends the crypto libraries to the ECORE_CON dependency list.
In case the ECORE_CON dependency list and the build_crypto are both empty
the resulting list will only contain " ", resulting in an error
configure: error: Package requirements ( ) were not met:
Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
Recent clang breaks with linking errors:
lib/eina/.libs/libeina.so: undefined reference to `shm_open'
so fix.
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
Add an input method module supporting the Wayland input method protocol.
In v2:
- Missing call to ecore_wl_shutdown() in im_module_shutdown()
- Access the already stored 'wayland globals' with ecore_wl_globals_get()
- Fixed compilation by adding -I(top_srcdir)/src/efl to CFLAGS
- EFL formatting fixes
Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
Summary: This feature replaces Eo pointers with ids to prevent bad usage
or reuse of these pointers. It doesn't change API.
The mechanism uses tables storing the real pointers to the objects.
See the src/lib/eo/eo_ptr_indirection.c file for more details on the
mechanism.
Now instead of having ifdefs in the .c files we just don't compile the
ones we don't need. Much cleaner.
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
* Use Eina_Hash instead of Eina_List to remember what memory did change.
* Turn off Eina_Cow use of Eina_Magic when doing a release as it is only
used internaly and we should not make any mistake there.
NOTE: if you start your process with Systemd it will automatically use
Journald API. You will need to overide the default logging function to
change that behavior.
in a move which is sure to make me hugely unpopular once again, I'm blacklisting a huge number of gnutls versions which I can't compile because at least some of them are 100% broken and will not work. the rage forecast is looking to see some hot winds blowing in from the debian/ubuntu quagmires, though users from more modern regions are not likely to notice any changes
- Pass EVIL_CFLAGS to C++ compiled files (needed for -DEF_EVIL_BUILD)
- Some warning flags should not be passed to C++ compiler, so put them in another variable
Be careful, systemd socket activation require you to always order
server socket creation in the same order as defined in the unit file.
This means ecore_con_server_add should always been in the same order
for those of them using systemd socket activation.
Support for older system that don't come with libmount or have
an older libmount. This is a backport from Eeze 1.7 tree. There
is no code change there.
That work clearly was possible thanks to Leandro. If you want more information
go to his blog : http://tia.mat.br/posts/async_io_with_coroutines/ .
The main difference with his implementation is more portable and not thread safe.
It does not have a custom swapcontext (would make sense as we don't need to save
the sigcontext) so it will be less fast. If people are ready to contribute asm
patch for that purpose I will be happy to apply them.
As for portability this code should work on all architecture we already support
thanks to a nice hack with setjmp/longjmp borowed from libcoroutine. We do use
Fiber for Windows support, but as 1.8 is completely borken in that regard, this
is theorical work only.
Thinks left to do :
- Eoify the API
- Documentation
- More tests
- Add support for coroutine in fd handler
- Add coroutine support to ecore_thread api
- Write some example
Signal are not a portable way to detect memory mapped file corruption.
So let's disable it for system without signal and later find a way to
detect it on other system.
This should make it easier for applications to use efl with cmake.
It seems to work with my tests. It's ugly and redundant but it's the first
step. Not all the components are supported at the moment.
SVN revision: 83637
seems autoconf is stupid and cannot agree on a single variable to
store stuff, if you give ./configure CXX=bla it will change
everything.
Relax the test and just use CXX, if it's set, believe it's usable.
SVN revision: 83008
strange that nobody except hdante noticed this before, but it was
missing linkage with -lrt in libemotion (due generic being static) and
ecore_evas/extn.
SVN revision: 83007
EFL_ADD_FEATURE(PKG, NAME, [VALUE]) will do an amazing work to produce
colored output in a standard way.
if value == yes, it's green and shows "+name"
if value == no, it's red and shows "-name"
else it shows cyan and shows "name=value"
if not provided, will use ${have_name:-${want_name}}
SVN revision: 82976
when I fixed eina's dependency on -lpthread I used all the libraries
eina links to. But we should just do with -lpthread as it's a public
dependency... that was in eina.pc.in and I missed.
Now we have EFL_ADD_PUBLIC_LIBS() that will register for
requirements_public_libs_name and use internally when eina is used.
This should also fix the problem by Arvind with gcrypt.
SVN revision: 82942
Seems AC_PATH_GENERIC() wasn't present somewhere, then I'm adding the
AM_PATH_LIBGCRYPT() provided by libcrypt (I need to include it in m4/
otherwise it will fail for people doing ./autogen.sh without libgcrypt
installed).
It works on my machine, but `libgcrypt-config --libs` output is just
"-lgcrypt -lgpg-error", including no -L.
SVN revision: 82939
eeze is just used on linux, where libmount exists and then we
shouldn't make this an option so we can rely on eeze's mount being
there.
(the code keeps the #ifdef's for a while, in case we need to revert that later)
SVN revision: 82901
Introduces EFL_VERSION() to make it simpler to define our version. The
last parameter is the release status, defaults to 'dev' for
development purposes and may be set to something else to be a
snapshot. It non-empty will be given to libtool's -release.
As EFL_VERSION() must be done *before* AC_INIT(), we need to create
another macro to do the AC_SUBST() and AC_DEFINE(). This is
EFL_INIT. And no, we can't just call AC_INIT() from inside EFL_INIT().
Last but not least, we had a problem with our libtool version-info. It
was being calculated as MAJOR + MINOR, right now 1 + 7 = 8. But as
soon as we get to MAJOR=2 and MINOR=0, we get into problems. This was
fixed by rewriting as (MAJOR * 100 + MINOR), but this is still
problematic.
According to libtool's manual (info libtool), we shouldn't bind the
version-info with package info, instead doing the 'release'
field. Pretty likely we'll do worse than expected by distros and
binary packages in future :-/
SVN revision: 82891
Instead of just making our own "check-local" and calling the binaries
ourselves, just append them into "TESTS" variable. Then they run after
all check_PROGRAMS are compiled.
The reasons for changing are:
1) If we change the test and call "make check" the test is not
compiled again -- and the only way to compile it is to "make clean".
2) There's no need to reinvent the wheel here.
With a recent version of Automake, the test output is redirected to log
files. This is good but unexpected for whom was used to the previous
way. So, be warned.
SVN revision: 82841
This patch was brought to you by:
sed -i'' 's/svnversion/LC_ALL=C svnversion/' configure.ac
Anybody who has the entire trunk and branches around is welcome to apply an analogue patches to it.
SVN revision: 82822
Instead of -I$(top_srcdir)... -I$(top_builddir)... and then do it for
the .la, use the EFL_ macros to generate the contents to be used in
automake files.
There is a nasty bit that libtool will parse Makefile*.am and will not
get _DEPENDENCIES from _LIBADD and _LDADD if these are in
@REPLACEMENT@. To solve this we must explicitly set _DEPENDENCIES. The
contents of this is almost the same as _LIBADD or _LDADD with the
"_INTERNAL_" replacement name.
I hope the code will be result will be shorter and consistent as there
is less places to change when we add/remove dependencies.
Statistics are quite impressive (diffstat):
{{{
37 files changed, 663 insertions(+), 1599 deletions(-)
}}}
SVN revision: 82785