{ lib , SDL2 , cmake , darwin , fetchFromGitHub , libGLU , libiconv , mesa , pkg-config , stdenv # Boolean flags , libGLSupported ? lib.elem stdenv.hostPlatform.system mesa.meta.platforms , openglSupport ? libGLSupported }: let inherit (darwin.apple_sdk.frameworks) Cocoa; inherit (darwin) autoSignDarwinBinariesHook; in stdenv.mkDerivation (finalAttrs: { pname = "SDL_compat"; version = "1.2.68"; src = fetchFromGitHub { owner = "libsdl-org"; repo = "sdl12-compat"; rev = "release-" + finalAttrs.version; hash = "sha256-f2dl3L7/qoYNl4sjik1npcW/W09zsEumiV9jHuKnUmM="; }; nativeBuildInputs = [ cmake pkg-config ] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [ autoSignDarwinBinariesHook ]; propagatedBuildInputs = [ SDL2 ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv Cocoa ] ++ lib.optionals openglSupport [ libGLU ]; enableParallelBuilding = true; setupHook = ./setup-hook.sh; postFixup = '' for lib in $out/lib/*${stdenv.hostPlatform.extensions.sharedLibrary}* ; do if [[ -L "$lib" ]]; then ${if stdenv.hostPlatform.isDarwin then '' install_name_tool ${lib.strings.concatMapStrings (x: " -add_rpath ${lib.makeLibraryPath [x]} ") finalAttrs.propagatedBuildInputs} "$lib" '' else '' patchelf --set-rpath "$(patchelf --print-rpath $lib):${lib.makeLibraryPath finalAttrs.propagatedBuildInputs}" "$lib" ''} fi done ''; meta = { homepage = "https://www.libsdl.org/"; description = "Cross-platform multimedia library - build SDL 1.2 applications against 2.0"; license = lib.licenses.zlib; mainProgram = "sdl-config"; maintainers = lib.teams.sdl.members ++ (with lib.maintainers; [ peterhoeg ]); platforms = lib.platforms.all; }; })