diff options
Diffstat (limited to 'pkgs/development/libraries/SDL2/default.nix')
-rw-r--r-- | pkgs/development/libraries/SDL2/default.nix | 115 |
1 files changed, 66 insertions, 49 deletions
diff --git a/pkgs/development/libraries/SDL2/default.nix b/pkgs/development/libraries/SDL2/default.nix index 95022211d2f..d1086de3718 100644 --- a/pkgs/development/libraries/SDL2/default.nix +++ b/pkgs/development/libraries/SDL2/default.nix @@ -1,20 +1,50 @@ -{ lib, stdenv, config, fetchurl, pkg-config +{ lib +, stdenv +, config +, fetchurl +, pkg-config , libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms -, openglSupport ? libGLSupported, libGL -, alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, alsa-lib +, openglSupport ? libGLSupported +, libGL +, alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid +, alsa-lib , x11Support ? !stdenv.targetPlatform.isWindows && !stdenv.hostPlatform.isAndroid -, libX11, xorgproto, libICE, libXi, libXScrnSaver, libXcursor -, libXinerama, libXext, libXxf86vm, libXrandr +, libX11 +, xorgproto +, libICE +, libXi +, libXScrnSaver +, libXcursor +, libXinerama +, libXext +, libXxf86vm +, libXrandr , waylandSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid -, wayland, wayland-protocols, libxkbcommon -, dbusSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, dbus -, udevSupport ? false, udev -, ibusSupport ? false, ibus -, fcitxSupport ? false, fcitx +, wayland +, wayland-protocols +, libxkbcommon +, dbusSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid +, dbus +, udevSupport ? false +, udev +, ibusSupport ? false +, ibus +, fcitxSupport ? false +, fcitx +, 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 +, AudioUnit +, Cocoa +, CoreAudio +, CoreServices +, ForceFeedback +, OpenGL +, audiofile +, libiconv , withStatic ? false }: @@ -25,32 +55,16 @@ with lib; stdenv.mkDerivation rec { pname = "SDL2"; - version = "2.0.14"; + version = "2.0.20"; src = fetchurl { url = "https://www.libsdl.org/release/${pname}-${version}.tar.gz"; - sha256 = "1g1jahknv5r4yhh1xq5sf0md20ybdw1zh1i15lry26sq39bmn8fq"; + sha256 = "sha256-xWq6HXtbDn6Znkp2mMcLY6M5T/lwS19uHFfgwW8E3QY="; }; dontDisableStatic = withStatic; outputs = [ "out" "dev" ]; outputBin = "dev"; # sdl-config - patches = [ - ./find-headers.patch - # To fix the build with wayland 1.20.0: - ./Fix-build-against-wayland-1.20.patch - ]; - - # Fix with mesa 19.2: https://bugzilla.libsdl.org/show_bug.cgi?id=4797 - postPatch = '' - substituteInPlace include/SDL_opengl_glext.h \ - --replace "typedef ptrdiff_t GLsizeiptr;" "typedef signed long int khronos_ssize_t; typedef khronos_ssize_t GLsizeiptr;" \ - --replace "typedef ptrdiff_t GLintptr;" "typedef signed long int khronos_intptr_t; typedef khronos_intptr_t GLintptr;" - - substituteInPlace configure \ - --replace 'WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`' 'WAYLAND_SCANNER=`pkg-config --variable=wayland_scanner wayland-scanner`' - ''; - depsBuildBuild = [ pkg-config ]; nativeBuildInputs = [ pkg-config ] ++ optionals waylandSupport [ wayland ]; @@ -63,18 +77,19 @@ stdenv.mkDerivation rec { # Propagated for #include <X11/Xlib.h> and <X11/Xatom.h> in SDL_syswm.h. ++ optionals x11Support [ libX11 xorgproto ]; - dlopenBuildInputs = [ ] - ++ optionals alsaSupport [ alsa-lib audiofile ] - ++ optional dbusSupport dbus - ++ optional pulseaudioSupport libpulseaudio - ++ optional udevSupport udev + dlopenBuildInputs = optionals alsaSupport [ alsa-lib audiofile ] + ++ optional dbusSupport dbus + ++ optional libdecorSupport libdecor + ++ optional pipewireSupport pipewire + ++ optional pulseaudioSupport libpulseaudio + ++ optional udevSupport udev ++ optionals waylandSupport [ wayland wayland-protocols libxkbcommon ] ++ optionals x11Support [ libICE libXi libXScrnSaver libXcursor libXinerama libXext libXrandr libXxf86vm ]; buildInputs = [ libiconv ] ++ dlopenBuildInputs - ++ optional ibusSupport ibus - ++ optional fcitxSupport fcitx + ++ optional ibusSupport ibus + ++ optional fcitxSupport fcitx ++ optionals stdenv.isDarwin [ AudioUnit Cocoa CoreAudio CoreServices ForceFeedback OpenGL ]; enableParallelBuilding = true; @@ -82,9 +97,9 @@ stdenv.mkDerivation rec { configureFlags = [ "--disable-oss" ] ++ optional (!x11Support) "--without-x" - ++ optional alsaSupport "--with-alsa-prefix=${alsa-lib.out}/lib" - ++ optional stdenv.targetPlatform.isWindows "--disable-video-opengles" - ++ optional stdenv.isDarwin "--disable-sdltest"; + ++ optional alsaSupport "--with-alsa-prefix=${alsa-lib.out}/lib" + ++ optional stdenv.targetPlatform.isWindows "--disable-video-opengles" + ++ 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` @@ -117,15 +132,17 @@ stdenv.mkDerivation rec { # # You can grep SDL sources with `grep -rE 'SDL_(NAME|.*_SYM)'` to # list the symbols used in this way. - postFixup = let - rpath = makeLibraryPath (dlopenPropagatedBuildInputs ++ dlopenBuildInputs); - in optionalString (stdenv.hostPlatform.extensions.sharedLibrary == ".so") '' - for lib in $out/lib/*.so* ; do - if ! [[ -L "$lib" ]]; then - patchelf --set-rpath "$(patchelf --print-rpath $lib):${rpath}" "$lib" - fi - done - ''; + postFixup = + let + rpath = makeLibraryPath (dlopenPropagatedBuildInputs ++ dlopenBuildInputs); + in + optionalString (stdenv.hostPlatform.extensions.sharedLibrary == ".so") '' + for lib in $out/lib/*.so* ; do + if ! [[ -L "$lib" ]]; then + patchelf --set-rpath "$(patchelf --print-rpath $lib):${rpath}" "$lib" + fi + done + ''; setupHook = ./setup-hook.sh; |