Merge 'mingw-w64' and 'darwin' into cross-win-osx.

Both branches have quite a lot in common, so it's time for a merge and
do the cleanups with respect to both implementations and also generalize
both implementations as much as possible.

This also closes #1876.

Conflicts:
	pkgs/development/interpreters/lua-5/5.2.nix
	pkgs/development/libraries/SDL/default.nix
	pkgs/development/libraries/glew/default.nix
	pkgs/top-level/all-packages.nix
This commit is contained in:
aszlig
2014-03-12 10:16:51 +01:00
33 changed files with 487 additions and 119 deletions

View File

@@ -7,21 +7,13 @@
# OSS is no longer supported, for it's much crappier than ALSA and
# PulseAudio.
assert alsaSupport || pulseaudioSupport;
assert !(stdenv ? cross) -> 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
${if alsaSupport then "--with-alsa-prefix=${attrs.alsaLib}/lib" else ""}
'';
in
stdenv.mkDerivation rec {
version = "1.2.15";
name = "SDL-${version}";
@@ -32,20 +24,46 @@ stdenv.mkDerivation rec {
};
# Since `libpulse*.la' contain `-lgdbm', PulseAudio must be propagated.
propagatedBuildInputs = stdenv.lib.optionals x11Support [ x11 libXrandr ] ++
propagatedNativeBuildInputs =
stdenv.lib.optionals x11Support [ x11 libXrandr ] ++
stdenv.lib.optional pulseaudioSupport pulseaudio;
buildInputs = [ pkgconfig audiofile ] ++
buildInputs = let
notMingw = !(stdenv ? cross) || stdenv.cross.libc != "msvcrt";
in stdenv.lib.optional notMingw audiofile;
nativeBuildInputs = [ pkgconfig ] ++
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; };
configureFlags = [
"--disable-oss"
"--disable-video-x11-xme"
"--disable-x11-shared"
"--disable-alsa-shared"
"--enable-rpath"
"--disable-pulseaudio-shared"
"--disable-osmesa-shared"
] ++ stdenv.lib.optionals (stdenv ? cross) ([
"--without-x"
] ++ stdenv.lib.optional alsaSupport "--with-alsa-prefix=${alsaLib}/lib");
crossAttrs = {
configureFlags = configureFlagsFun { alsaLib = alsaLib.crossDrv; };
crossAttrs =stdenv.lib.optionalAttrs (stdenv.cross.libc == "libSystem") {
patches = let
f = rev: sha256: fetchurl {
url = "http://hg.libsdl.org/SDL/raw-rev/${rev}";
inherit sha256;
};
in [
(f "e9466ead70e5" "0ygir3k83d0vxp7s3k48jn3j8n2bnv9wm6613wpx3ybnjrxabrip")
(f "bbfb41c13a87" "17v29ybjifvka19m8qf14rjc43nfdwk9v9inaizznarhb17amlnv")
];
postPatch = ''
sed -i -e 's/ *-fpascal-strings//' configure
'';
};
passthru = {inherit openglSupport;};