kumquat-buildroot/package/sdl2/Config.in
Thomas Petazzoni 8ab036d26f package/sdl2: rework KMS/DRM video driver dependencies
The KMS/DRM video driver of SDL2 can currently only be enabled when
mesa3d is the OpenGL provider, as the option has a dependency on
BR2_PACKAGE_MESA3D_GBM. Now that we have a libgbm virtual package and
BR2_PACKAGE_HAS_LIBGBM, we can do better.

However, this has uncovered a number of additional related issues that
are resolved at the same time. Here are some details:

 * the 'depends on BR2_PACKAGE_LIBDRM' is changed to a select, as we
   normally do for library dependencies. Due to this, we inherit a
   BR2_TOOLCHAIN_HAS_THREADS dependency.

 * the 'depends on BR2_PACKAGE_MESA3D_GBM' is changed to 'depends on
   BR2_PACKAGE_HAS_LIBGBM', and the 'mesa3d' dependency is changed to
   'libgbm'.

 * the KMS/DRM video driver in SDL2 needs EGL (hence the additional
   'depends on BR2_PACKAGE_HAS_LIBEGL' and the libegbl dependency is
   added in the .mk file). But in turn, EGL support is only checked
   when either OpenGL or OpenGLES support is enabled in SDL2, which is
   why we add logic to select the appropriate options.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
[yann.morin.1998@free.fr:
  - fix dependency on comment (invert the symbol dependencies)
  - split comment
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-08-22 16:38:11 +02:00

70 lines
1.9 KiB
Plaintext

config BR2_PACKAGE_SDL2
bool "sdl2"
depends on !BR2_STATIC_LIBS
help
Simple DirectMedia Layer 2 - SDL2 is a library that allows
programs portable low level access to a video framebuffer,
audio output, mouse, and keyboard. It is not compatible with
SDL1.
http://www.libsdl.org/
if BR2_PACKAGE_SDL2
config BR2_PACKAGE_SDL2_DIRECTFB
bool "DirectFB video driver"
depends on BR2_PACKAGE_DIRECTFB
comment "DirectFB video driver needs directfb"
depends on !BR2_PACKAGE_DIRECTFB
config BR2_PACKAGE_SDL2_X11
bool "X11 video driver"
depends on BR2_PACKAGE_XORG7
depends on BR2_USE_MMU # fork()
select BR2_PACKAGE_XLIB_LIBX11
select BR2_PACKAGE_XLIB_LIBXEXT
comment "X11 video driver needs X.org"
depends on !BR2_PACKAGE_XORG7
depends on BR2_USE_MMU
config BR2_PACKAGE_SDL2_KMSDRM
bool "KMS/DRM video driver"
depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
depends on BR2_PACKAGE_HAS_LIBGBM
depends on BR2_PACKAGE_HAS_LIBEGL
depends on BR2_PACKAGE_SDL2_OPENGL || BR2_PACKAGE_SDL2_OPENGLES
select BR2_PACKAGE_LIBDRM
comment "KMS/DRM video driver needs a toolchain w/ threads"
depends on !BR2_TOOLCHAIN_HAS_THREADS
comment "KMS/DRM video driver needs a GBM provider, and OpenGL or OpenGLES+EGL"
depends on !BR2_PACKAGE_HAS_LIBGBM || \
!BR2_PACKAGE_HAS_LIBEGL || \
!(BR2_PACKAGE_SDL2_OPENGL || BR2_PACKAGE_SDL2_OPENGLES)
config BR2_PACKAGE_SDL2_OPENGL
bool "OpenGL (GLX)"
depends on BR2_PACKAGE_HAS_LIBGL
depends on BR2_PACKAGE_XORG7
depends on BR2_USE_MMU # X11 video driver
select BR2_PACKAGE_SDL2_X11
comment "OpenGL support needs X11 and an OpenGL provider"
depends on BR2_USE_MMU
depends on !BR2_PACKAGE_HAS_LIBGL || !BR2_PACKAGE_XORG7
config BR2_PACKAGE_SDL2_OPENGLES
bool "OpenGL ES"
depends on BR2_PACKAGE_HAS_LIBGLES
comment "OpenGL ES support needs an OpenGL ES provider"
depends on !BR2_PACKAGE_HAS_LIBGLES
endif
comment "sdl2 needs a toolchain w/ dynamic library"
depends on BR2_STATIC_LIBS