From 65f3e6c9b368ea1754fdcb925b9bb102e90639a7 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Sun, 9 Feb 2025 03:37:18 +0100 Subject: [PATCH] sdl2-compat: init at 2.30.52 --- pkgs/by-name/sd/sdl2-compat/package.nix | 98 +++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 pkgs/by-name/sd/sdl2-compat/package.nix diff --git a/pkgs/by-name/sd/sdl2-compat/package.nix b/pkgs/by-name/sd/sdl2-compat/package.nix new file mode 100644 index 000000000000..d64f5435a65d --- /dev/null +++ b/pkgs/by-name/sd/sdl2-compat/package.nix @@ -0,0 +1,98 @@ +{ + cmake, + lib, + fetchFromGitHub, + monado, + ninja, + nix-update-script, + SDL2_ttf, + SDL2_net, + SDL2_gfx, + SDL2_sound, + SDL2_mixer, + SDL2_image, + sdl3, + stdenv, + testers, + testSupport ? true, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "sdl2-compat"; + version = "2.30.52"; + + src = fetchFromGitHub { + owner = "libsdl-org"; + repo = "sdl2-compat"; + tag = "release-${finalAttrs.version}"; + hash = "sha256-pdY+yrLWIjMTjmKdYvX4DjzXy2cKaw6P90BPu8K163k"; + }; + + nativeBuildInputs = [ + cmake + ninja + ]; + + buildInputs = [ + sdl3 + ]; + + outputs = [ + "out" + "dev" + ]; + + outputBin = "dev"; + + cmakeFlags = [ + (lib.cmakeBool "SDL2COMPAT_TESTS" finalAttrs.finalPackage.doCheck) + ]; + + doCheck = testSupport && stdenv.buildPlatform.canExecute stdenv.hostPlatform; + + postFixup = + if stdenv.hostPlatform.isDarwin then + '' + install_name_tool -add_rpath ${lib.makeLibraryPath [ sdl3 ]} $out/lib/libSDL2.dylib + '' + else + '' + patchelf --add-rpath ${lib.makeLibraryPath [ sdl3 ]} $out/lib/libSDL2.so + ''; + + passthru = { + tests = + let + replaceSDL2 = drv: drv.override { SDL2 = finalAttrs.finalPackage; }; + in + { + pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; }; + SDL2_ttf = replaceSDL2 SDL2_ttf; + SDL2_net = replaceSDL2 SDL2_net; + SDL2_gfx = replaceSDL2 SDL2_gfx; + SDL2_sound = replaceSDL2 SDL2_sound; + SDL2_mixer = replaceSDL2 SDL2_mixer; + SDL2_image = replaceSDL2 SDL2_image; + } + // lib.optionalAttrs stdenv.hostPlatform.isLinux { + monado = replaceSDL2 monado; + }; + + updateScript = nix-update-script { + extraArgs = [ + "--version-regex" + "release-(.*)" + ]; + }; + }; + + meta = { + description = "SDL2 compatibility layer that uses SDL3 behind the scenes"; + homepage = "https://libsdl.org"; + changelog = "https://github.com/libsdl-org/sdl2-compat/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.zlib; + maintainers = with lib.maintainers; [ nadiaholmquist ]; + platforms = lib.platforms.unix; + pkgConfigModules = [ "sdl2_compat" ]; + }; +})