1{
2 cudaAtLeast,
3 lib,
4 libcublas,
5 libcusparse ? null,
6 libnvjitlink ? null,
7}:
8prevAttrs: {
9 buildInputs =
10 prevAttrs.buildInputs or [ ]
11 # Always depends on this
12 ++ [ libcublas ]
13 # Dependency from 12.0 and on
14 ++ lib.lists.optionals (cudaAtLeast "12.0") [ libnvjitlink ]
15 # Dependency from 12.1 and on
16 ++ lib.lists.optionals (cudaAtLeast "12.1") [ libcusparse ];
17
18 brokenConditions = prevAttrs.brokenConditions or { } // {
19 "libnvjitlink missing (CUDA >= 12.0)" =
20 !(cudaAtLeast "12.0" -> (libnvjitlink != null && libnvjitlink != null));
21 "libcusparse missing (CUDA >= 12.1)" =
22 !(cudaAtLeast "12.1" -> (libcusparse != null && libcusparse != null));
23 };
24}