jql: 8.0.0 -> 8.0.2 (#362884)
[NixPkgs.git] / pkgs / development / rocm-modules / 5 / hipsolver / default.nix
bloba7b20ad6d727295f3b3f6c7ff94b141117f58c72
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   rocmUpdateScript,
6   cmake,
7   rocm-cmake,
8   clr,
9   gfortran,
10   rocblas,
11   rocsolver,
12   gtest,
13   lapack-reference,
14   buildTests ? false,
15   buildBenchmarks ? false,
16   buildSamples ? false,
19 # Can also use cuSOLVER
20 stdenv.mkDerivation (finalAttrs: {
21   pname = "hipsolver";
22   version = "5.7.1";
24   outputs =
25     [
26       "out"
27     ]
28     ++ lib.optionals buildTests [
29       "test"
30     ]
31     ++ lib.optionals buildBenchmarks [
32       "benchmark"
33     ]
34     ++ lib.optionals buildSamples [
35       "sample"
36     ];
38   src = fetchFromGitHub {
39     owner = "ROCm";
40     repo = "hipSOLVER";
41     rev = "rocm-${finalAttrs.version}";
42     hash = "sha256-5b6kPj9yvXvP7f7AyHDTYRoM/EhQZvwkVCfDflFJugc=";
43   };
45   nativeBuildInputs = [
46     cmake
47     rocm-cmake
48     clr
49     gfortran
50   ];
52   buildInputs =
53     [
54       rocblas
55       rocsolver
56     ]
57     ++ lib.optionals buildTests [
58       gtest
59     ]
60     ++ lib.optionals (buildTests || buildBenchmarks) [
61       lapack-reference
62     ];
64   cmakeFlags =
65     [
66       "-DCMAKE_C_COMPILER=hipcc"
67       "-DCMAKE_CXX_COMPILER=hipcc"
68       # Manually define CMAKE_INSTALL_<DIR>
69       # See: https://github.com/NixOS/nixpkgs/pull/197838
70       "-DCMAKE_INSTALL_BINDIR=bin"
71       "-DCMAKE_INSTALL_LIBDIR=lib"
72       "-DCMAKE_INSTALL_INCLUDEDIR=include"
73     ]
74     ++ lib.optionals buildTests [
75       "-DBUILD_CLIENTS_TESTS=ON"
76     ]
77     ++ lib.optionals buildBenchmarks [
78       "-DBUILD_CLIENTS_BENCHMARKS=ON"
79     ]
80     ++ lib.optionals buildSamples [
81       "-DBUILD_CLIENTS_SAMPLES=ON"
82     ];
84   postInstall =
85     lib.optionalString buildTests ''
86       mkdir -p $test/bin
87       mv $out/bin/hipsolver-test $test/bin
88     ''
89     + lib.optionalString buildBenchmarks ''
90       mkdir -p $benchmark/bin
91       mv $out/bin/hipsolver-bench $benchmark/bin
92     ''
93     + lib.optionalString buildSamples ''
94       mkdir -p $sample/bin
95       mv clients/staging/example-* $sample/bin
96       patchelf $sample/bin/example-* --shrink-rpath --allowed-rpath-prefixes "$NIX_STORE"
97     ''
98     + lib.optionalString (buildTests || buildBenchmarks) ''
99       rmdir $out/bin
100     '';
102   passthru.updateScript = rocmUpdateScript {
103     name = finalAttrs.pname;
104     owner = finalAttrs.src.owner;
105     repo = finalAttrs.src.repo;
106   };
108   meta = with lib; {
109     description = "ROCm SOLVER marshalling library";
110     homepage = "https://github.com/ROCm/hipSOLVER";
111     license = with licenses; [ mit ];
112     maintainers = teams.rocm.members;
113     platforms = platforms.linux;
114     broken =
115       versions.minor finalAttrs.version != versions.minor stdenv.cc.version
116       || versionAtLeast finalAttrs.version "6.0.0";
117   };