1{
2 lib,
3 pkgs,
4 buildPythonPackage,
5 rustPlatform,
6 callPackage,
7}:
8
9buildPythonPackage {
10 pname = "uv-build";
11 pyproject = true;
12
13 inherit (pkgs.uv)
14 version
15 src
16 cargoDeps
17 cargoBuildFlags
18 ;
19
20 nativeBuildInputs = [
21 rustPlatform.cargoSetupHook
22 rustPlatform.maturinBuildHook
23 ];
24
25 buildAndTestSubdir = "crates/uv-build";
26
27 # $src/.github/workflows/build-binaries.yml#L139
28 maturinBuildFlags = [ "--profile=minimal-size" ];
29
30 pythonImportsCheck = [ "uv_build" ];
31
32 # The package has no tests
33 doCheck = false;
34
35 # Run the tests of a package built by `uv_build`.
36 passthru.tests.built-by-uv = callPackage ./built-by-uv.nix { inherit (pkgs) uv; };
37
38 meta = {
39 description = "A minimal build backend for uv";
40 homepage = "https://docs.astral.sh/uv/reference/settings/#build-backend";
41 inherit (pkgs.uv.meta) changelog license;
42 maintainers = with lib.maintainers; [ bengsparks ];
43 };
44}