瀏覽代碼

efl: do not force dependency on libudev by making eeze a config option.

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>
Gustavo Sverzut Barbieri 8 年之前
父節點
當前提交
e026c3bdb8
共有 3 個文件被更改,包括 44 次插入10 次删除
  1. 31 7
      package/efl/Config.in
  2. 8 1
      package/efl/efl.mk
  3. 5 2
      package/enlightenment/Config.in

+ 31 - 7
package/efl/Config.in

@@ -4,7 +4,6 @@ config BR2_PACKAGE_EFL
 	depends on BR2_HOST_GCC_AT_LEAST_4_7
 	depends on BR2_HOST_GCC_AT_LEAST_4_7
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_PACKAGE_HAS_UDEV # libudev
 	depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS # luajit
 	depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS # luajit
 	depends on BR2_TOOLCHAIN_HAS_THREADS # untested without threads
 	depends on BR2_TOOLCHAIN_HAS_THREADS # untested without threads
 	depends on BR2_USE_MMU
 	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
 	  simply not tested so you are on your own in terms of
 	  ensuring everything works if you do this.
 	  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
 config BR2_PACKAGE_EFL_FONTCONFIG
 	bool "Enable fontconfig support (recommended)"
 	bool "Enable fontconfig support (recommended)"
 	select BR2_PACKAGE_FONTCONFIG
 	select BR2_PACKAGE_FONTCONFIG
@@ -98,6 +110,7 @@ config BR2_PACKAGE_EFL_PULSEAUDIO
 
 
 config BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT
 config BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT
 	bool "Enable libmount support (recommended)"
 	bool "Enable libmount support (recommended)"
+	depends on BR2_PACKAGE_EFL_EEZE
 	select BR2_PACKAGE_UTIL_LINUX
 	select BR2_PACKAGE_UTIL_LINUX
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
 	# libblkid is part of required tools, see EFL's README.
 	# 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
 	  devices etc... and disabling this will hurt support for
 	  Enlightenment and its filemanager.
 	  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
 config BR2_PACKAGE_EFL_HAS_RECOMMENDED_CONFIG
 	bool
 	bool
 	default y if BR2_PACKAGE_EFL_BULLET && \
 	default y if BR2_PACKAGE_EFL_BULLET && \
+		BR2_PACKAGE_EFL_EEZE && \
 		BR2_PACKAGE_EFL_FONTCONFIG && \
 		BR2_PACKAGE_EFL_FONTCONFIG && \
 		BR2_PACKAGE_EFL_GSTREAMER1 && \
 		BR2_PACKAGE_EFL_GSTREAMER1 && \
 		BR2_PACKAGE_EFL_LIBFRIBIDI && \
 		BR2_PACKAGE_EFL_LIBFRIBIDI && \
@@ -160,13 +177,14 @@ config BR2_PACKAGE_EFL_WAYLAND
 	depends on BR2_PACKAGE_WAYLAND
 	depends on BR2_PACKAGE_WAYLAND
 	depends on BR2_TOOLCHAIN_HAS_THREADS # Evas DRM Engine -> libdrm
 	depends on BR2_TOOLCHAIN_HAS_THREADS # Evas DRM Engine -> libdrm
 	depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # Evas DRM Engine
 	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
 	depends on BR2_PACKAGE_EFL_OPENGLES # OpenGL ES with EGL support only
 	select BR2_PACKAGE_EFL_DRM
 	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_PACKAGE_WAYLAND
 	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_MESA3D_OPENGL_EGL \
 	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_MESA3D_OPENGL_EGL \
-		|| !BR2_PACKAGE_EFL_OPENGLES
+		|| !BR2_PACKAGE_EFL_OPENGLES || !BR2_PACKAGE_EFL_EEZE
 
 
 choice
 choice
 	bool "OpenGL support"
 	bool "OpenGL support"
@@ -198,6 +216,7 @@ endchoice # OpenGL support
 
 
 config BR2_PACKAGE_EFL_ELPUT
 config BR2_PACKAGE_EFL_ELPUT
 	bool "Elput"
 	bool "Elput"
