efl: do not force dependency on libudev by making eeze a config option.
authorGustavo Sverzut Barbieri <barbieri@profusion.mobi>
Mon, 6 Feb 2017 16:10:28 +0000 (17:10 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Mon, 6 Feb 2017 16:12:34 +0000 (17:12 +0100)
Although highly recommended to be enabled, EFL's eeze can be disabled
and thus no dependency on libudev or dynamic device management.

Since 'BR2_PACKAGE_HAS_UDEV' has two ways to be satisfied (eudev or
systemd) we can't automatically select it, instead show a comment and
use 'depends on'.

Signed-off-by: Gustavo Sverzut Barbieri <barbieri@profusion.mobi>
[Romain:
  - Propagate the eeze dependency to enlightenment and efl Wayland
  - Remove udev provider from eeze comment in efl's Config.in
  - Add comments when eeze is not available]
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/efl/Config.in
package/efl/efl.mk
package/enlightenment/Config.in

index 8b06a493dde2015b62e3b28e240efbe488b68045..5e89af602c662440eac5c4f1ac8f73150e6039d8 100644 (file)
@@ -4,7 +4,6 @@ config BR2_PACKAGE_EFL
        depends on BR2_HOST_GCC_AT_LEAST_4_7
        depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
        depends on BR2_INSTALL_LIBSTDCPP
-       depends on BR2_PACKAGE_HAS_UDEV # libudev
        depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS # luajit
        depends on BR2_TOOLCHAIN_HAS_THREADS # untested without threads
        depends on BR2_USE_MMU
@@ -37,6 +36,19 @@ config BR2_PACKAGE_EFL_BULLET
          simply not tested so you are on your own in terms of
          ensuring everything works if you do this.
 
+config BR2_PACKAGE_EFL_EEZE
+       bool "Enable eeze (udev) support (recommended)"
+       depends on BR2_PACKAGE_HAS_UDEV # libudev
+       default y
+       help
+         Eeze is EFL's hardware abstraction layer on top of udev.
+         Having it off will disable some hardware detection, such as
+         'drm' graphics engine or 'elput', as well as mounting
+         removable media.
+
+comment "eeze needs udev /dev management"
+       depends on !BR2_PACKAGE_HAS_UDEV
+
 config BR2_PACKAGE_EFL_FONTCONFIG
        bool "Enable fontconfig support (recommended)"
        select BR2_PACKAGE_FONTCONFIG
@@ -98,6 +110,7 @@ config BR2_PACKAGE_EFL_PULSEAUDIO
 
 config BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT
        bool "Enable libmount support (recommended)"
+       depends on BR2_PACKAGE_EFL_EEZE
        select BR2_PACKAGE_UTIL_LINUX
        select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
        # libblkid is part of required tools, see EFL's README.
@@ -108,9 +121,13 @@ config BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT
          devices etc... and disabling this will hurt support for
          Enlightenment and its filemanager.
 
+comment "efl's libmount support needs udev /dev management (eeze)"
+       depends on !BR2_PACKAGE_EFL_EEZE
+
 config BR2_PACKAGE_EFL_HAS_RECOMMENDED_CONFIG
        bool
        default y if BR2_PACKAGE_EFL_BULLET && \
+               BR2_PACKAGE_EFL_EEZE && \
                BR2_PACKAGE_EFL_FONTCONFIG && \
                BR2_PACKAGE_EFL_GSTREAMER1 && \
                BR2_PACKAGE_EFL_LIBFRIBIDI && \
@@ -160,13 +177,14 @@ config BR2_PACKAGE_EFL_WAYLAND
        depends on BR2_PACKAGE_WAYLAND
        depends on BR2_TOOLCHAIN_HAS_THREADS # Evas DRM Engine -> libdrm
        depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # Evas DRM Engine
+       depends on BR2_PACKAGE_EFL_EEZE # efl drm
        depends on BR2_PACKAGE_EFL_OPENGLES # OpenGL ES with EGL support only
        select BR2_PACKAGE_EFL_DRM
 
-comment "Wayland support needs OpenGL ES w/ EGL, threads"
+comment "Wayland support needs udev /dev management (eeze) and OpenGL ES w/ EGL, threads"
        depends on BR2_PACKAGE_WAYLAND
        depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_MESA3D_OPENGL_EGL \
-               || !BR2_PACKAGE_EFL_OPENGLES
+               || !BR2_PACKAGE_EFL_OPENGLES || !BR2_PACKAGE_EFL_EEZE
 
 choice
        bool "OpenGL support"
@@ -198,6 +216,7 @@ endchoice # OpenGL support
 
 config BR2_PACKAGE_EFL_ELPUT
        bool "Elput"
+       depends on BR2_PACKAGE_EFL_EEZE
        select BR2_PACKAGE_LIBINPUT
        select BR2_PACKAGE_LIBXKBCOMMON
        help
@@ -206,8 +225,12 @@ config BR2_PACKAGE_EFL_ELPUT
          ecore_drm, etc) to handle interfacing with libinput without
          having to duplicate the code in each subsystem.
 
