Skip to content

Commit

Permalink
Merge pull request #324512 from trofi/SDL2-update
Browse files Browse the repository at this point in the history
SDL2: 2.30.4 -> 2.30.5
  • Loading branch information
pbsds authored Aug 3, 2024
2 parents dcaaa07 + 53daf0d commit 4b25d1a
Showing 1 changed file with 118 additions and 76 deletions.
194 changes: 118 additions & 76 deletions pkgs/development/libraries/SDL2/default.nix
Original file line number Diff line number Diff line change
@@ -1,73 +1,77 @@
{ lib
, stdenv
, config
, fetchFromGitHub
, nix-update-script
, pkg-config
, libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
, openglSupport ? libGLSupported
, libGL
, alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
, alsa-lib
, x11Support ? !stdenv.hostPlatform.isWindows && !stdenv.hostPlatform.isAndroid
, libX11
, xorgproto
, libICE
, libXi
, libXScrnSaver
, libXcursor
, libXinerama
, libXext
, libXxf86vm
, libXrandr
, waylandSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
, wayland
, wayland-protocols
, wayland-scanner
, drmSupport ? false
, libdrm
, mesa
, libxkbcommon
, dbusSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
, dbus
, udevSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
, udev
, ibusSupport ? false
, ibus
, libdecorSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
, libdecor
, pipewireSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
, pipewire # NOTE: must be built with SDL2 without pipewire support
, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux && !stdenv.hostPlatform.isAndroid
, libpulseaudio
, AudioUnit
, Cocoa
, CoreAudio
, CoreServices
, ForceFeedback
, OpenGL
, audiofile
, libiconv
, withStatic ? stdenv.hostPlatform.isMinGW
{
lib,
stdenv,
config,
fetchFromGitHub,
nix-update-script,
pkg-config,
libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms,
openglSupport ? libGLSupported,
libGL,
alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid,
alsa-lib,
x11Support ? !stdenv.hostPlatform.isWindows && !stdenv.hostPlatform.isAndroid,
libX11,
xorgproto,
libICE,
libXi,
libXScrnSaver,
libXcursor,
libXinerama,
libXext,
libXxf86vm,
libXrandr,
waylandSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid,
wayland,
wayland-protocols,
wayland-scanner,
drmSupport ? false,
libdrm,
mesa,
libxkbcommon,
dbusSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid,
dbus,
udevSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid,
udev,
ibusSupport ? false,
ibus,
libdecorSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid,
libdecor,
pipewireSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid,
pipewire, # NOTE: must be built with SDL2 without pipewire support
pulseaudioSupport ? config.pulseaudio or stdenv.isLinux && !stdenv.hostPlatform.isAndroid,
libpulseaudio,
AudioUnit,
Cocoa,
CoreAudio,
CoreServices,
ForceFeedback,
OpenGL,
audiofile,
libiconv,
withStatic ? stdenv.hostPlatform.isMinGW,
# passthru.tests
, testers
testers,
}:

# NOTE: When editing this expression see if the same change applies to
# SDL expression too

stdenv.mkDerivation (finalAttrs: {
pname = "SDL2";
version = "2.30.4";
version = "2.30.5";

src = fetchFromGitHub {
owner = "libsdl-org";
repo = "SDL";
rev = "release-${finalAttrs.version}";
hash = "sha256-RhqbmS+mPVlXlo4/jrqPqtyGzvfaPTozlUEeAjHUBoA=";
hash = "sha256-ZonlvXAAWCTfDYf/w5RxP1Av67v89kex4H43xkbPYEA=";
};
dontDisableStatic = if withStatic then 1 else 0;
outputs = [ "out" "dev" ];
outputs = [
"out"
"dev"
];
outputBin = "dev"; # sdl-config

patches = [
Expand All @@ -89,41 +93,74 @@ stdenv.mkDerivation (finalAttrs: {

depsBuildBuild = [ pkg-config ];

nativeBuildInputs = [ pkg-config ] ++ lib.optionals waylandSupport [ wayland wayland-scanner ];
nativeBuildInputs =
[ pkg-config ]
++ lib.optionals waylandSupport [
wayland
wayland-scanner
];

dlopenPropagatedBuildInputs = [ ]
dlopenPropagatedBuildInputs =
[ ]
# Propagated for #include <GLES/gl.h> in SDL_opengles.h.
++ lib.optional (openglSupport && !stdenv.isDarwin) libGL
# Propagated for #include <X11/Xlib.h> and <X11/Xatom.h> in SDL_syswm.h.
++ lib.optionals x11Support [ libX11 ];

propagatedBuildInputs = lib.optionals x11Support [ xorgproto ]
++ finalAttrs.dlopenPropagatedBuildInputs;
propagatedBuildInputs =
lib.optionals x11Support [ xorgproto ] ++ finalAttrs.dlopenPropagatedBuildInputs;

dlopenBuildInputs = lib.optionals alsaSupport [ alsa-lib audiofile ]
dlopenBuildInputs =
lib.optionals alsaSupport [
alsa-lib
audiofile
]
++ lib.optional dbusSupport dbus
++ lib.optional libdecorSupport libdecor
++ lib.optional pipewireSupport pipewire
++ lib.optional pulseaudioSupport libpulseaudio
++ lib.optional udevSupport udev
++ lib.optionals waylandSupport [ wayland libxkbcommon ]
++ lib.optionals x11Support [ libICE libXi libXScrnSaver libXcursor libXinerama libXext libXrandr libXxf86vm ]
++ lib.optionals drmSupport [ libdrm mesa ];

buildInputs = [ libiconv ]
++ lib.optionals waylandSupport [
wayland
libxkbcommon
]
++ lib.optionals x11Support [
libICE
libXi
libXScrnSaver
libXcursor
libXinerama
libXext
libXrandr
libXxf86vm
]
++ lib.optionals drmSupport [
libdrm
mesa
];

buildInputs =
[ libiconv ]
++ finalAttrs.dlopenBuildInputs
++ lib.optional ibusSupport ibus
++ lib.optionals waylandSupport [ wayland-protocols ]
++ lib.optionals stdenv.isDarwin [ AudioUnit Cocoa CoreAudio CoreServices ForceFeedback OpenGL ];
++ lib.optionals stdenv.isDarwin [
AudioUnit
Cocoa
CoreAudio
CoreServices
ForceFeedback
OpenGL
];

enableParallelBuilding = true;

configureFlags = [
"--disable-oss"
] ++ lib.optional (!x11Support) "--without-x"
++ lib.optional alsaSupport "--with-alsa-prefix=${alsa-lib.out}/lib"
++ lib.optional stdenv.hostPlatform.isWindows "--disable-video-opengles"
++ lib.optional stdenv.isDarwin "--disable-sdltest";
configureFlags =
[ "--disable-oss" ]
++ lib.optional (!x11Support) "--without-x"
++ lib.optional alsaSupport "--with-alsa-prefix=${alsa-lib.out}/lib"
++ lib.optional stdenv.hostPlatform.isWindows "--disable-video-opengles"
++ lib.optional stdenv.isDarwin "--disable-sdltest";

# We remove libtool .la files when static libs are requested,
# because they make the builds of downstream libs like `SDL_tff`
Expand Down Expand Up @@ -158,7 +195,9 @@ stdenv.mkDerivation (finalAttrs: {
# list the symbols used in this way.
postFixup =
let
rpath = lib.makeLibraryPath (finalAttrs.dlopenPropagatedBuildInputs ++ finalAttrs.dlopenBuildInputs);
rpath = lib.makeLibraryPath (
finalAttrs.dlopenPropagatedBuildInputs ++ finalAttrs.dlopenBuildInputs
);
in
lib.optionalString (stdenv.hostPlatform.extensions.sharedLibrary == ".so") ''
for lib in $out/lib/*.so* ; do
Expand All @@ -172,10 +211,13 @@ stdenv.mkDerivation (finalAttrs: {

passthru = {
inherit openglSupport;
updateScript = nix-update-script { extraArgs = [ "--version-regex" "release-(.*)" ]; };
tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"release-(.*)"
];
};
tests.pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; };
};

meta = with lib; {
Expand Down

0 comments on commit 4b25d1a

Please sign in to comment.