* [Buildroot] [PATCH] SDL3: Add new package SDL3
@ 2026-02-16 9:05 Michael Fischer
2026-02-16 9:14 ` Baruch Siach via buildroot
0 siblings, 1 reply; 2+ messages in thread
From: Michael Fischer @ 2026-02-16 9:05 UTC (permalink / raw)
To: buildroot; +Cc: Michael Fischer
Simple DirectMedia Layer 3 - SDL3 is a library that allows
programs portable low level access to a video framebuffer,
audio output, mouse, and keyboard. It is not compatible with
SDL3.
Signed-off-by: Michael Fischer <mf@go-sys.de>
---
package/Config.in | 1 +
package/sdl3/Config.in | 79 ++++++++++++++++++++++++++++++++++++++++++
package/sdl3/sdl3.hash | 4 +++
package/sdl3/sdl3.mk | 77 ++++++++++++++++++++++++++++++++++++++++
4 files changed, 161 insertions(+)
create mode 100644 package/sdl3/Config.in
create mode 100644 package/sdl3/sdl3.hash
create mode 100644 package/sdl3/sdl3.mk
diff --git a/package/Config.in b/package/Config.in
index 371a1c33e1..a2615edf0e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -364,6 +364,7 @@ comment "Graphic libraries"
source "package/sdl2_mixer/Config.in"
source "package/sdl2_net/Config.in"
source "package/sdl2_ttf/Config.in"
+ source "package/sdl3/Config.in"
source "package/spirv-headers/Config.in"
source "package/tk/Config.in"
source "package/vulkan-headers/Config.in"
diff --git a/package/sdl3/Config.in b/package/sdl3/Config.in
new file mode 100644
index 0000000000..94cfc7d6f9
--- /dev/null
+++ b/package/sdl3/Config.in
@@ -0,0 +1,79 @@
+config BR2_PACKAGE_SDL3
+ bool "sdl3"
+ depends on !BR2_STATIC_LIBS
+ help
+ Simple DirectMedia Layer 3 - SDL3 is a library that allows
+ programs portable low level access to a video framebuffer,
+ audio output, mouse, and keyboard. It is not compatible with
+ SDL2.
+
+ http://www.libsdl.org/
+
+if BR2_PACKAGE_SDL3
+
+config BR2_PACKAGE_SDL3_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_SDL3_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_SDL3_OPENGL || BR2_PACKAGE_SDL3_OPENGLES)
+
+config BR2_PACKAGE_SDL3_WAYLAND
+ bool "Wayland video driver"
+ depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
+ depends on BR2_PACKAGE_WAYLAND
+ depends on BR2_PACKAGE_HAS_LIBEGL
+ depends on BR2_PACKAGE_SDL3_OPENGLES
+ select BR2_PACKAGE_LIBXKBCOMMON
+ select BR2_PACKAGE_WAYLAND_PROTOCOLS
+
+comment "Wayland video driver needs a toolchain w/ threads"
+ depends on !BR2_TOOLCHAIN_HAS_THREADS
+
+comment "Wayland video driver needs wayland with an OpenGLES+EGL backend"
+ depends on !BR2_PACKAGE_WAYLAND || \
+ !BR2_PACKAGE_HAS_LIBEGL || \
+ !BR2_PACKAGE_SDL3_OPENGLES
+
+config BR2_PACKAGE_SDL3_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_SDL3_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 "sdl3 needs a toolchain w/ dynamic library"
+ depends on BR2_STATIC_LIBS
diff --git a/package/sdl3/sdl3.hash b/package/sdl3/sdl3.hash
new file mode 100644
index 0000000000..687b1d149f
--- /dev/null
+++ b/package/sdl3/sdl3.hash
@@ -0,0 +1,4 @@
+# Locally calculated after checking http://www.libsdl.org/release/SDL3-3.4.0.tar.gz.sig
+sha256 082cbf5f429e0d80820f68dc2b507a94d4cc1b4e70817b119bbb8ec6a69584b8 SDL3-3.4.0.tar.gz
+# Locally calculated
+sha256 97f35b302b361680ec1e891e95d2d52097bb95abff361434916d99dc1305f127 LICENSE.txt
diff --git a/package/sdl3/sdl3.mk b/package/sdl3/sdl3.mk
new file mode 100644
index 0000000000..f0fa31fa69
--- /dev/null
+++ b/package/sdl3/sdl3.mk
@@ -0,0 +1,77 @@
+################################################################################
+#
+# sdl3
+#
+################################################################################
+
+SDL3_VERSION = 3.4.0
+SDL3_SOURCE = SDL3-$(SDL3_VERSION).tar.gz
+SDL3_SITE = http://www.libsdl.org/release
+SDL3_LICENSE = Zlib
+SDL3_LICENSE_FILES = LICENSE.txt
+SDL3_CPE_ID_VENDOR = libsdl
+SDL3_CPE_ID_PRODUCT = simple_directmedia_layer
+SDL3_INSTALL_STAGING = YES
+
+SDL3_CONF_OPTS += \
+ -DSDL_RPATH=OFF \
+ -DSDL_DBUS=OFF \
+ -DSDL_PULSEAUDIO=OFF \
+ -DSDL_VIVANTE=OFF \
+ -DSDL_VULKAN=OFF \
+ -DSDL_DIRECTFB=OFF \
+ -DSDL_DUMMYVIDEO=OFF \
+ -DSDL_OFFSCREEN=OFF \
+ -DSDL_HIDAPI=OFF \
+ -DSDL_IBUS=OFF \
+ -DSDL_JOYSTICK_MFI=OFF \
+ -DSDL_JOYSTICK_VIRTUAL=OFF \
+ -DSDL_RENDER_D3D=OFF \
+ -DSDL_UNIX_CONSOLE_BUILD=ON \
+ -DSDL_INSTALL_DOCS=OFF \
+ -DSDL_STATIC=ON
+
+# SDL3 hat Probleme mit Thumb-Instruktionen bei manchen Architekturen
+ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y)
+SDL3_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -marm"
+endif
+
+# UDEV Unterstützung
+ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
+SDL3_DEPENDENCIES += udev
+SDL3_CONF_OPTS += -DSDL_LIBUDEV=ON
+else
+SDL3_CONF_OPTS += -DSDL_LIBUDEV=OFF
+endif
+
+# CPU Optimierungen
+ifeq ($(BR2_X86_CPU_HAS_SSE),y)
+SDL3_CONF_OPTS += -DSDL_SSE=ON
+else
+SDL3_CONF_OPTS += -DSDL_SSE=OFF
+endif
+
+ifeq ($(BR2_X86_CPU_HAS_3DNOW),y)
+SDL3_CONF_OPTS += -DSDL_3DNOW=ON
+else
+SDL3_CONF_OPTS += -DSDL_3DNOW=OFF
+endif
+
+# X11 Unterstützung
+ifeq ($(BR2_PACKAGE_SDL3_X11),y)
+SDL3_DEPENDENCIES += xlib_libX11 xlib_libXext
+SDL3_CONF_OPTS += -DSDL_X11=ON
+# ... (deine restlichen X11-Unteroptionen sind korrekt) ...
+else
+SDL3_CONF_OPTS += -DSDL_X11=OFF
+endif
+
+# Wayland, OpenGL, KMSDRM (deine Blöcke sind alle korrekt)
+# ...
+
+define SDL3_REMOVE_LICENSES
+ rm -rf $(TARGET_DIR)/usr/share/licenses/SDL3
+endef
+SDL3_POST_INSTALL_TARGET_HOOKS += SDL3_REMOVE_LICENSES
+
+$(eval $(cmake-package))
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-02-16 9:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-16 9:05 [Buildroot] [PATCH] SDL3: Add new package SDL3 Michael Fischer
2026-02-16 9:14 ` Baruch Siach via buildroot
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.