package/kodi: Rework windowing support options

To prepare the bump to the next Kodi version 18.0-Leia we rework the
options to control the windowing platform Kodi is built for. An
automatic choice will no longer be suitable after addition of support
for wayland and gbm, the former also providing a choice to use either
OpenGL or OpenGL ES.

This patch introduces a new choice option by converting the current
X11-based OpenGL support to the new scheme. Other windowing platforms
will be added by subsequent patches.

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
Bernd Kuhls 2018-04-01 15:01:08 +02:00 committed by Arnout Vandecappelle (Essensium/Mind)
parent 382cb50306
commit 80ba1ebd60
2 changed files with 38 additions and 22 deletions

View File

@ -15,14 +15,19 @@ comment "kodi needs python w/ .py modules, a uClibc or glibc toolchain w/ C++, t
|| !BR2_PACKAGE_PYTHON \ || !BR2_PACKAGE_PYTHON \
|| BR2_PACKAGE_PYTHON_PYC_ONLY || BR2_PACKAGE_PYTHON_PYC_ONLY
config BR2_PACKAGE_KODI_GL_EGL config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
bool
config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11_OPENGL
bool bool
default y default y
depends on BR2_PACKAGE_HAS_LIBEGL depends on BR2_PACKAGE_HAS_LIBEGL
depends on BR2_PACKAGE_HAS_LIBGL depends on BR2_PACKAGE_HAS_LIBGL
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
comment "kodi needs an OpenGL EGL backend with OpenGL support" comment "kodi needs an OpenGL EGL backend with OpenGL support"
depends on !BR2_PACKAGE_KODI_GL_EGL depends on !BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
menuconfig BR2_PACKAGE_KODI menuconfig BR2_PACKAGE_KODI
bool "kodi" bool "kodi"
@ -31,10 +36,10 @@ menuconfig BR2_PACKAGE_KODI
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HAS_THREADS
depends on !BR2_TOOLCHAIN_USES_MUSL depends on !BR2_TOOLCHAIN_USES_MUSL
depends on BR2_PACKAGE_KODI_GL_EGL
depends on BR2_USE_WCHAR depends on BR2_USE_WCHAR
depends on !BR2_STATIC_LIBS # gnutls, python and others depends on !BR2_STATIC_LIBS # gnutls, python and others
depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
depends on BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
depends on BR2_PACKAGE_PYTHON depends on BR2_PACKAGE_PYTHON
depends on !BR2_PACKAGE_PYTHON_PYC_ONLY depends on !BR2_PACKAGE_PYTHON_PYC_ONLY
select BR2_NEEDS_HOST_JAVA select BR2_NEEDS_HOST_JAVA
@ -48,7 +53,6 @@ menuconfig BR2_PACKAGE_KODI
select BR2_PACKAGE_LIBCROSSGUID select BR2_PACKAGE_LIBCROSSGUID
select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBCURL
select BR2_PACKAGE_LIBFRIBIDI select BR2_PACKAGE_LIBFRIBIDI
select BR2_PACKAGE_LIBGLU if BR2_PACKAGE_KODI_GL_EGL
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
select BR2_PACKAGE_LIBPLIST select BR2_PACKAGE_LIBPLIST
select BR2_PACKAGE_LIBSAMPLERATE select BR2_PACKAGE_LIBSAMPLERATE
@ -70,8 +74,6 @@ menuconfig BR2_PACKAGE_KODI
select BR2_PACKAGE_SQLITE select BR2_PACKAGE_SQLITE
select BR2_PACKAGE_TAGLIB select BR2_PACKAGE_TAGLIB
select BR2_PACKAGE_TINYXML select BR2_PACKAGE_TINYXML
select BR2_PACKAGE_LIBDRM if BR2_PACKAGE_KODI_GL_EGL
select BR2_PACKAGE_XLIB_LIBXRANDR if BR2_PACKAGE_KODI_GL_EGL
select BR2_PACKAGE_YAJL select BR2_PACKAGE_YAJL
select BR2_PACKAGE_ZLIB select BR2_PACKAGE_ZLIB
select BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY if BR2_TOOLCHAIN_USES_GLIBC # runtime UTF conversion support select BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY if BR2_TOOLCHAIN_USES_GLIBC # runtime UTF conversion support
@ -180,6 +182,19 @@ config BR2_PACKAGE_KODI_NONFREE
Enable components with non-free licenses. This option Enable components with non-free licenses. This option
currently only controls support for RAR archives. currently only controls support for RAR archives.
choice
prompt "platform"
default BR2_PACKAGE_KODI_PLATFORM_X11_OPENGL
config BR2_PACKAGE_KODI_PLATFORM_X11_OPENGL
bool "X11/OpenGL"
depends on BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11_OPENGL
select BR2_PACKAGE_LIBDRM
select BR2_PACKAGE_LIBGLU
select BR2_PACKAGE_XLIB_LIBXRANDR
endchoice
config BR2_PACKAGE_KODI_PULSEAUDIO config BR2_PACKAGE_KODI_PULSEAUDIO
bool "pulseaudio" bool "pulseaudio"
depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC
@ -230,25 +245,23 @@ config BR2_PACKAGE_KODI_LIBUSB
config BR2_PACKAGE_KODI_LIBVA config BR2_PACKAGE_KODI_LIBVA
bool "va" bool "va"
depends on BR2_PACKAGE_KODI_GL_EGL depends on BR2_PACKAGE_KODI_PLATFORM_X11_OPENGL
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_LIBVA select BR2_PACKAGE_LIBVA
help help
Enable libva support. Enable libva support.
comment "libva support needs X.org with an openGL backend" comment "libva support needs platform 'X11/OpenGL'"
depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_KODI_GL_EGL depends on !BR2_PACKAGE_KODI_PLATFORM_X11_OPENGL
config BR2_PACKAGE_KODI_LIBVDPAU config BR2_PACKAGE_KODI_LIBVDPAU
bool "vdpau" bool "vdpau"
depends on BR2_PACKAGE_KODI_GL_EGL depends on BR2_PACKAGE_KODI_PLATFORM_X11_OPENGL
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_LIBVDPAU select BR2_PACKAGE_LIBVDPAU
help help
Enable libvdpau support. Enable libvdpau support.
comment "libvdpau support needs X.org with an openGL backend" comment "libvdpau support needs platform 'X11/OpenGL'"
depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_KODI_GL_EGL depends on !BR2_PACKAGE_KODI_PLATFORM_X11_OPENGL
config BR2_PACKAGE_KODI_UPNP config BR2_PACKAGE_KODI_UPNP
bool "upnp" bool "upnp"

