path: root/src/lib/eina/ (follow)
AgeCommit message (Collapse)Author
2021-05-03Eina: API addition: interface musl's fnmatch() implementationVincent Torri
Summary: addd musl's fnmatch() implementation to Eina Test Plan: compilation and simple test case Reviewers: raster Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2021-04-17Implement eina_thread for native windowsWander Lairson Costa
Summary: eina: Implement Eina_Thread for native windows The implementation design respects the fact that Eina_Thread is an uintptr_t. Thus we allocate the thread struct in the heap and return a pointer to it. As such, we store the created thread structure in the target thread TLS slot. For threads that were not created through eina API, in eina_thread_self we allocate a new structure, push it to the TLS slot and mark it to be freed on thread exit. Reviewers: jptiz, vtorri, cedric, walac Reviewed By: jptiz, cedric Subscribers: raster, cedric, #reviewers, #committers, lucas Tags: #efl Differential Revision:
2020-11-25eina: Rename EAPI macro to EINA_API in Eina libraryFelipe Magno de Almeida
Summary: Patch from a series of patches to rename EAPI symbols to specific library DSOs. EAPI was designed to be able to pass `__attribute__ ((visibility ("default")))` for symbols with GCC, which would mean that even if -fvisibility=hidden was used when compiling the library, the needed symbols would get exported. MSVC __almost__ works like GCC (or mingw) in which you can declare everything as export and it will just work (slower, but it will work). But there's a caveat: global variables will not work the same way for MSVC, but works for mingw and GCC. For global variables (as opposed to functions), MSVC requires correct DSO visibility for MSVC: instead of declaring a symbol as export for everything, you need to declare it as import when importing from another DSO and export when defining it locally. With current EAPI definitions, we get the following example working in mingw and MSVC (observe it doesn't define any global variables as exported symbols). Example 1: dll1: ``` EAPI void foo(void); EAPI void bar() { foo(); } ``` dll2: ``` EAPI void foo() { printf ("foo\n"); } ``` This works fine with API defined as __declspec(dllexport) in both cases and for gcc defining as `__atttribute__((visibility("default")))` However, the following: Example 2: dll1: ``` EAPI extern int foo; EAPI void foobar(void); EAPI void bar() { foo = 5; foobar(); } ``` dll2: ``` EAPI int foo = 0; EAPI void foobar() { printf ("foo %d\n", foo); } ``` This will work on mingw but will not work for MSVC. And that's why EAPI is the only solution that worked for MSVC. Co-authored-by: João Paulo Taylor Ienczak Zanette <> Co-authored-by: Ricardo Campos <> Co-authored-by: Lucas Cavalcante de Sousa <> Reviewers: jptiz, lucas, woohyun, vtorri, raster Reviewed By: jptiz, lucas, vtorri Subscribers: ProhtMeyhet, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-10-08Evil : move mkstemp(s) and mkdtemp in eina_file directlyVincent Torri
Summary: Also replace all mkstemp(s) and mkdtemp with the eina_file functions in the source Test Plan: run eina_file test Reviewers: raster Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-10-05eina - eina eifle - rename eina_file.c to indicate its for posixCarsten Haitzler (Rasterman)
2020-06-18meson: add Solaris supportVincent Torri
Summary: Add Solaris support for meson Test Plan: test on OpenIndiana Reviewers: raster, bu5hm4n, stefan_schmidt Reviewed By: raster, stefan_schmidt Subscribers: alarcher, stefan_schmidt, bu5hm4n, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-05-28build: make eina drag in the -lm flagMarcel Hollerbach
eina uses math.h we need to drag in this flag everywhere. Differential Revision:
2020-05-28build: rely on automatic pkg file generation for einaMarcel Hollerbach
this automatically brings it to efl-one, which makes this easier. Differential Revision:
2020-05-27build: add correct flags to efl-one.pcMarcel Hollerbach
they are required, and normally dragged in via eina.
2020-05-27refactor buildMarcel Hollerbach
libraries are split into deps, external deps, and pub deps. Evas engines are refactored to use the predefined engine deps. this is preparation work for efl-one. Reviewed-by: Stefan Schmidt <> Differential Revision:
2020-05-26build: lib: harmonize the use of package_c_args in all libsStefan Schmidt
Add it to subprojects which are not using it and remove and old ELEMENTARY_BUILD define we no longer use. This allows us to have a central place in the main file to set this variable. Reviewed-by: Marcel Hollerbach <> Reviewed-by: Vincent Torri <> Reviewed-by: João Paulo Taylor Ienczak Zanette <> Differential Revision:
2020-05-18Revert "Fix EAPI definition by defining EFL_BUILD for each built DLL"Carsten Haitzler (Rasterman)
This reverts commit 3ade45cbc82bea1772c7ad1afb7e1ba5dd67d930.
2020-05-18Fix EAPI definition by defining EFL_BUILD for each built DLLVincent Torri
Summary: EAPI must be defined to dllexport when building DLL, and to dllimport when using these DLL. To achieve this, define EFL_BUILD for each library and module, and set DLL_EXPORT unconditionally. Static library are and will be not supported Test Plan: compilation Reviewers: zmike, raster, jptiz Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-05-18systemd - make libsystemd use/supprot entirely runtime "dlopened"Carsten Haitzler (Rasterman)
so i've moved all systemd and elogind support to be runtime only with dlopen (eina_module) of (or for elput) and finding of symbols manually at runtime (if the right code paths or env vars are set), thus remvoing the need to decide at compile time if efl needs systemd support or not as it no longer needs systemd headers/libs at compile time and just at runtime. this simplifies building a bit and makes efl more adaptive to the final target system at runtime.
2020-04-28meson: allow debug-threads to be disabled in debugBoris Faure
Reviewed-by: Marcel Hollerbach <> Reviewed-by: Stefan Schmidt <> Differential Revision:
2020-03-12eina log bt - on by default always if unwind foundCarsten Haitzler (Rasterman)
i'm tried of telling people how to turn this on. enough. on by default. if you dont want bt's and its just some helpful log output then just printf it or use WRN, INF and set log levels...
2020-03-08eina: introduce Eina_Abstract_ContentMarcel Hollerbach
A little abstraction to have abstract data content bound to a type. Reviewed-by: Cedric BAIL <> Reviewed-by: Xavi Artigas <> Differential Revision:
2020-01-23eina: add new range Data typeali
Summary: Introduce new data type (Eina.Range) which represent range (part of series) **eina_range_max_get** **eina_range_intersect** **eina_range_union** **eina_range_contains** **eina_range_equal** Reviewers: cedric, woohyun, bu5hm4n, segfaultxavi, zmike Reviewed By: woohyun Subscribers: vtorri, cedric, #committers, #reviewers Tags: #efl Maniphest Tasks: T8570 Differential Revision:
2019-07-28Eina: define EINA_HAVE_DEBUG_THREADS only if backtrace() in execinfo.h is ↵Vincent Torri
available Summary: fix compilation on systems where backtrace() in execinfo.h is not available Test Plan: compilation on Windows Reviewers: zmike, cedric, raster Reviewed By: cedric, raster Subscribers: #reviewers, #committers Tags: #efl Differential Revision:
2019-07-19meson: fix debug-threads optionMike Blumenkrantz
it doesn't matter if this doesn't work with eina_debug since this isn't meant to be used for that kind of debugging Reviewed-by: Cedric BAIL <> Differential Revision:
2019-06-03meson: remove unneeded install: flagsMarcel Hollerbach
Summary: when install is not set, meson take the value of install_dir. So when this is removed, things will continue working correctly. Reviewers: zmike, stefan_schmidt, cedric, segfaultxavi Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision:
2019-05-21eina: move builtin detection to eina_config.hMarcel Hollerbach
Summary: this means we don't need to handle this in the buildtool at all. Reviewers: vtorri, zmike Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-02-28eina: Declare eina_config.h install dirLauro Moura
Meson from git complains if `install` is set but not `install_dir`. Reviewed-by: Marcel Hollerbach <> Differential Revision:
2019-02-01replace hton and ntoh family functions with ones defined in einaVincent Torri
Summary: This fixes especially the execution of edje_cc on Windows Test Plan: execution of edje_cc Reviewers: cedric, raster Subscribers: #reviewers, #committers Tags: #efl Differential Revision:
2018-12-27meson - fix pc file versions that were missing mirco versionCarsten Haitzler (Rasterman)
2018-12-08meson - systemd - fix check to systemd209+ checks that were not doneCarsten Haitzler (Rasterman)
autofoo did these and set defines code relied on. meson did not. this fixes that and makes meson do the same checks with the same defines.
2018-12-07meson: add inital support for windows compilationMarcel Hollerbach
Differential Revision:
2018-10-10meson: add dl to einaMarcel Hollerbach
eina uses dlsym. I forgot this. Differential Revision:
2018-10-05meson: unify system propertiesMarcel Hollerbach
this unifies the system types into 4 boolean flags This fixes the fact that meson changed the system string accross versions. Differential Revision:
2018-10-03meson : fix eina/meson.buildJérémy Zurcher
issue : when running 'ninja clean' 'buildtype' option is set to 'custom', patch : set specific options for 'debug' and 'release', set default options for any other value of 'buildtype' Differential Revision:
2018-10-02here comes mesonMarcel Hollerbach
a new shiny buildtool that currently completes in the total of ~ 4 min.. 1 min. conf time 2:30 min. build time Where autotools takes: 1:50 min. conf time 3:40 min. build time. meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read. Further informations can be gathered from the README.meson Right now, bindings & windows support are missing. It is highly recommented to use meson 0.48 due to optimizations in meson that reduced the time the meson call would need. Co-authored-by: Mike Blumenkrantz <> Differential Revision: Depends on D7011