]> gitweb.factorcode.org Git - factor.git/blobdiff - shell.nix
alien: fix docs for FUNCTION: not using a ; anymore
[factor.git] / shell.nix
index 83c3743c9c95f1a3ad57b26cf4e3ff31a535c9b0..3a91384c87e6e7f1b4b4296b626e3fc4f3ee6bc9 100644 (file)
--- a/shell.nix
+++ b/shell.nix
@@ -5,9 +5,6 @@ let
   runtimeLibs = with xorg; [
     glib
     pango cairo
-    gtk2-x11
-    gdk_pixbuf
-    gnome2.gtkglext
     pcre
     libGL
     libGLU
@@ -18,7 +15,11 @@ let
     libogg
     libvorbis
     zlib
-  ];
+  ] ++ (if stdenv.isDarwin then [] else [
+    gtk2-x11
+    gdk_pixbuf
+    gnome2.gtkglext
+  ]);
   runtimeLibPath = "/run/opengl-driver/lib:" + lib.makeLibraryPath runtimeLibs;
 in
 (mkClangShell {
@@ -29,18 +30,24 @@ in
     git
     curl
     makeWrapper
-  ];
+  ] ++ (if stdenv.isDarwin then [darwin.apple_sdk.frameworks.Cocoa] else []);
   shellHook = ''
+    # Set Gdk pixbuf loaders file to the one from the build dependencies here
+    unset GDK_PIXBUF_MODULE_FILE
+    # Defined in gdk-pixbuf setup hook
+    findGdkPixbufLoaders "${pkgs.librsvg}"
+
     wrapFactor () {
     [ -n "$1" ] || { printf "Usage: wrapFactor <factor-root>" ; return; }
     local root="$(realpath $1)"
     local binary="''${root}/factor"
     local wrapped="''${root}/.factor-wrapped"
     # Remove the wrapped binary if a new VM has been compiled
-    ${lib.getBin file}/bin/file $binary |grep ELF >/dev/null && rm -f "$wrapped"
+    ${lib.getBin file}/bin/file "$binary" |grep ELF >/dev/null && rm -f "$wrapped"
     # Restore the factor binary if it was already wrapped
     [ -e "$wrapped" ] && { mv "$wrapped" "$binary" ; }
     wrapProgram "$binary" --prefix LD_LIBRARY_PATH : ${runtimeLibPath} \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
       --argv0 factor
     ln -sf "''${root}/factor.image" "''${root}/.factor-wrapped.image"
     }