View File

@ -165,6 +165,17 @@ ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
KODI_CXX_FLAGS += -latomic KODI_CXX_FLAGS += -latomic
endif endif
ifeq ($(BR2_PACKAGE_KODI_PLATFORM_X11_OPENGL),y)
KODI_CONF_OPTS += \
-DENABLE_OPENGL=ON \
-DENABLE_OPENGLES=OFF \
-DENABLE_X11=ON
KODI_DEPENDENCIES += libegl libglu libgl xlib_libX11 xlib_libXext \
xlib_libXrandr libdrm
else
KODI_CONF_OPTS += -DENABLE_OPENGL=OFF -DENABLE_X11=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_MYSQL),y) ifeq ($(BR2_PACKAGE_KODI_MYSQL),y)
KODI_CONF_OPTS += -DENABLE_MYSQLCLIENT=ON KODI_CONF_OPTS += -DENABLE_MYSQLCLIENT=ON
KODI_DEPENDENCIES += mysql KODI_DEPENDENCIES += mysql
@ -250,14 +261,6 @@ else
KODI_CONF_OPTS += -DENABLE_ALSA=OFF KODI_CONF_OPTS += -DENABLE_ALSA=OFF
endif endif
ifeq ($(BR2_PACKAGE_KODI_GL_EGL),y)
KODI_DEPENDENCIES += libegl libglu libgl xlib_libX11 xlib_libXext \
xlib_libXrandr libdrm
KODI_CONF_OPTS += -DENABLE_OPENGL=ON -DENABLE_X11=ON -DENABLE_OPENGLES=OFF
else
KODI_CONF_OPTS += -DENABLE_OPENGL=OFF -DENABLE_X11=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBMICROHTTPD),y) ifeq ($(BR2_PACKAGE_KODI_LIBMICROHTTPD),y)
KODI_CONF_OPTS += -DENABLE_MICROHTTPD=ON KODI_CONF_OPTS += -DENABLE_MICROHTTPD=ON
KODI_DEPENDENCIES += libmicrohttpd KODI_DEPENDENCIES += libmicrohttpd