SDL2: Keep .a files on dontDisableStatic
; don't move them to $dev; prune .la.
Most other packages don't move `.a` files to "$dev", and that is because it makes the pkg-config `.pc` file wrong (the `libdir` is the non-dev one). Keeping them in the main output makes static linking of SDL2 work. See added comment about pruning of `.la` files.
This commit is contained in:
parent
9d59d57d45
commit
57908c1624
@ -75,9 +75,21 @@ stdenv.mkDerivation rec {
|
||||
++ optional alsaSupport "--with-alsa-prefix=${alsaLib.out}/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`
|
||||
# fail with `cannot find -lXext, `-lXcursor` etc. linker errors
|
||||
# because the `.la` files are not pruned if static libs exist
|
||||
# (see https://github.com/NixOS/nixpkgs/commit/fd97db43bcb05e37f6bb77f363f1e1e239d9de53)
|
||||
# and they also don't carry the necessary `-L` paths of their
|
||||
# X11 dependencies.
|
||||
# For static linking, it is better to rely on `pkg-config` `.pc`
|
||||
# files.
|
||||
postInstall = ''
|
||||
moveToOutput lib/libSDL2main.a "$dev"
|
||||
if [ "$dontDisableStatic" -eq "1" ]; then
|
||||
rm $out/lib/*.la
|
||||
else
|
||||
rm $out/lib/*.a
|
||||
fi
|
||||
moveToOutput bin/sdl2-config "$dev"
|
||||
'';
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user