content: [package]
  name = "subspace-proof-of-space-gpu"
  description = "Subspace proof of space implementation for GPU (low-level proving utilities)"
  license = "0BSD"
  version = "0.1.0"
  authors = ["Supranational LLC"]
  edition = "2024"
  include = [
      "/build.rs",
      "/src",
      "/Cargo.toml",
      "/README.md",
  ]
  
  [dependencies]
  ab-core-primitives = { workspace = true, optional = true }
  blake3 = { workspace = true, optional = true }
  blst = { workspace = true, optional = true }
  # TODO: Erasure coding algorithm is incorrect here and should be fixed, then `rust-kzg-blst` and `blst` crates can be
  #  removed
  rust-kzg-blst = { workspace = true, optional = true }
  # TODO: Fork with ROCm support, switch to upstream once `rocm` branch from `https://github.com/dot-asm/sppark` + https://github.com/dot-asm/sppark/pull/2 are upstreamed
  sppark = { workspace = true, optional = true }
  
  [dev-dependencies]
  ab-erasure-coding = { workspace = true }
  ab-farmer-components = { workspace = true }
  ab-proof-of-space = { workspace = true }
  
  [build-dependencies]
  cc = { workspace = true }
  
  [features]
  # Only Volta+ architectures are supported (GeForce RTX 16xx consumer GPUs and newer)
  cuda = ["_gpu", "sppark/cuda"]
  # TODO: ROCm can't be enabled at the same time as `cuda` feature at the moment
  # Seems to support RDNA 2+, at least on Linux
  rocm = ["_gpu", "sppark/rocm"]
  # Internal feature, shouldn't be used directly
  _gpu = [
      "dep:blake3",
      "dep:blst",
      "dep:rust-kzg-blst",
      "dep:ab-core-primitives",
  ]
  