{ pkgsPath ? , crossSystem ? null }: let mozOverlay = import ( builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz ); pkgs = import pkgsPath { overlays = [ mozOverlay ]; inherit crossSystem; }; targets = ["i686-unknown-linux-gnu" "x86_64-unknown-linux-gnu"]; in with pkgs; pkgs.rustPlatform.buildRustPackage { name = "linalg"; src = ./.; cargoLock = { lockFile = ./Cargo.lock; }; nativeBuildInputs = [ (buildPackages.buildPackages.latest.rustChannels.stable.rust.override { inherit targets; }) ]; buildPhase = '' ${builtins.concatStringsSep "\n" (map (target: '' cargo build --release --target ${target} '' ) targets)} ''; installPhase = '' mkdir -p $out/lib ${builtins.concatStringsSep "\n" (map (target: '' cp target/${target}/release/liblinalg.a $out/lib/liblinalg-${target}.a '' ) targets)} ''; }