mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-11 16:26:20 +00:00
61 lines
1.6 KiB
Nix
61 lines
1.6 KiB
Nix
{
|
|
outputs =
|
|
{ self, nixpkgs }:
|
|
{
|
|
lib = {
|
|
build =
|
|
{
|
|
system,
|
|
version,
|
|
sha256,
|
|
}:
|
|
with nixpkgs.legacyPackages.${system};
|
|
let
|
|
src = pkgs.fetchCrate {
|
|
pname = "wasm-bindgen-cli";
|
|
inherit version sha256;
|
|
};
|
|
|
|
cargoLock = {
|
|
lockFile = "${src}/Cargo.lock";
|
|
};
|
|
in
|
|
rustPlatform.buildRustPackage {
|
|
name = "wasm-bindgen-cli";
|
|
inherit src cargoLock;
|
|
buildInputs = [
|
|
curl
|
|
darwin.apple_sdk.frameworks.Security
|
|
];
|
|
doCheck = false;
|
|
};
|
|
|
|
buildFromCargoLock =
|
|
{
|
|
system,
|
|
cargoLock,
|
|
sha256,
|
|
}:
|
|
with nixpkgs.legacyPackages.${system};
|
|
assert (cargoLock.lockFile or null == null) != (cargoLock.lockFileContents or null == null);
|
|
let
|
|
lockFileContents =
|
|
if cargoLock.lockFile != null then
|
|
builtins.readFile cargoLock.lockFile
|
|
else
|
|
cargoLock.lockFileContents;
|
|
|
|
parsedLockFile = builtins.fromTOML lockFileContents;
|
|
|
|
wasm-bindgen-version =
|
|
(lib.lists.findFirst (x: x.name == "wasm-bindgen") null parsedLockFile.package).version;
|
|
in
|
|
assert wasm-bindgen-version != null;
|
|
self.lib.build {
|
|
inherit system sha256;
|
|
version = wasm-bindgen-version;
|
|
};
|
|
};
|
|
};
|
|
}
|