From a1950a3a32d7cba1bc3736b8e459f4e9aba2fd39 Mon Sep 17 00:00:00 2001 From: Liam Murphy Date: Wed, 15 May 2024 18:46:41 +1000 Subject: [PATCH] ruffle: build on darwin --- .../applications/emulators/ruffle/default.nix | 86 ++++++++++--------- 1 file changed, 47 insertions(+), 39 deletions(-) diff --git a/pkgs/applications/emulators/ruffle/default.nix b/pkgs/applications/emulators/ruffle/default.nix index e538def0d47c..ed19110f4ee8 100644 --- a/pkgs/applications/emulators/ruffle/default.nix +++ b/pkgs/applications/emulators/ruffle/default.nix @@ -6,6 +6,7 @@ pkg-config, python3, rustPlatform, + stdenv, lib, wayland, xorg, @@ -18,6 +19,7 @@ gsettings-desktop-schemas, glib, libxkbcommon, + darwin, }: let @@ -34,56 +36,62 @@ rustPlatform.buildRustPackage { hash = "sha256-WfoYQku1NFhvWyqeSVKtsMMEyUA97YFD7cvdn4XYIPI="; }; - nativeBuildInputs = [ - glib - gsettings-desktop-schemas - jre_minimal - makeWrapper - pkg-config - python3 - wrapGAppsHook3 - ]; + nativeBuildInputs = + [ jre_minimal ] + ++ lib.optionals stdenv.isLinux [ + glib + gsettings-desktop-schemas + makeWrapper + pkg-config + python3 + wrapGAppsHook3 + ] + ++ lib.optionals stdenv.isDarwin [ rustPlatform.bindgenHook ]; - buildInputs = [ - alsa-lib - cairo - gtk3 - openssl - wayland - xorg.libX11 - xorg.libXcursor - xorg.libXrandr - xorg.libXi - xorg.libxcb - xorg.libXrender - vulkan-loader - udev - ]; + buildInputs = + lib.optionals stdenv.isLinux [ + alsa-lib + cairo + gtk3 + openssl + wayland + xorg.libX11 + xorg.libXcursor + xorg.libXrandr + xorg.libXi + xorg.libxcb + xorg.libXrender + vulkan-loader + udev + ] + ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.AppKit ]; dontWrapGApps = true; - preFixup = '' + preFixup = lib.optionalString stdenv.isLinux '' patchelf $out/bin/ruffle_desktop \ --add-needed libxkbcommon-x11.so \ --add-needed libwayland-client.so \ --add-rpath ${libxkbcommon}/lib:${wayland}/lib ''; - postFixup = '' - # This name is too generic - mv $out/bin/exporter $out/bin/ruffle_exporter + postFixup = + '' + # This name is too generic + mv $out/bin/exporter $out/bin/ruffle_exporter + '' + + lib.optionalString stdenv.isLinux '' + vulkanWrapperArgs+=( + --prefix LD_LIBRARY_PATH ':' ${vulkan-loader}/lib + ) - vulkanWrapperArgs+=( - --prefix LD_LIBRARY_PATH ':' ${vulkan-loader}/lib - ) + wrapProgram $out/bin/ruffle_exporter \ + "''${vulkanWrapperArgs[@]}" - wrapProgram $out/bin/ruffle_exporter \ - "''${vulkanWrapperArgs[@]}" - - wrapProgram $out/bin/ruffle_desktop \ - "''${vulkanWrapperArgs[@]}" \ - "''${gappsWrapperArgs[@]}" - ''; + wrapProgram $out/bin/ruffle_desktop \ + "''${vulkanWrapperArgs[@]}" \ + "''${gappsWrapperArgs[@]}" + ''; cargoBuildFlags = [ "--workspace" ]; @@ -109,7 +117,7 @@ rustPlatform.buildRustPackage { govanify jchw ]; - platforms = platforms.linux; + platforms = platforms.linux ++ platforms.darwin; mainProgram = "ruffle_desktop"; }; }