evas: depend on thread support

Evas has an optional mechanism to do asynchronous preloading of
images. This mechanism is optional, and in commit
b6d92bf415 ("libevas: async image
preload support needs threads support in toolchain"), Peter made sure
to disable the asychronous preloading when no thread support was
available.

Unfortunately, it seems like disabling the asynchronous loading is
rarely used, and it in facts fails to build: a member of structure is
not present when asynchronous preloading is disabled, but the code
continues to use it.

Since the fix is not obvious, and all this mechanism seems to have
changed completely in EFL 1.8.x, and we probably don't care much about
EFL without threads, this commit adds a dependency of libevas on
thread support. Consequently, it also reverts commit
b6d92bf415 which is no longer necessary.

Of course, this commit propagates this additional dependency to the
reverse dependencies of libevas.

Fixes:

  http://autobuild.buildroot.org/results/6de/6de90018a9eeb9c495d15046a8b3270eb95a5550//
  http://autobuild.buildroot.org/results/693/693df99db4ab357b48d427be3a72f6d64dd53065//

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Thomas Petazzoni 2014-02-22 19:20:02 +01:00 committed by Peter Korsgaard
parent 060623cfed
commit eda5dd1cee
8 changed files with 34 additions and 7 deletions

View File

@ -4,6 +4,7 @@ config BR2_PACKAGE_EXPEDITE
select BR2_PACKAGE_LIBEVAS
select BR2_PACKAGE_LIBEET
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_THREADS # libevas
depends on !BR2_avr32 # libevas
help
Expedite is the official Evas benchmark tool. It can test different
@ -11,6 +12,7 @@ config BR2_PACKAGE_EXPEDITE
DirectFB and so on. Its tests are quite extensive, trying to
reproduce real world usage cases.
comment "expedite needs a toolchain w/ C++"
comment "expedite needs a toolchain w/ C++, threads"
depends on !BR2_INSTALL_LIBSTDCPP
depends on !BR2_TOOLCHAIN_HAS_THREADS
depends on !BR2_avr32

View File

@ -38,6 +38,11 @@ config BR2_PACKAGE_LIBECORE_X_XCB
config BR2_PACKAGE_LIBECORE_EVAS
bool "libecore Evas support"
select BR2_PACKAGE_LIBEVAS
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on !BR2_avr32 # libevas
comment "evas support needs a toolchain w/ threads"
depends on !BR2_TOOLCHAIN_HAS_THREADS
depends on !BR2_avr32 # libevas
endif # BR2_PACKAGE_LIBECORE

View File

@ -1,3 +1,7 @@
comment "libedje needs a toolchain w/ threads"
depends on !BR2_avr32
depends on !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_LIBEDJE
bool "libedje"
select BR2_PACKAGE_LIBEINA
@ -8,6 +12,7 @@ config BR2_PACKAGE_LIBEDJE
select BR2_PACKAGE_LIBEVAS
select BR2_PACKAGE_LUA
depends on !BR2_avr32 # libevas
depends on BR2_TOOLCHAIN_HAS_THREADS # libevas
help
A graphical layout and animation library for animated
resizable, compressed and scalable themes.

View File

@ -1,3 +1,7 @@
comment "libelementary needs a toolchain w/ threads"
depends on !BR2_avr32
depends on !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_LIBELEMENTARY
bool "libelementary"
select BR2_PACKAGE_LIBEINA
@ -5,6 +9,7 @@ config BR2_PACKAGE_LIBELEMENTARY
select BR2_PACKAGE_LIBECORE
select BR2_PACKAGE_LIBEDJE
depends on !BR2_avr32 # libevas
depends on BR2_TOOLCHAIN_HAS_THREADS # libevas
help
Elementary is a widget toolkit and EFL wrapper and convenience
library to make it easy to build applications and tools with UIs

View File

@ -1,3 +1,7 @@
comment "libethumb needs a toolchain w/ threads"
depends on !BR2_avr32
depends on !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_LIBETHUMB
bool "libethumb"
select BR2_PACKAGE_LIBEINA
@ -6,6 +10,7 @@ config BR2_PACKAGE_LIBETHUMB
select BR2_PACKAGE_LIBECORE_EVAS
select BR2_PACKAGE_LIBEDJE
depends on !BR2_avr32 # libevas
depends on BR2_TOOLCHAIN_HAS_THREADS # libevas
help
Ethumb is a library for generating thumbnail images of documents.

View File

@ -1,6 +1,16 @@
comment "libevas needs a toolchain w/ threads"
depends on !BR2_avr32
depends on !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_LIBEVAS
bool "libevas"
depends on !BR2_avr32 # no epoll_create1 or inotify_init1
# libevas should normally build without threads, but due to a
# build issue when the async preloader is disabled, which is
# needed when no threads are available, we don't allow evas to
# be built without threads. This should be revisited when efl
# is bumped to 1.8.
depends on BR2_TOOLCHAIN_HAS_THREADS
select BR2_PACKAGE_FREETYPE
select BR2_PACKAGE_LIBEINA
# required to build so far

View File

@ -203,11 +203,6 @@ else
LIBEVAS_CONF_OPT += --disable-font-loader-eet
endif
# async image preload support needs threads support in toolchain
ifneq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
LIBEVAS_CONF_OPT += --disable-async-preload
endif
# libevas installs the source code of examples on the target, which
# are generally not useful.
define LIBEVAS_REMOVE_EXAMPLES

View File

@ -21,7 +21,7 @@ config BR2_PACKAGE_ENLIGHTENMENT
depends on BR2_USE_WCHAR
depends on BR2_INSTALL_LIBSTDCPP
# libedbus -> dbus
# libedbus -> glib2
# libedbus -> glib2, libevas
depends on BR2_TOOLCHAIN_HAS_THREADS
# libedbus -> dbus
depends on BR2_USE_MMU