squiggle/nix/squiggle-mc.nix
Quinn Dougherty 07c3004c82 just mc
2022-08-16 20:25:31 -07:00

47 lines
1.5 KiB
Nix

{ pkgs, commonFn }:
rec {
common = commonFn pkgs;
rustPkgs = pkgs.rustBuilder.makePackageSet {
rustVersion = "1.60.0";
packageFun = import ../packages/mc/Cargo.nix;
};
yarn-source = pkgs.mkYarnPackage {
name = "squiggle-mc_yarnsource";
buildInputs = common.buildInputs;
src = ../packages/mc;
packageJSON = ../packages/mc/package.json;
yarnLock = ../yarn.lock;
};
rust-lint = pkgs.stdenv.mkDerivation {
name = "squiggle-mc-lint";
src = yarn-source + "/libexec/@quri/squiggle-mc/deps/@quri/squiggle-mc";
buildInputs = with pkgs; [ rustfmt ];
buildPhase = "rustfmt --check src";
installPhase = "mkdir -p $out";
};
lib = rustPkgs.workspace.quri-squiggle-mc { };
webpack-build-pkg = pkgs.stdenv.mkDerivation {
name = "squiggle-mc-build";
src = yarn-source + "/libexec/@quri/squiggle-mc";
buildInputs = common.buildInputs ++ (with pkgs; [ wasm-pack ]);
buildPhase = ''
pushd deps/@quri/squiggle-mc
sed -i /pkg/d .gitignore
yarn --offline build
popd
'';
installPhase = ''
mkdir -p $out
cp -r deps/@quri/squiggle-mc/. $out
'';
};
firefox-test = pkgs.stdenv.mkDerivation {
name = "squiggle-mc-test";
src = yarn-source + "/libexec/@quri/squiggle-mc/deps/@quri/squiggle-mc";
buildInputs = common.buildInputs ++ (with pkgs; [ geckodriver cargo wasm-pack ]);
buildPhase = "yarn --offline test -- --firefox";
installPhase = "mkdir -p $out";
};
}