{ lib , stdenv , fetchFromGitHub , rocmUpdateScript , cmake , rocm-cmake , rocblas , rocsparse , rocprim , rocrand , clr , git , openmp , openmpi , gtest , buildTests ? false , buildBenchmarks ? false , buildSamples ? false , gpuTargets ? [ ] # gpuTargets = [ "gfx803" "gfx900:xnack-" "gfx906:xnack-" ... ] }: stdenv.mkDerivation (finalAttrs: { pname = "rocalution"; version = "6.0.2"; outputs = [ "out" ] ++ lib.optionals buildTests [ "test" ] ++ lib.optionals buildBenchmarks [ "benchmark" ] ++ lib.optionals buildSamples [ "sample" ]; src = fetchFromGitHub { owner = "ROCm"; repo = "rocALUTION"; rev = "rocm-${finalAttrs.version}"; hash = "sha256-mrN+CI2mqaMi8oKxui7HAIE2qSn50aNaFipkWwYMtbc="; }; nativeBuildInputs = [ cmake rocm-cmake clr git ]; buildInputs = [ rocblas rocsparse rocprim rocrand openmp openmpi ] ++ lib.optionals buildTests [ gtest ]; cmakeFlags = [ "-DCMAKE_CXX_COMPILER=hipcc" "-DROCM_PATH=${clr}" "-DHIP_ROOT_DIR=${clr}" "-DSUPPORT_HIP=ON" "-DSUPPORT_OMP=ON" "-DSUPPORT_MPI=ON" "-DBUILD_CLIENTS_SAMPLES=${if buildSamples then "ON" else "OFF"}" # Manually define CMAKE_INSTALL_