lib/build-version.nix (21 lines of code) (raw):
{
buildConfig,
pkgs,
torch,
upstreamVariant,
}:
let
inherit (pkgs) lib;
inherit (import ./version-utils.nix { inherit lib; }) flattenVersion abiString;
abi = torch: abiString torch.passthru.cxx11Abi;
targetPlatform = pkgs.stdenv.targetPlatform.system;
cudaVersion = torch: "cu${flattenVersion torch.cudaPackages.cudaMajorMinorVersion}";
rocmVersion =
torch: "rocm${flattenVersion (lib.versions.majorMinor torch.rocmPackages.rocm.version)}";
gpuVersion = torch: (if torch.cudaSupport then cudaVersion else rocmVersion) torch;
torchVersion = torch: flattenVersion torch.version;
in
if pkgs.stdenv.hostPlatform.isDarwin then
"torch${torchVersion torch}-metal-${targetPlatform}"
else
"torch${torchVersion torch}-${abi torch}-${gpuVersion torch}-${targetPlatform}"