summary refs log tree commit diff
path: root/pkgs/development/libraries/SDL2/default.nix
diff options
context:
space:
mode:
authorCarles Pagès <page@cubata.homelinux.net>2013-07-02 23:06:05 +0200
committerCarles Pagès <page@cubata.homelinux.net>2013-08-27 22:55:41 +0200
commite87589b2ef32165be9da9ec2a8c0f4baf5d76f3e (patch)
tree9ea30d662e573ce881100d051891d812124338e8 /pkgs/development/libraries/SDL2/default.nix
parentbf4bcd900d4b343345f59dfac3d6bf444fb89a37 (diff)
downloadnixpkgs-e87589b2ef32165be9da9ec2a8c0f4baf5d76f3e.tar
nixpkgs-e87589b2ef32165be9da9ec2a8c0f4baf5d76f3e.tar.gz
nixpkgs-e87589b2ef32165be9da9ec2a8c0f4baf5d76f3e.tar.bz2
nixpkgs-e87589b2ef32165be9da9ec2a8c0f4baf5d76f3e.tar.lz
nixpkgs-e87589b2ef32165be9da9ec2a8c0f4baf5d76f3e.tar.xz
nixpkgs-e87589b2ef32165be9da9ec2a8c0f4baf5d76f3e.tar.zst
nixpkgs-e87589b2ef32165be9da9ec2a8c0f4baf5d76f3e.zip
SDL2: add release candidate
The tarball is not marked as such, but current 2.0.0 version is still a release
candidate for SDL2.
Diffstat (limited to 'pkgs/development/libraries/SDL2/default.nix')
-rw-r--r--pkgs/development/libraries/SDL2/default.nix56
1 files changed, 56 insertions, 0 deletions
diff --git a/pkgs/development/libraries/SDL2/default.nix b/pkgs/development/libraries/SDL2/default.nix
new file mode 100644
index 00000000000..13f3aef7d26
--- /dev/null
+++ b/pkgs/development/libraries/SDL2/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, pkgconfig, audiofile
+, openglSupport ? false, mesa ? null
+, alsaSupport ? true, alsaLib ? null
+, x11Support ? true, x11 ? null, libXrandr ? null
+, pulseaudioSupport ? true, pulseaudio ? null
+}:
+
+# OSS is no longer supported, for it's much crappier than ALSA and
+# PulseAudio.
+assert alsaSupport || pulseaudioSupport;
+
+assert openglSupport -> (mesa != null && x11Support);
+assert x11Support -> (x11 != null && libXrandr != null);
+assert alsaSupport -> alsaLib != null;
+assert pulseaudioSupport -> pulseaudio != null;
+
+let
+  configureFlagsFun = attrs: ''
+        --disable-oss --disable-video-x11-xme
+        --disable-x11-shared --disable-alsa-shared --enable-rpath --disable-pulseaudio-shared
+        --disable-osmesa-shared --enable-static
+        ${if alsaSupport then "--with-alsa-prefix=${attrs.alsaLib}/lib" else ""}
+      '';
+in
+stdenv.mkDerivation rec {
+  name = "SDL2-2.0.0";
+
+  src = fetchurl {
+    url = "http://www.libsdl.org/tmp/release/${name}.tar.gz";
+    sha256 = "0l2sgpbcacpkv4d9qyhn6k1knc4clrammncvij401hl9mzwrsb6q";
+  };
+
+  # Since `libpulse*.la' contain `-lgdbm', PulseAudio must be propagated.
+  propagatedBuildInputs = stdenv.lib.optionals x11Support [ x11 libXrandr ] ++
+    stdenv.lib.optional pulseaudioSupport pulseaudio;
+
+  buildInputs = [ pkgconfig audiofile ] ++
+    stdenv.lib.optional openglSupport [ mesa ] ++
+    stdenv.lib.optional alsaSupport alsaLib;
+
+  # XXX: By default, SDL wants to dlopen() PulseAudio, in which case
+  # we must arrange to add it to its RPATH; however, `patchelf' seems
+  # to fail at doing this, hence `--disable-pulseaudio-shared'.
+  configureFlags = configureFlagsFun { inherit alsaLib; };
+
+  crossAttrs = {
+      configureFlags = configureFlagsFun { alsaLib = alsaLib.crossDrv; };
+  };
+
+  passthru = {inherit openglSupport;};
+
+  meta = {
+    description = "A cross-platform multimedia library";
+    homepage = http://www.libsdl.org/;
+  };
+}