gnu: Add sdl2-compat.

* gnu/packages/sdl.scm (sdl2-compat): New variable.

Change-Id: I57eae86fc14224f08c42f079b9e271509e855166
This commit is contained in:
宋文武 2025-04-19 07:42:35 +08:00
parent b055afaaf3
commit 0af911f682
No known key found for this signature in database
GPG key ID: D415BF253B515976

View file

@ -201,6 +201,46 @@ hardware.")
vulkan-loader
wayland-protocols))))
(define-public sdl2-compat
(package
(name "sdl2-compat")
(version "2.32.54")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/libsdl-org/sdl2-compat")
(commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0ijpx62b9syypxxnwvggz4l5fmrgln95ka180am9g2hgyqkqlj5n"))))
(build-system cmake-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-before 'configure 'qualify-libsdl3
(lambda _
(substitute* "src/sdl2_compat.c"
(("libSDL3[.]so[.]0")
(string-append #$(this-package-input "sdl3")
"/lib/libSDL3.so.0")))))
(add-after 'install 'install-sdl2.pc
(lambda _
(let ((pcdir (string-append #$output
"/lib/pkgconfig")))
(symlink (string-append pcdir "/sdl2-compat.pc")
(string-append pcdir "/sdl2.pc"))))))))
(inputs (list sdl3))
(propagated-inputs (list libx11)) ;required by SDL_syswm.h
(synopsis "Compatibility layer for the SDL2 game development library")
(description "Simple DirectMedia Layer is a cross-platform development library
designed to provide low level access to audio, keyboard, mouse, joystick, and
graphics hardware. This package is a compatibility layer; it provides a binary and
source compatible API for programs written against SDL2, but it uses SDL3 behind the
scenes.")
(home-page "https://libsdl.org/")
(license license:zlib)))
(define-public sdl12-compat
(package
(name "sdl12-compat")