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
This improves the tests on freebsd, which doesn't have clearenv() (
though this commit was untested on such environement). clearenv was
rejected from POSIX so we better aim to stop its usage. However since
tests use setenv() this may lead to leaks, but it's better a leak than a
failing test.
On Linux all tests that were passing continue to pass.
SVN revision: 82779
it was reported that AC_CHECK_FUNCS() couldn't work on netbsd because
dirfd is a macro and it would not properly evaluate int that
traditional test.
SVN revision: 82736
- they have no 'all' rule, keep out of SUBDIRS
- they depend on 'all-am', the non-recursive target that builds everything.
- they do not need a directory on its own to declare nothing.x
SVN revision: 82689
This one was a painful bitch. The edbus2 port was quite broken, mainly
leaking eina_stringshare and also not adding the '\0' to the strings
that are represented as bytearray (paths cannot be utf8 to avoid
translations).
Emotion plugin was also quite bogus and the video thumbnail as edje
(animated) is not working yet due bug in Edje_Edit api -- someone
needs to investigate this, seems strange.
Emotion plugin also had a bug that it was deleting the object from
inside object callback.
Now it seems to work. Please report if it does not.
SVN revision: 82675
buffer is lightweight and dependency for many engines, merge it back
into core.
extn is a module on its own, and it's the only one linking to
ecore_ipc, no need to add that to ecore_evas.
minor cosmetic changes to configure to make output consistent.
SVN revision: 82648
* strings.h: is very useful, very old and very standard. The only place
that checks for that is simple_xml_parser and I have no idea why
SVN revision: 82576
this one was quite a huge work, but hopefully it's correct.
NOTES:
* removed vlc generic module, it should go into a separate package.
* gstreamer is enabled by default (see --disable-gstreamer)
* xine is disabled by default (see --enable-gstreamer)
* generic is always built statically if supported
* gstreamer and xine can't be configured as static (just lacks command line options, build system supports it)
* v4l2 is enabled by default on linux if eeze is built (see --disable-v4l2)
* emotion_test moved to src/tests/emotion and depends on EFL_ENABLE_TESTS (--with-tests), but is still installed if enabled.
TODO (need your help!):
* fix warnings with gstreamer and xine engine
* call engine shutdown functions if building as static
* remove direct usage of PACKAGE_*_DIR and use eina_prefix
* add eina_prefix checkme file as evas and others
* add support for $EFL_RUN_IN_TREE
* create separate package for emotion_generic_modules
* check docs hierarchy (doxygen is segv'in here)
SVN revision: 82501
* Split out ecore_imf_xim to do its own check
* Fixed problem with xcb's makekeys, no rule for
$(top_builddir)/src/utils/ecore/makekeys$(EXEEXT) exists so make
used an implicit rule (ignoring any cflags of course)
* Fixed gl_x11 engine to build with either Xlib or XCB (xcb flags were
missing)
* Added EFL_FIND_X and replace any used of AC_PATH_X{,TRA}. First
looks for Xorg pkg-config files then if those arn't found it falls
back to old AC_PATH_X. Also generalized common header and lib
checks. Could probably use some polishing (the AC_CACHE_VAL cruft
especially) but this is what I have time for tonight.
Now X11 should be found on non-standard locations by means of xmkmf,
--x-includes/--x-libraries and also pkg-config.
SVN revision: 82475
Weirdly enough raster turned PROGRAM cache on to fix a bug saying that
the other path was not tested, but from IN-EFL/edje/configure.ac CALC
cache was enabled and PROGRAM was disabled.
I kept the PROGRAM on and enabled CALC. Added fixed point as well.
Cedric, Raster: should we keep PROGRAM and CALC cache options if the
other path is not tested? Can't we assume they are always on? How much
memory these cache add? Can't this be reduced?
SVN revision: 82410
Tests are disabled by default, but they should be mandatory for
distcheck. So should be examples, we should have them to at least
compile.
As there is no way to force "make distcheck" to run "make examples",
I've created --enable-always-build-examples to make examples regular
noinst_PROGRAMS, being always compiled. distcheck will use that
option.
SVN revision: 82276
this is still in progress, mostly the multisense stuff is pending.
it seems that when we merge ecore_audio in edje the libremix and
similar are gone, at least from Edje, and will be in ecore_audio
itself (or pulseaudio).
Changes:
* __UNUSED__ to EINA_UNUSED
* binaries (epp, embryo_cc, edje_cc) now consider EFL_RUN_IN_TREE and
will assume the binaries are still not installed, running from
build tree location (needs more testing, maybe doesn't work with
srcdir != builddir, still doesn't solve cross compile builds)
SVN revision: 82139
Changes also in this commit:
* fix missing EAPI in symbols used by modules
* removed old libudev and libmount support as agreed by discomfitor/zmike
* replaced __UNUSED__ with EINA_UNUSED
* fixed docs hierarchy
SVN revision: 82100