Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox