{ lib, stdenv, fetchFromGitHub, rocmUpdateScript, cmake, rocm-cmake, rocsparse, clr, gfortran, gtest, openmp, buildTests ? false, buildBenchmarks ? false, buildSamples ? false, gpuTargets ? clr.localGpuTargets or [ ], }: # This can also use cuSPARSE as a backend instead of rocSPARSE stdenv.mkDerivation (finalAttrs: { pname = "hipsparse"; version = "7.2.3"; outputs = [ "out" ] ++ lib.optionals buildTests [ "test" ] ++ lib.optionals buildSamples [ "sample" ]; src = fetchFromGitHub { owner = "ROCm"; repo = "rocm-libraries"; rev = "rocm-${finalAttrs.version}"; sparseCheckout = [ "projects/hipsparse" "shared" ]; hash = "sha256-E1chG+giFtf02fjutoV4yM2XvrQKjgXRSvxs0NBBkvI="; }; sourceRoot = "${finalAttrs.src.name}/projects/hipsparse"; nativeBuildInputs = [ cmake rocm-cmake clr gfortran ]; buildInputs = [ rocsparse ] ++ lib.optionals (buildTests || buildBenchmarks) [ gtest ] ++ lib.optionals (buildTests || buildSamples) [ openmp ]; cmakeFlags = [ # Manually define CMAKE_INSTALL_