SDL_compat: Fix on Darwin

authored by OPNA2608 and committed by Peter Hoeg 693b87b9 7fa06a53

+23 -4
+20 -3
pkgs/development/libraries/SDL_compat/default.nix
··· 1 1 { lib 2 2 , stdenv 3 3 , fetchFromGitHub 4 + , fetchpatch 4 5 , cmake 5 6 , pkg-config 6 7 , SDL2 8 + , libiconv 9 + , Cocoa 7 10 , libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms 8 11 , openglSupport ? libGLSupported 9 12 , libGL ··· 25 28 hash = "sha256-PDGlMI8q74JaqMQ5oX9Zt5CEr7frFQWECbuwq5g25eg="; 26 29 }; 27 30 31 + patches = optionals stdenv.hostPlatform.isDarwin [ 32 + # Fix broken install name in dylib, https://github.com/libsdl-org/sdl12-compat/issues/194 33 + # Remove when bump > 1.2.52 34 + (fetchpatch { 35 + name = "SDL_compat-fix-install-name.patch"; 36 + url = "https://github.com/libsdl-org/sdl12-compat/commit/5642d47ae489f2eb362cece2464ecc466a700ed5.patch"; 37 + sha256 = "sha256-kQ5H8gXjTZVHHRF6UpgXKl3NIy87iULcc2iCsYt5Hqo="; 38 + }) 39 + ]; 40 + 28 41 nativeBuildInputs = [ cmake pkg-config ]; 29 42 30 43 propagatedBuildInputs = [ SDL2 ] 44 + ++ optionals stdenv.hostPlatform.isDarwin [ libiconv Cocoa ] 31 45 ++ optionals openglSupport [ libGL libGLU ]; 32 46 33 47 enableParallelBuilding = true; ··· 35 49 setupHook = ../SDL/setup-hook.sh; 36 50 37 51 postFixup = '' 38 - for lib in $out/lib/*.so* ; do 52 + for lib in $out/lib/*${stdenv.hostPlatform.extensions.sharedLibrary}* ; do 39 53 if [[ -L "$lib" ]]; then 40 - patchelf --set-rpath "$(patchelf --print-rpath $lib):${makeLibraryPath propagatedBuildInputs}" "$lib" 54 + ${if stdenv.hostPlatform.isDarwin then '' 55 + install_name_tool ${lib.strings.concatMapStrings (x: " -add_rpath ${makeLibraryPath [x]} ") propagatedBuildInputs} "$lib" 56 + '' else '' 57 + patchelf --set-rpath "$(patchelf --print-rpath $lib):${makeLibraryPath propagatedBuildInputs}" "$lib" 58 + ''} 41 59 fi 42 60 done 43 61 ''; 44 62 45 63 meta = with lib; { 46 - broken = stdenv.isDarwin; 47 64 description = "A cross-platform multimedia library - build SDL 1.2 applications against 2.0"; 48 65 homepage = "https://www.libsdl.org/"; 49 66 license = licenses.zlib;
+3 -1
pkgs/top-level/all-packages.nix
··· 21383 21383 libGLU = null; 21384 21384 }); 21385 21385 21386 - SDL_compat = callPackage ../development/libraries/SDL_compat { }; 21386 + SDL_compat = callPackage ../development/libraries/SDL_compat { 21387 + inherit (darwin.apple_sdk.frameworks) Cocoa; 21388 + }; 21387 21389 21388 21390 SDL = SDL_classic; 21389 21391