tt-flake/pkgs/luwen/default.nix
2025-01-29 19:34:24 +02:00

59 lines
1.2 KiB
Nix

{ pkgs }:
let
# Upstream does not vendor a lock file so one has to created manually
# `cargo generate-lockfile`
# Use verson needed by tt-smi
# https://github.com/tenstorrent/tt-smi/blob/main/pyproject.toml#L30
version = "0.4.9";
src = pkgs.fetchFromGitHub {
owner = "tenstorrent";
repo = "luwen";
rev = "refs/tags/v${version}";
sha256 = "sha256-K68PjccE2fBkU4RvKv8X6jKRPYqsVhKB6jU92aajLgo=";
};
in
{
luwen = pkgs.rustPlatform.buildRustPackage rec {
pname = "luwen";
inherit version src;
postPatch = ''
ln -s ${./Cargo_0_2.lock} Cargo.lock
'';
cargoLock.lockFile = ./Cargo_0_2.lock;
cargoHash = "";
};
pyluwen = pkgs.python3.pkgs.buildPythonPackage rec {
pname = "pyluwen";
inherit version src;
postPatch = ''
ln -s ${./Cargo_0_2.lock} Cargo.lock
'';
buildAndTestSubdir = "crates/pyluwen";
format = "pyproject";
cargoDeps = pkgs.rustPlatform.importCargoLock {
lockFile = ./Cargo_0_2.lock;
};
nativeBuildInputs = [
pkgs.rustPlatform.cargoSetupHook
pkgs.rustPlatform.maturinBuildHook
];
pythonImportsCheck = [
"pyluwen"
];
};
}