From: Romain Naour <romain.naour@openwide.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v5 14/36] package/efl/libefl: add X11 support
Date: Thu, 29 Oct 2015 21:49:44 +0100 [thread overview]
Message-ID: <56328668.3090000@openwide.fr> (raw)
In-Reply-To: <20151025150116.GL11692@free.fr>
Yann, All,
Le 25/10/2015 16:01, Yann E. MORIN a ?crit :
> Romain, All,
>
> On 2015-10-24 23:00 +0200, Romain Naour spake thusly:
>> Add an option to enable X11 support in libecore without graphic
>> acceleration. libecore can use xlib or xcb support but the latter
>> in not recommended by efl developpers.
>>
>> Also, set x-includes and x-libraries configure option for cross-compiling.
>> Previous efl versions had cross-compilation issue (poisoned paths)
>> if these options are not passed to configure script.
>>
>> In order to remove the dependency on libXp wich is no longer bundled in
>> recent X11 release [1], backport an upstream patch [2] to remove xprint
>> usage.
>>
>> [1] http://www.x.org/wiki/Releases/ModuleVersions
>> [2] https://git.enlightenment.org/core/efl.git/commit/?h=efl-1.15&id=434572355c7e929b84210b2f795634d38f13c913
>>
>> Signed-off-by: Romain Naour <romain.naour@openwide.fr>
> [--SNIP--]
>> diff --git a/package/efl/libefl/Config.in b/package/efl/libefl/Config.in
>> index 53adea2..8356fa1 100644
>> --- a/package/efl/libefl/Config.in
>> +++ b/package/efl/libefl/Config.in
>> @@ -42,6 +42,47 @@ comment "libecore video support"
>> config BR2_PACKAGE_LIBEFL_FB
>> bool "libecore framebuffer support"
>>
>> +config BR2_PACKAGE_LIBEFL_X
>> + bool "libecore X support"
>> + depends on BR2_PACKAGE_XORG7
>> + select BR2_PACKAGE_XLIB_LIBX11
>> + select BR2_PACKAGE_XLIB_LIBXEXT
>> +
>> +if BR2_PACKAGE_LIBEFL_X
>> +
>> +choice
>> + prompt "select libecore XLIB/XCB support"
>> +
>> +config BR2_PACKAGE_LIBEFL_X_XLIB
>> + bool "libecore XLIB support"
>> + select BR2_PACKAGE_XLIB_LIBXCOMPOSITE
>> + select BR2_PACKAGE_XLIB_LIBXCURSOR
>> + select BR2_PACKAGE_XLIB_LIBXDAMAGE
>> + select BR2_PACKAGE_XLIB_LIBXINERAMA
>> + select BR2_PACKAGE_XLIB_LIBXP
>> + select BR2_PACKAGE_XLIB_LIBXRANDR
>> + select BR2_PACKAGE_XLIB_LIBXRENDER
>> + select BR2_PACKAGE_XLIB_LIBXSCRNSAVER
>> + select BR2_PACKAGE_XLIB_LIBXTST
>> + select BR2_PACKAGE_XPROTO_GLPROTO
>> +
>> +config BR2_PACKAGE_LIBEFL_X_XCB
>> + bool "libecore XCB support"
>> + depends on !BR2_PACKAGE_LIBEFL_RECOMMENDED_CONFIG
>> + select BR2_PACKAGE_LIBXCB
>> + select BR2_PACKAGE_XCB_UTIL_IMAGE # xcb-image.pc
>> + select BR2_PACKAGE_XCB_UTIL_KEYSYMS # xcb-keysyms.pc
>> + select BR2_PACKAGE_XCB_UTIL_RENDERUTIL # xcb-renderutil.pc
>> + select BR2_PACKAGE_XCB_UTIL_WM # xcb-icccm.pc
>> + select BR2_PACKAGE_XLIB_LIBX11
>> +
>> +comment "for libecore XCB support disable recommended configurations"
>> + depends on BR2_PACKAGE_LIBEFL_RECOMMENDED_CONFIG
>> +
>> +endchoice
>> +
>> +endif # BR2_PACKAGE_LIBEFL_X
>
> Make that a single choice:
>
> choice
> bool "X11 support"
>
> config BR2_PACKAGE_LIBEFL_X_NONE
> bool "none"
>
> config BR2_PACKAGE_LIBEFL_X_XLIB
> bool "xlib"
>
> config BR2_PACKAGE_LIBEFL_X_XCB
> bool "xcb"
>
> endchoice # X11 support
>
> Of course, with the appropriate depends/selects and comment.
Ok
>
>> comment "libevas loaders"
>>
>> config BR2_PACKAGE_LIBEFL_PNG
>> diff --git a/package/efl/libefl/libefl.mk b/package/efl/libefl/libefl.mk
>> index e53470d..6a1a8ae 100644
>> --- a/package/efl/libefl/libefl.mk
>> +++ b/package/efl/libefl/libefl.mk
>> @@ -18,6 +18,7 @@ LIBEFL_DEPENDENCIES = host-pkgconf host-libefl dbus freetype jpeg libcurl lua \
>>
>> # regenerate the configure script:
>> # https://phab.enlightenment.org/T2718
>> +# configure.ac patched by 0002-ecore_x-Remove-XPrint-usage.patch
>
> This comment might become misleading in the future, in case it we no
> longer patch configure.ac. What about:
>
> # Regenerate the autotools:
> # - to fix an issue in eldbus-codegen: https://phab.enlightenment.org/T2718
> # - to remove dependency on libXp: https://phab.enlightenment.org/D3150
>
>> LIBEFL_AUTORECONF = YES
>> LIBEFL_GETTEXTIZE = YES
>>
>> @@ -30,7 +31,7 @@ LIBEFL_CONF_OPTS = \
>> --with-eolian-gen=$(HOST_DIR)/usr/bin/eolian_gen \
>> --disable-cxx-bindings \
>> --enable-lua-old \
>> - --with-x11=none
>> + --enable-lua-old
>
> Now we've got --enable-lua-old twice. ;-)
Probably a rebase issue :p
>
>> # Disable untested configuration warning.
>> ifeq ($(BR2_PACKAGE_LIBEFL_RECOMMENDED_CONFIG),)
>> @@ -172,6 +173,65 @@ else
>> LIBEFL_CONF_OPTS += --enable-fb=no
>> endif
>>
>> +ifeq ($(BR2_PACKAGE_LIBEFL_X),y)
>> +LIBEFL_CONF_OPTS += --with-x=$(STAGING_DIR) \
>> + --x-includes=$(STAGING_DIR)/usr/include \
>> + --x-libraries=$(STAGING_DIR)/usr/lib \
>> + --with-opengl=none
>> +
>> +LIBEFL_DEPENDENCIES += \
>> + xlib_libX11 \
>> + xlib_libXext
>> +else
>> +LIBEFL_CONF_OPTS += --with-x=no \
>> + --with-x11=none
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_LIBEFL_X_XLIB),y)
>> +LIBEFL_DEPENDENCIES += \
>> + xlib_libX11 \
>
> xlib_libx11 already a dependency, above.
>
>> + xlib_libXcomposite \
>> + xlib_libXcursor \
>> + xlib_libXdamage \
>> + xlib_libXext \
>
> Ditto.
>
>> + xlib_libXinerama \
>> + xlib_libXrandr \
>> + xlib_libXrender \
>> + xlib_libXScrnSaver \
>> + xlib_libXtst
>> +LIBEFL_CONF_OPTS += --with-x11=xlib
>> +endif
>> +
>> +# xcb-util-image to provide xcb-image.pc
>> +# xcb-util-renderutil to provide xcb-renderutil.pc
>> +# xcb-util-wm to provide xcb-icccm.pc
>> +# xcb-util-keysyms to provide xcb-keysyms.pc
>> +ifeq ($(BR2_PACKAGE_LIBEFL_X_XCB),y)
>> +LIBEFL_DEPENDENCIES += libxcb \
>> + xcb-util-image \
>> + xcb-util-keysyms \
>> + xcb-util-renderutil \
>> + xcb-util-wm
>> +# You have chosen to use XCB instead of Xlib. It is a myth that XCB
>> +# is amazingly faster than Xlib (when used sensibly). It can be
>> +# faster in a few corner cases on startup of an app, but it comes
>> +# with many downsides. One of those is more complex code inside
>> +# ecore_x, which is far less tested in XCB mode than Xlib. Also
>> +# the big catch is that OpenGL support basically requires Xlib anyway
>> +# so if you want OpenGL in X11, you need Xlib regardless and so you
>> +# gain nothing really in terms of speed and no savings in memory
>> +# because Xlib is still linked, loaded and used, BUT instead you
>> +# have OpenGL drivers working with an hybrid XCB/Xlib (mostly XCB)
>> +# toolkit and this is basically never tested by anyone working on
>> +# the OpenGL drivers, so you will have bugs. Do not enable XCB
>> +# and use OpenGL. XCB is only useful if you wish to shave a few Kb
>> +# off the memory footprint of a whole system and live with less
>> +# tested code, and possibly unimplemented features in ecore_x. To
>> +# remove the XCB setup, remove the --with-x11=xcb option to
>> +# configure.
>
> Why this big comment? At best, it belongs to the help text of
> BR2_PACKAGE_LIBEFL_X_XCB in the Config.in.
>
> Also, I guess you're only quoting the EFL developers here, so you should
> state so and add a pointer to that message upstream:
>
> https://git.enlightenment.org/core/efl.git/tree/configure.ac#n5002
>
> But if it were purely on me, I would just drop it.
Well, I'm wondering if I should keep XCB support in this package since it's not
a "recommended" configuration. I kept it only because it was already there with
efl 1.7.10 package.
Thoughts ?
Best regards,
Romain
>
> Regards,
> Yann E. MORIN.
>
>> +LIBEFL_CONF_OPTS += --with-x11=xcb
>> +endif
>> +
>> # image loader: handle only loaders that requires dependencies.
>> # All other loaders are builded by default statically.
>> ifeq ($(BR2_PACKAGE_LIBEFL_PNG),y)
>> --
>> 2.4.3
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot at busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
>
next prev parent reply other threads:[~2015-10-29 20:49 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-24 21:00 [Buildroot] [PATCH v5 00/36] efl bump to 1.15.2 Romain Naour
2015-10-24 21:00 ` [Buildroot] [PATCH v5 01/36] package/expedite: move to package directory Romain Naour
2015-10-25 12:33 ` Yann E. MORIN
2015-10-24 21:00 ` [Buildroot] [PATCH v5 02/36] package/libevas-generic-loaders: " Romain Naour
2015-10-25 12:56 ` Yann E. MORIN
2015-10-25 19:21 ` Romain Naour
2015-10-25 21:04 ` Yann E. MORIN
2015-10-25 21:41 ` Romain Naour
2015-10-25 21:50 ` Yann E. MORIN
2015-10-24 21:00 ` [Buildroot] [PATCH v5 03/36] package/efl/libefl: new host-package Romain Naour
2015-10-25 13:10 ` Yann E. MORIN
2015-10-25 19:24 ` Romain Naour
2015-10-24 21:00 ` [Buildroot] [PATCH v5 04/36] package/efl/libefl: new package Romain Naour
2015-10-25 13:55 ` Yann E. MORIN
2015-10-26 21:53 ` Romain Naour
2015-10-27 19:16 ` Arnout Vandecappelle
2015-10-24 21:00 ` [Buildroot] [PATCH v5 05/36] package/efl/libefl: regenerate the configure script Romain Naour
2015-10-25 14:00 ` Yann E. MORIN
2015-10-24 21:00 ` [Buildroot] [PATCH v5 06/36] package/efl/libefl: add harfbuzz dependency Romain Naour
2015-10-25 14:22 ` Yann E. MORIN
2015-10-24 21:00 ` [Buildroot] [PATCH v5 07/36] package/efl/libefl: add wayland dependency Romain Naour
2015-10-25 14:25 ` Yann E. MORIN
2015-10-24 21:00 ` [Buildroot] [PATCH v5 08/36] package/efl/libefl: add libcurl dependency Romain Naour
2015-10-25 14:37 ` Yann E. MORIN
2015-10-28 21:39 ` Romain Naour
2015-10-24 21:00 ` [Buildroot] [PATCH v5 09/36] package/efl/libefl: add libblkid dependency Romain Naour
2015-10-25 14:40 ` Yann E. MORIN
2015-10-28 22:03 ` Romain Naour
2015-10-24 21:00 ` [Buildroot] [PATCH v5 10/36] package/efl/libefl: add webp dependency Romain Naour
2015-10-25 14:41 ` Yann E. MORIN
2015-10-24 21:00 ` [Buildroot] [PATCH v5 11/36] package/efl/libefl: add frame buffer config option Romain Naour
2015-10-25 12:31 ` Yann E. MORIN
2015-10-25 12:33 ` Yann E. MORIN
2015-10-25 14:43 ` Yann E. MORIN
2015-10-24 21:00 ` [Buildroot] [PATCH v5 12/36] package/efl/libefl: fix framebuffer support Romain Naour
2015-10-25 14:45 ` Yann E. MORIN
2015-10-24 21:00 ` [Buildroot] [PATCH v5 13/36] package/efl/libefl: add jp2k config option Romain Naour
2015-10-25 14:48 ` Yann E. MORIN
2015-10-26 22:04 ` Romain Naour
2015-10-25 14:48 ` Yann E. MORIN
2015-10-24 21:00 ` [Buildroot] [PATCH v5 14/36] package/efl/libefl: add X11 support Romain Naour
2015-10-25 15:01 ` Yann E. MORIN
2015-10-29 20:49 ` Romain Naour [this message]
2015-10-29 21:01 ` Yann E. MORIN
2015-10-24 21:00 ` [Buildroot] [PATCH v5 15/36] package/efl/libefl: add OpenGL/OpenGLES support Romain Naour
2015-10-25 15:08 ` Yann E. MORIN
2015-10-29 21:02 ` Romain Naour
2015-10-24 21:00 ` [Buildroot] [PATCH v5 16/36] package/efl/libefl: enable xinput2.2 Romain Naour
2015-10-25 15:11 ` Yann E. MORIN
2015-10-24 21:00 ` [Buildroot] [PATCH v5 17/36] package/efl/libefl: add systemd dependency Romain Naour
2015-10-25 15:13 ` Yann E. MORIN
2015-10-29 21:38 ` Romain Naour
2015-10-24 21:00 ` [Buildroot] [PATCH v5 18/36] package/efl/libefl: add sdl2 support Romain Naour
2015-10-25 15:20 ` Yann E. MORIN
2015-10-29 21:17 ` Romain Naour
2015-10-24 21:00 ` [Buildroot] [PATCH v5 19/36] package/libevas-generic-loaders: bump to version 1.15.0 Romain Naour
2015-10-25 16:01 ` Yann E. MORIN
2015-10-25 21:08 ` Yann E. MORIN
2015-10-24 21:01 ` [Buildroot] [PATCH v5 20/36] package/libevas-generic-loaders: add libraw dependency Romain Naour
2015-10-25 16:03 ` Yann E. MORIN
2015-10-24 21:01 ` [Buildroot] [PATCH v5 21/36] package/efl/libelementary: bump to version 1.15.2 Romain Naour
2015-10-25 16:09 ` Yann E. MORIN
2015-10-24 21:01 ` [Buildroot] [PATCH v5 22/36] package/efl/libelementary: add host package Romain Naour
2015-10-25 16:11 ` Yann E. MORIN
2015-10-24 21:01 ` [Buildroot] [PATCH v5 23/36] package/efl: libefl and libelementary share the same version number Romain Naour
2015-10-25 16:13 ` Yann E. MORIN
2015-10-24 21:01 ` [Buildroot] [PATCH v5 24/36] package/enlightenment: bump to version 0.19.12 Romain Naour
2015-10-25 16:28 ` Yann E. MORIN
2015-10-31 14:10 ` Romain Naour
2015-10-24 21:01 ` [Buildroot] [PATCH v5 25/36] package/expedite: bump to efl-1.15 branch Romain Naour
2015-10-25 16:36 ` Yann E. MORIN
2015-10-31 14:19 ` Romain Naour
2015-10-24 21:01 ` [Buildroot] [PATCH v5 26/36] package/efl/libethumb: remove package Romain Naour
2015-10-25 16:38 ` Yann E. MORIN
2015-10-24 21:01 ` [Buildroot] [PATCH v5 27/36] package/efl/libedje: " Romain Naour
2015-10-25 16:41 ` Yann E. MORIN
2015-10-24 21:01 ` [Buildroot] [PATCH v5 28/36] package/efl/libembryo: " Romain Naour
2015-10-25 16:43 ` Yann E. MORIN
2015-10-24 21:01 ` [Buildroot] [PATCH v5 29/36] package/efl/libeio: " Romain Naour
2015-10-25 16:44 ` Yann E. MORIN
2015-10-24 21:01 ` [Buildroot] [PATCH v5 30/36] package/efl/libefreet: " Romain Naour
2015-10-25 16:45 ` Yann E. MORIN
2015-10-24 21:01 ` [Buildroot] [PATCH v5 31/36] package/efl/libedbus: " Romain Naour
2015-10-25 16:46 ` Yann E. MORIN
2015-10-24 21:01 ` [Buildroot] [PATCH v5 32/36] package/efl/libecore: " Romain Naour
2015-10-25 16:50 ` Yann E. MORIN
2015-10-24 21:01 ` [Buildroot] [PATCH v5 33/36] package/efl/libevas: " Romain Naour
2015-10-25 16:52 ` Yann E. MORIN
2015-10-24 21:01 ` [Buildroot] [PATCH v5 34/36] package/efl/libeet: " Romain Naour
2015-10-25 16:52 ` Yann E. MORIN
2015-10-24 21:01 ` [Buildroot] [PATCH v5 35/36] package/efl/libeina: " Romain Naour
2015-10-25 16:56 ` Yann E. MORIN
2015-10-24 21:01 ` [Buildroot] [PATCH v5 36/36] package/libemotion-generic-players: new package Romain Naour
2015-10-25 17:04 ` Yann E. MORIN
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56328668.3090000@openwide.fr \
--to=romain.naour@openwide.fr \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.