So I have been battling with autotools on this for a full week now,
and what we want is basically impossible. A.k.a. one file definition
and possibility to do a full build or just a partial build of efl.
Even moving to just partial build require to land a massive patch that
change everything in our build system and this is just not a road I
want to take.
For reference, if one day automake allow the use of any kind of variable
(autoconf AC_SUBST expansion or $()) in the _SOURCES parameter, it will
be possible to fix. Alternatively if they allow to build subdirectory
before they do BUILT_SOURCE, it would make it possible to incrementaly
move to only partial build. In the mean time, a less problematic solution
is to duplicate source code.
As elput can potentially use systemd-logind for various input device
functions, we should add this as an optional dependency in the
configure checks.
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
The elput library is an efl abstraction for the libinput library which
can be used by various other subsystems (ecore_fb, ecore_drm, etc) to
handle interfacing with libinput without having to duplicate the code
in each subsystem.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
I didn't know preview generation was so slow and done completely serialy.
There is potential improvement here. Still need to kind of merge the
documentation into something readable.
A small hack to the toolchain allows us to generate enums with eolian
for use by Eet and Emile (internal or otherwise non-eo libraries).
Thanks to how BUILT_SOURCES works, the eo.h files required by Emile
will be generated before they are used.
This adds a partial dependency on eo for eet and emile:
- package dependency
- include dependency
There is no library link dependency.
after elm merge build broke with things like this enabled. this fixes
that.
i'd like to bring up one issue here. ecore_drm is not a good
abstractionlayer. it requires libdrm and other headers from system and
it should have abstracted things so the system libdrm is hidden/not
needed for build (or even perhaps at runtime and this could be rolled
into ecore_drm). this is how ecore_x is... and ecore_fb etc.
This make elementary break the modularity of the underlying layer. I haven't looked
at what is going on here, but basically if you have a wayland, a drm, whatever backend
turned on. You need elementary to be link against that ecore_* directly. This means
we are lacking in abstraction in Ecore_Evas and are dlopening to much library at
startup. This needs to be improved in the future.
I am guessing this is related to maybe DnD and C&P.
EGL Fullscreen is a module intended to support many proprietary GL driver that come
with custom API to create framebuffer/window. This one is starting by covering Android
with libhybris/hwcomposer. Later on, it should be able to support easily the Raspberry Pi
driver.
At this moment this does not work properly. Activate it at your own risk ! Do not report
bug if you don't know what you are doing :-) A backend for Ecore_Evas will come later on
along with a patch for Ecore_FB to use libinput. Finally a few patch should hopefully
enable this backend to work and compile more easily (relying on proper header detection
and dlopen/dlsym for access to proprietary function).
You can read more about the goal of this patch by reading our wiki at :
https://phab.enlightenment.org/w/boot2efl/
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
This reverts commit 1affc60d00.
This reverts one of three parts of the try to get sub directory
compilation back into eina. It breaks our distcheck though and I
talked to Cedric about it and he prefers to revert these as we might
need to go another route to bring this functionality back. Details
will come to the mailing list.
Do not force this on everybody who runs with tests=coverage. It makes stdout
impossible to follow as well as overruns the tests log file. If one wants to
run with -DDEBUG it can be set from your own CFLAGS.
After aca6fc8c36 there have been problems when
linking when having coverage enabled.
AC_SEARCH_LIBS was used wrongly here. You need function name first and lib to
link against as second argument. The symbol name also has wto leading
underscores for me.
/usr/lib/gcc/x86_64-pc-linux-gnu/5.3.0/../../../../x86_64-pc-linux-gnu/bin/ld generated: undefined
reference to `__gcov_init'
OSX uses clang as a default compiler instead of gcc.
Gcov does not exist for clang, but clang has an alternative which
requires additional compilier and linker flags.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Without this compilation would fail with undefinded EVAS_DICTS_HYPHEN_DIR if
--with-xattr-tests-path was not given but hyphen enabled. Use a sane default
(/usr/share/hyphen/) to avoid this. Customization is still possible.
When we introduced the usage of floor() in ecore_drm_evdev.c we forgot to
include math.h for it as well as linking against libm. This caused linking
failures on some systems while it still worked on others. Better fix it for
good.
Original patch by aerodynamik.
ref T2953
So many problems from people who customize their builds in this
incompatible manner.
There really should be only one configure option as we don't
support opengl+egl (although possible in theory) or gles without
egl. Keeping both to not break existing builds.
The build stop wile building eldbus-codegen:
CCLD bin/eldbus/eldbus-codegen
CXXLD bin/eolian_cxx/eolian_cxx
CCLD lib/ecore_x/ecore_x_vsync
CCLD lib/evas/common/libevas_op_blend_sse3.la
CCLD lib/evas/common/libevas_convert_rgb_32.la
CCLD lib/ecore_ipc/libecore_ipc.la
[...]/i686-ctng-linux-gnu/bin/ld: warning: libefl.so.1, needed by lib/ecore/.libs/libecore.so, not found (try using -rpath or -rpath-link)
lib/ecore/.libs/libecore.so: undefined reference to `efl_control_suspend_set'
lib/ecore/.libs/libecore.so: undefined reference to `efl_control_interface_get'
collect2: error: ld returned 1 exit status
Makefile:19135: recipe for target 'bin/eldbus/eldbus-codegen' failed
make[6]: *** [bin/eldbus/eldbus-codegen] Error 1
A dependency on libefl seems to be missing for eldbus.
Fixes T2718 and T2952
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Putting aside the question if we need or want this option we should make sure
people at least have correctly updated documentation. We switched the option to
..abb but not the docs.
The wayland build requires uuid which we need to make sure we have as dependency.
Not a real problem as all wayland supported systems should have it.
Based on a patch by aerodynamik. Thanks!
Fixes T2951
To configure efl sources with bindings to use in nodejs add ––with-js=nodejs in configure flags to generate node files
$ configure --with-js=nodejs
and compile normally with:
$ make
$ make install
To use, you have to require efl:
efl = require('efl')
The bindings is divided in two parts: generated and manually
written. The generation uses the Eolian library for parsing Eo files
and generate C++ code that is compiled against V8 interpreter library
to create a efl.node file that can be required in a node.js instance.
@feature
The EINA_LOG_BACKTRACE thing is aimed at production environments,
so we can extract a backtrace from a log file post-mortem, but not
for continuous development of EFL itself.
I know this should make a few people happy.
Align it with the rest of our cmake support files. Adding it to configure as
well so the cmake file gets generate from the cmake.in
Without this I had distcheck failing with a missing target for it.
We now support hyphenation in style. Use "wrap=hyphenation" to use this
wrap option. It will hyphenate based on explicit SOFT HYPHEN (­)
placement in the text, and with the (optional) assistance of dictionaries
compatible with Hunspell's "hyphen" library.
This wrap mode favors breaking at hyphen positions in a word, over moving
the whole word to the next line. It will put an additional "-" at the
break position if it was hyphened.
Enabling the hyphen dictionaries is done by adding these configure
options:
--enable-hyphen (requires Hunspell's "hyphen" library installed)
--with-dictionaries-hyphen-dir=DIR (specifies the install location of
the actual .dic dictionary files e.g. /usr/share/hyphen)
Note that dictionary files are expected to be in the form of "en_US.dic"
or anything that ends with it e.g. "hyph_en_US.dic" (this how they are
named in Arch Linux).
@feature
The detection in configure.ac includes netinet/in.h, for linux, but this header
file does not exist on Windows. So guard this header.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This reverts commit e83fae6960.
cserve2 is enabled by default at build time. It's disabled by
default at runtime. Basically it's always built but never used.
By default, multisense is disabled. The configure help message for
multisense was incorrect because it stated that multisense was enabled
by default
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
By default, cserve2 is disabled. The configure help message for
cserve2 was incorrect in that is said cserve2 was enabled by default.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This is faster in most cases, and to be honest, should be much faster
than it is. I don't understand why there's no better directive to mark a
variable as *really* important thread storage that is used all the time.
Summary:
Xprint has been deprecated since 2008.
It's recently (August 2015) been removed from debian.
Reviewers: zmike, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3150
Summary: Implement basic kqueue/kevent backend for eio. When it comes to tracking directory changes, this backend falls back to the polling one.
Test Plan: Ran Enlightenment for several days and some other EFL apps without any issue.
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric
Projects: #e_on_freebsd, #efl
Differential Revision: https://phab.enlightenment.org/D2983
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Everything is implemented except visualization, mouse events and some
EMOTION_EVENT. Video can output RGBA, YUY2, YV12 or I420.
About the video sink: this emotion module use libvlc callbacks:
libvlc_video_set_format_callbacks and libvlc_video_set_callbacks. It may be
temporary. Indeed, an other solution is to add an Evas module inside vlc. But
this vlc module would need to link with emotion in order to use
_emotion_frame_new and _emotion_frame_resize private functions. I didn't
succeed to output a frame without these private functions: see
15daff4d3f
List of /* FIXME */:
- Visualization not implemented since there is no API (for now) in libvlc.
- Mouse events not implemented since there is no API (for now) in libvlc.
- Some EMOTION_EVENT are not handled.
- SIGSEGV in evas_gl_common_texture_nv12_update with
EVAS_COLORSPACE_YCBCR420NV12601_PL colorspace.
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3071
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
added support to set thread names for debugging. this wraps the gnu
extension to set a thread name of up to 15 chars (16 inc nul byte).
eina_thread_name_set() is the new api.
@feature
in the process i found the autofoo wasnt enabling cpu affinity support
at all in reality, so i had to fix that at the same time.
Summary:
since all the libs got merged into libsystemd in 209, we can just check
for libsystemd
Reviewers: cedric
Subscribers: stefan_schmidt, morlenxus
Differential Revision: https://phab.enlightenment.org/D2984
Some files were still including SDL-1 headers even though we only link
against SDL2 libs.
URL: https://bugs.gentoo.org/551882
Reported-by: Barnaby <badbit@me.com>
Reported-by: Romain Naour <romain.naour@openwide.fr>
Summary: As a lot of functionality has changed in the relevant efl/e
wayland codebase, we should bump the required wayland library versions
as we are now dependant on updated wayland libraries.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
this fixes warnings about no efreet dbus session bus in non session
environments as brought up on the mailing lists with:
Subject: Re: [E-devel] [EGIT] [core/efl] master 01/01: edje: unset
efreet cache update flag to prevent dbus connections
this moves all of efreetd client and server to ecore ipc, with client
auto-launching efreetd if not found as a service and trying for up to
500ms to connect. efreetd times out on last connection or no
connections after 10sec so it wont hang around forever if not in use.
it seems to work in my testing, so let me know if there is an issue.
@fix
Summary:
Ecore_Buffer is abstraction of graphic buffer.
it supports backend of shm, x11_dri2 and x11_dri3 for now,
and this library also provides method to share buffers between processes.
Ecore_Buffer_Provider and Ecore_Buffer_Consumer is for this, sharing buffer.
provider draws something in to Ecore_Buffer, and consumer receives and displays it.
the binary, bq_mgr is a connection maker for buffer provider and consumer.
it can be included Enlightenment as a deamon later.
@feature
Test Plan:
1. Configure with --enable-ecore-buffer and --enable-always-build-examples to build examples.
2. Run bq_mgr, it connects consumer and provider.
3. Run ecore_buffer_provider_example and ecore_buffer_consumer_example
Reviewers: lsj119, gwanglim, cedric, zmike, jpeg, raster, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2197
this makes eina_log give bt's for all error logs. this is very useful
in finding just where a problem happens. the problem int he past is
that these have not been too useful due to backtrace_symbols() being
"useless". thus use the eina_btlog tool i added too.
also started infra for a debug monitor that can use the backtrace
infra to collect runtime stats ANY TIME for a process (don't need to
run under a debugger).
@feat
Apparently the Debian package, while up to date, for some reason does
not ship the .pc file (according to q66).
According to Stefan, Fedora doesn't even have libunibreak, but only the
previous naming and old version.
Will have to wait a few years more. :(
This reverts commit a2a9f33802.
We need any version of libunibreak. The first one has been released in mid 2012.
Even slow distros like ubuntu already have an LTS out with a good enough
version, so I consider this enough to remove the maintenance cost.
This has been discussed on IRC.
@feature
Summary:
Add new define, BUILD_NEON_INTRINSICS to control whether NEON inline code or
NEON intrinsics should be built.
GCC NEON intrinsics can be built both for armv7 and armv8. However NEON inline
code can be built only for armv7.
@feature
Reviewers: raster, stefan_schmidt, cedric
Subscribers: cedric, stefan_schmidt
Projects: #efl
Differential Revision: https://phab.enlightenment.org/D2309
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Ecore_Audio now supports Apple's CoreAudio to play sounds read by libsndfile.
edje_multisense integrates this new feature to enable PLAY_SAMPLE on OS X.
Test Plan:
Compiles, links and installs fine on OS X.
Run terminology and elementary_test to hear sound played on user input.
Reviewers: raster, naguirre, cedric
Reviewed By: cedric
Subscribers: plamot, cedric
Differential Revision: https://phab.enlightenment.org/D2295
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
When cross-compiling, we only want to build edje_cc, embryo_cc
and eet binaries for the host before starting the build for the
target.
This patch allows to disable libeeze in order to shorten the
build time but most of all remove the dependency on libudev.
In normal case it's not recommended hence a warning.
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: This option Was added originally so that software drm and
hardware drm could be done in the same 'engine'. Since we have drm and
gl_drm now as separate engines, this option is no longer needed.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
Made http and ftp url configurable via configure and also added test cases for ftp upload and http post.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: Sergeant_Whitespace, cedric
Subscribers: Sergeant_Whitespace, cedric
Differential Revision: https://phab.enlightenment.org/D2226
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Idea for this library is to become a retained mode drawing library that use
Eo/Eolian for its API and take a lot of the good design from Enesim by
Jorge Zapata and Jose Gonzalez (http://enesim.org/).
Cedric, our dear b0rker, introduced changes in the CFLAGS
generation when merging Emile. While the changes seem to make sense
at first sight (add the -I flags for the lib our new package depends on),
they were actually a terribly bad workaround.
The number of CFLAGS args would grow exponentially, slowing down libtool
a lot, which is known to be slow when it has a lot of arguments.
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.
this patch adds an implementation of eio_monitor based on FSEvent
for OSX. This implentation has some limitations compared to inotify
implementation. Folowing events are not detected:
- EIO_MONITOR_FILE_CLOSED
- EIO_MONITOR_SELF_RENAME
- EIO_MONITOR_SELF_DELETED
It should be noted that some events that happend before the call
to eio_monitor_add can be catched. This is why sleep timers have
been added in the test suite.
Tests have been added to check uncovered scenarios.
some things might still be improved:
- self_deleted events for files might be handled by checking the
file_name manually
- self_deleted events for directories might be handled by setting
kFSEventStreamCreateFlagWatchRoot. I've noticed by doing so that
a lot more unwanted event are raised
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Add eina_test_xattr.c file for testing eina xattr functions and added test
cases for eina_xattr_set and eina_xattr_fd_set functions. Those tests need
a directory where the underlying file system allow xattr. Usually /tmp is
running on tmpfs that doesn't support today xattr. This test won't be run
if we are not provided with an existing proper directory.
Signed-off-by: vivek <vivek.ellur@samsung.com>
Reviewers: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2090
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: Added cmake config files for Eio
Test Plan: install it and test it with a app with needs eio
Reviewers: cedric, tasn
Reviewed By: tasn
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2079
This was the only user of xcb-xprint and we already have a fallback in place for
it. I talked to Chris about it and he was fine with it before his morning coffee.
More serious this should be ok and we can get rid of this part which starts to
make trouble in distros by now. E.g. gentoo is disabling it completely and many
others just ship upstream which means no pc file. Arch seems to patch it in but
we are on the safe side with just using the fallback.
xcb no longer ships the xcp-print.pc file and thus pkg-config is not able to
detect it. Some distros might patch over it as the source files seem still to
be shipped but we cannot rely on this.
http://lists.freedesktop.org/archives/xcb/2013-November/008907.html
As the above commit mentions the xprint support was actually removed from the
Xorg server in 2008 (1.11 release) which means none of our code actually has
any server side it can talk to for some years now. :) Our xcb-xprint code is
actually ifdef'ed already so we might want to remove it alltogether.
We check for libinput 06 or higher. In version 0.8 they got an API break
(hopefully the last one before 1.0) which we did not support so far. I have
seen libinput 0.9 used on gentoo and newer ubuntu systems so we should
definitely support them.
Adding a LIBINPUT_HIGHER_08 define to check for this. So far we have only one
location where we need it. Once there is a libinput 1.0 we should remove the
support for older versions.
http://lists.freedesktop.org/archives/wayland-devel/2015-January/019383.html
In previous version of this commit we checked if the _WIN32 macro was
defined. But now I am using EXEEXT from autotools to get
eolian_gen extension.
@fix
Summary: ecore-drm will now require libinput for handling input
devices, so this commit adds a configure check for libinput
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
- allow to launch drm backend without systemd-logind with root privilege.
- allow to open drm device node via logind, not directly open it, in case exist systemd-logind.
- fixes issue that couldn't switch session, because ecore-drm couldn't drop master to drm device with no permission. (allow to switch session appropriate.)
Reviewers: gwanglim, devilhorns
Subscribers: torori, cedric
Differential Revision: https://phab.enlightenment.org/D1704
Summary:
This was needed to install example on purposes
The problem is that the install_sh* variables
in generated makefiles are expanding to ~/install-sh
which is wrong and should be the one in root source tree
Change-Id: I5311298864a5f042de90071cb6dfaefbefdf001a
Bug: https://phab.enlightenment.org/T1889
Bug-Tizen: TC-2177
Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
Reviewers: seoz
Subscribers: stefan_schmidt, cedric
Maniphest Tasks: T1889
Differential Revision: https://phab.enlightenment.org/D1724
Summary:
Until now, it was necessary to set global LDFLAGS and CFLAGS to allow
compiling (and linking) engines using OpenGL.
gl_generic used to complained about missing headers or unkown libraries.
A problem on OSX is that there is CGL (Apple's Core OpenGL) on which the whole system
relies on and GLX, when X11 is installed; and they cohabit together.
When gl_cocoa is enabled, gl_generic is now linked against CGL.
When it is not, gl_generic is compiled with and linked against GLX as a fallback.
@fix
Test Plan:
With --enable-cocoa: software_x11, opengl_x11 and opengl_cocoa are working as expected.
With --disable-cocoa: software_x11 and opengl_x11 are also working as expected.
No compiling nor linking problems have been issued.
Reviewers: cedric, raster, raoulh
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1723
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
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