evas: depend on thread support
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 22 Feb 2014 18:20:02 +0000 (19:20 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Sat, 22 Feb 2014 20:22:54 +0000 (21:22 +0100)
Evas has an optional mechanism to do asynchronous preloading of
images. This mechanism is optional, and in commit
b6d92bf415df33ac86487d68f5f8299f406859d2 ("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
b6d92bf415df33ac86487d68f5f8299f406859d2 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>
package/efl/expedite/Config.in
package/efl/libecore/Config.in
package/efl/libedje/Config.in
package/efl/libelementary/Config.in
package/efl/libethumb/Config.in
package/efl/libevas/Config.in
package/efl/libevas/libevas.mk
package/enlightenment/Config.in

index 918c34ee493f2d63a6457c3017893f769cf2d29a..96db266ac5eb911d652220defabcc32bff3cdd49 100644 (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
index 41a16f9c83cdfc92401d95e48c2f38c5e72b5bd6..3db036c5db334d6f61db108bee366138309d0a4f 100644 (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
index 4a0831a426ae2077e59b68c826e2eabb3cccb20b..503919c3bdf9bab65ed88b54e5cb57d4f3fbe72a 100644 (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.
index d4584e84f6fc980893d30e617bf661a57d00e073..91740aff9fb0caf9a354db4b636175adcf1024cb 100644 (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
index 3a2f3dc2b684c42fe7e96ec552d5c854be00eb35..64574a0eb8f6961526327a083eedabade93a34df 100644 (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.
 
index b14a3193b57ac50db48db1509cd97fe3597c29dd..2afa888995f527097ac0d782a2eb300d3a401916 100644 (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
index 46de4cb4f7e95ec092057431e6ccd8cf809800ad..41ceb49cc9d0bfcc17a7c07b130982e5c8621b84 100644 (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
index 66c7055ff9adf5f6f28dd6d0a45710ed4c469c92..43efe5826b1d1adf645c85e69a88cebd9ae2b246 100644 (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