+	depends on BR2_PACKAGE_EFL_EEZE
 	select BR2_PACKAGE_LIBINPUT
 	select BR2_PACKAGE_LIBINPUT
 	select BR2_PACKAGE_LIBXKBCOMMON
 	select BR2_PACKAGE_LIBXKBCOMMON
 	help
 	help
@@ -206,8 +225,12 @@ config BR2_PACKAGE_EFL_ELPUT
 	  ecore_drm, etc) to handle interfacing with libinput without
 	  ecore_drm, etc) to handle interfacing with libinput without
 	  having to duplicate the code in each subsystem.
 	  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
 config BR2_PACKAGE_EFL_DRM
 	bool "Evas DRM Engine"
 	bool "Evas DRM Engine"
+	depends on BR2_PACKAGE_EFL_EEZE
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
 	depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # require libgbm from mesa3d
 	depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # require libgbm from mesa3d
 	select BR2_PACKAGE_EFL_ELPUT
 	select BR2_PACKAGE_EFL_ELPUT
@@ -216,8 +239,9 @@ config BR2_PACKAGE_EFL_DRM
 	help
 	help
 	  This option enable building support for the Evas DRM Engine.
 	  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"
 comment "libevas loaders"
 
 
@@ -279,8 +303,8 @@ config BR2_PACKAGE_EFL_SVG
 
 
 endif # BR2_PACKAGE_EFL
 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_HOST_GCC_AT_LEAST_4_7 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 \
 		|| BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
 		|| BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
 	depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS
 	depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS

+ 8 - 1
package/efl/efl.mk

@@ -20,7 +20,7 @@ EFL_LICENSE_FILES = \
 EFL_INSTALL_STAGING = YES
 EFL_INSTALL_STAGING = YES
 
 
 EFL_DEPENDENCIES = host-pkgconf host-efl host-luajit dbus freetype \
 EFL_DEPENDENCIES = host-pkgconf host-efl host-luajit dbus freetype \
-	jpeg luajit lz4 udev zlib
+	jpeg luajit lz4 zlib
 
 
 # Configure options:
 # Configure options:
 # --disable-lua-old: build elua for the target.
 # --disable-lua-old: build elua for the target.
@@ -59,6 +59,13 @@ else
 EFL_CONF_OPTS += --disable-cxx-bindings
 EFL_CONF_OPTS += --disable-cxx-bindings
 endif
 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)
 ifeq ($(BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT),y)
 EFL_DEPENDENCIES += util-linux
 EFL_DEPENDENCIES += util-linux
 EFL_CONF_OPTS += --enable-libmount
 EFL_CONF_OPTS += --enable-libmount

+ 5 - 2
package/enlightenment/Config.in

@@ -9,10 +9,12 @@ config BR2_PACKAGE_ENLIGHTENMENT
 	# libedbus -> dbus, efl libraries
 	# libedbus -> dbus, efl libraries
 	depends on BR2_USE_MMU
 	depends on BR2_USE_MMU
 	depends on BR2_PACKAGE_EFL
 	depends on BR2_PACKAGE_EFL
+	depends on BR2_PACKAGE_HAS_UDEV # efl (eeze) -> libudev
 	depends on BR2_PACKAGE_XORG7
 	depends on BR2_PACKAGE_XORG7
 	# libevas-generic-loaders-svg -> librsvg -> pango -> harfbuzz
 	# libevas-generic-loaders-svg -> librsvg -> pango -> harfbuzz
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4
 	select BR2_PACKAGE_EFL_X_XLIB
 	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_JPEG # needed at runtime by enlightenment_start
 	select BR2_PACKAGE_EFL_PNG # needed at runtime by enlightenment_start
 	select BR2_PACKAGE_EFL_PNG # needed at runtime by enlightenment_start
 	select BR2_PACKAGE_EFL_SVG
 	select BR2_PACKAGE_EFL_SVG
@@ -26,7 +28,8 @@ config BR2_PACKAGE_ENLIGHTENMENT
 
 
 	  http://www.enlightenment.org/
 	  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_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
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4