36 lines
1.3 KiB
Nix
36 lines
1.3 KiB
Nix
{ callPackage, stdenv }:
|
|
let
|
|
# this GPU families are supported "by-default" upstream (see https://github.com/Syllo/nvtop/blob/3a69c2d060298cd6f92cb09db944eded98be1c23/CMakeLists.txt#L81)
|
|
# coincidentally, these families are also easy to build in nixpkgs at the moment
|
|
defaultGPUFamilies = [
|
|
"amd"
|
|
"apple"
|
|
"intel"
|
|
"msm"
|
|
"nvidia"
|
|
"panfrost"
|
|
"panthor"
|
|
];
|
|
# these GPU families are partially supported upstream, they are also tricky to build in nixpkgs
|
|
# volunteers with specific hardware needed to build and test these package variants
|
|
additionalGPUFamilies = [ "ascend" ];
|
|
defaultSupport = builtins.listToAttrs (
|
|
# apple can only build on darwin, and it can't build everything else, and vice versa
|
|
builtins.map (gpu: {
|
|
name = gpu;
|
|
value =
|
|
(gpu == "apple" && stdenv.buildPlatform.isDarwin && stdenv.hostPlatform == stdenv.buildPlatform)
|
|
|| (gpu != "apple" && stdenv.buildPlatform.isLinux);
|
|
}) defaultGPUFamilies
|
|
);
|
|
in
|
|
{
|
|
full = callPackage ./build-nvtop.nix defaultSupport; # this package supports all default GPU families
|
|
}
|
|
# additional packages with only one specific GPU family support
|
|
// builtins.listToAttrs (
|
|
builtins.map (gpu: {
|
|
name = gpu;
|
|
value = (callPackage ./build-nvtop.nix { "${gpu}" = true; });
|
|
}) defaultGPUFamilies
|
|
)
|