diff mbox

[3/4] package/efl: enable libdrm support

Message ID 1473282523-12796-3-git-send-email-romain.naour@gmail.com
State Changes Requested
Headers show

Commit Message

Romain Naour Sept. 7, 2016, 9:08 p.m. UTC
This support is required for Enlightenment wayland support [1] which
will be added in a follow up patch.

As stated in configure.ac, libdrm support needs libdrm, elput,
libxkbcommon and libgbm.

libgbm is only provided by mesa3d package when OpenGL EGL support is
enabled, so add a direct dependency on mesa3d.

Rework the libxkbcommon dependency since it's now required for
ecore-wayland and libdrm support.

[1] https://www.enlightenment.org/about-wayland

Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
libgdm can be found as a standalone library on github [2] but it seems
not very active. I prefer to rely on Mesa3d version.
[2] https://github.com/robclark/libgbm
---
 package/efl/Config.in | 14 ++++++++++++++
 package/efl/efl.mk    |  9 ++++++++-
 2 files changed, 22 insertions(+), 1 deletion(-)

Comments

Thomas Petazzoni Sept. 17, 2016, 5:11 p.m. UTC | #1
Hello,

On Wed,  7 Sep 2016 23:08:42 +0200, Romain Naour wrote:
> This support is required for Enlightenment wayland support [1] which
> will be added in a follow up patch.
> 
> As stated in configure.ac, libdrm support needs libdrm, elput,
> libxkbcommon and libgbm.
> 
> libgbm is only provided by mesa3d package when OpenGL EGL support is
> enabled, so add a direct dependency on mesa3d.

So, on which platform have you tested that?

I'm still a bit uneasy with this libgbm stuff provided only by mesa3d.
Does this means that other OpenGL ES implementations are not suitable?

> Rework the libxkbcommon dependency since it's now required for
> ecore-wayland and libdrm support.

And elput (see earlier patch).

> +config BR2_PACKAGE_EFL_DRM
> +	bool "Evas DRM Engine"
> +	depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
> +	depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # require libgbm from mesa3d
> +	depends on BR2_PACKAGE_EFL_ELPUT

Why do you have a "depends on" for this rather than a "select" ?

Thomas
Romain Naour Sept. 17, 2016, 7:44 p.m. UTC | #2
Hi Thomas,

Thanks for improving the two previous patches!

Le 17/09/2016 à 19:11, Thomas Petazzoni a écrit :
> Hello,
> 
> On Wed,  7 Sep 2016 23:08:42 +0200, Romain Naour wrote:
>> This support is required for Enlightenment wayland support [1] which
>> will be added in a follow up patch.
>>
>> As stated in configure.ac, libdrm support needs libdrm, elput,
>> libxkbcommon and libgbm.
>>
>> libgbm is only provided by mesa3d package when OpenGL EGL support is
>> enabled, so add a direct dependency on mesa3d.
> 
> So, on which platform have you tested that?

Initially, I worked only with Qemu only but I set up an x86_64 atom target to
test on real hardware.

> 
> I'm still a bit uneasy with this libgbm stuff provided only by mesa3d.
> Does this means that other OpenGL ES implementations are not suitable?

On the efl download page [1] they say "opengl (mesa or vendor supplied desktop
OpenGL or OpenGL-ES2)", so mesa3d seems the only suitable implementation
available in Buildroot.

[1] https://www.enlightenment.org/download

> 
>> Rework the libxkbcommon dependency since it's now required for
>> ecore-wayland and libdrm support.
> 
> And elput (see earlier patch).
> 
>> +config BR2_PACKAGE_EFL_DRM
>> +	bool "Evas DRM Engine"
>> +	depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
>> +	depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # require libgbm from mesa3d
>> +	depends on BR2_PACKAGE_EFL_ELPUT
> 
> Why do you have a "depends on" for this rather than a "select" ?

Yes, "select" should be used here.

Best regards,
Romain

> 
> Thomas
>
diff mbox

Patch

diff --git a/package/efl/Config.in b/package/efl/Config.in
index df13047..6171b29 100644
--- a/package/efl/Config.in
+++ b/package/efl/Config.in
@@ -194,6 +194,20 @@  config BR2_PACKAGE_EFL_ELPUT
 	  ecore_drm, etc) to handle interfacing with libinput without
 	  having to duplicate the code in each subsystem.
 
+config BR2_PACKAGE_EFL_DRM
+	bool "Evas DRM Engine"
+	depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
+	depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # require libgbm from mesa3d
+	depends on BR2_PACKAGE_EFL_ELPUT
+	select BR2_PACKAGE_LIBDRM
+	select BR2_PACKAGE_LIBXKBCOMMON
+	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
+	depends on BR2_PACKAGE_EFL_ELPUT
+
 comment "libevas loaders"
 
 config BR2_PACKAGE_EFL_PNG
diff --git a/package/efl/efl.mk b/package/efl/efl.mk
index 5b65758..413cf58 100644
--- a/package/efl/efl.mk
+++ b/package/efl/efl.mk
@@ -146,7 +146,7 @@  EFL_CONF_OPTS += --with-crypto=none
 endif # BR2_PACKAGE_OPENSSL
 
 ifeq ($(BR2_PACKAGE_WAYLAND),y)
-EFL_DEPENDENCIES += wayland libxkbcommon
+EFL_DEPENDENCIES += wayland
 EFL_CONF_OPTS += --enable-wayland
 else
 EFL_CONF_OPTS += --disable-wayland
@@ -200,6 +200,13 @@  ifeq ($(BR2_PACKAGE_EFL_OPENGL_NONE),y)
 EFL_CONF_OPTS += --with-opengl=none
 endif
 
+ifeq ($(BR2_PACKAGE_EFL_DRM),y)
+EFL_CONF_OPTS += --enable-drm
+EFL_DEPENDENCIES += libdrm libegl mesa3d
+endif
+
+EFL_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBXKBCOMMON),libxkbcommon)
+
 # Loaders that need external dependencies needs to be --enable-XXX=yes
 # otherwise the default is '=static'.
 # All other loaders are statically built-in