+comment "Elput support needs udev /dev management (eeze)"
+       depends on !BR2_PACKAGE_EFL_EEZE
+
 config BR2_PACKAGE_EFL_DRM
        bool "Evas DRM Engine"
+       depends on BR2_PACKAGE_EFL_EEZE
        depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
        depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # require libgbm from mesa3d
        select BR2_PACKAGE_EFL_ELPUT
@@ -216,8 +239,9 @@ config BR2_PACKAGE_EFL_DRM
        help
          This option enable building support for the Evas DRM Engine.
 
-comment "Evas DRM Engine needs mesa3d w/ EGL support, threads"
-       depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_MESA3D_OPENGL_EGL
+comment "Evas DRM Engine needs udev /dev management (eeze) and mesa3d w/ EGL support, threads"
+       depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_MESA3D_OPENGL_EGL \
+               || !BR2_PACKAGE_EFL_EEZE
 
 comment "libevas loaders"
 
@@ -279,8 +303,8 @@ config BR2_PACKAGE_EFL_SVG
 
 endif # BR2_PACKAGE_EFL
 
-comment "efl needs udev /dev management and a toolchain w/ C++, dynamic library, gcc >= 4.7, threads, wchar"
-       depends on !BR2_PACKAGE_HAS_UDEV || !BR2_INSTALL_LIBSTDCPP \
+comment "efl needs a toolchain w/ C++, dynamic library, gcc >= 4.7, threads, wchar"
+       depends on !BR2_INSTALL_LIBSTDCPP \
                || !BR2_HOST_GCC_AT_LEAST_4_7 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 \
                || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
        depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS
index ab08946c465e9f8e8caef725500b2fbcd98d3227..1e54f7281052d76dd14c8df828c53be3500f263a 100644 (file)
@@ -20,7 +20,7 @@ EFL_LICENSE_FILES = \
 EFL_INSTALL_STAGING = YES
 
 EFL_DEPENDENCIES = host-pkgconf host-efl host-luajit dbus freetype \
-       jpeg luajit lz4 udev zlib
+       jpeg luajit lz4 zlib
 
 # Configure options:
 # --disable-lua-old: build elua for the target.
@@ -59,6 +59,13 @@ else
 EFL_CONF_OPTS += --disable-cxx-bindings
 endif
 
+ifeq ($(BR2_PACKAGE_EFL_EEZE),y)
+EFL_DEPENDENCIES += udev
+EFL_CONF_OPTS += --enable-libeeze
+else
+EFL_CONF_OPTS += --disable-libeeze
+endif
+
 ifeq ($(BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT),y)
 EFL_DEPENDENCIES += util-linux
 EFL_CONF_OPTS += --enable-libmount
index b5d889bc65a974fef1cec54faf5cb76195715a62..d1dee25f862b6e0736daedb16f6e5bd953ae669e 100644 (file)
@@ -9,10 +9,12 @@ config BR2_PACKAGE_ENLIGHTENMENT
        # libedbus -> dbus, efl libraries
        depends on BR2_USE_MMU
        depends on BR2_PACKAGE_EFL
+       depends on BR2_PACKAGE_HAS_UDEV # efl (eeze) -> libudev
        depends on BR2_PACKAGE_XORG7
        # libevas-generic-loaders-svg -> librsvg -> pango -> harfbuzz
        depends on BR2_TOOLCHAIN_HAS_SYNC_4
        select BR2_PACKAGE_EFL_X_XLIB
+       select BR2_PACKAGE_EFL_EEZE
        select BR2_PACKAGE_EFL_JPEG # needed at runtime by enlightenment_start
        select BR2_PACKAGE_EFL_PNG # needed at runtime by enlightenment_start
        select BR2_PACKAGE_EFL_SVG
@@ -26,7 +28,8 @@ config BR2_PACKAGE_ENLIGHTENMENT
 
          http://www.enlightenment.org/
 
-comment "enlightenment needs a toolchain w/ wchar, C++, threads"
+comment "enlightenment needs udev /dev management and a toolchain w/ wchar, C++, threads"
        depends on BR2_PACKAGE_EFL && BR2_PACKAGE_XORG7 && BR2_USE_MMU
-       depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
+       depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \
+               !BR2_PACKAGE_HAS_UDEV
        depends on BR2_TOOLCHAIN_HAS_SYNC_4