{ lib, stdenv, fetchFromGitHub, rocmUpdateScript, cmake, rocm-cmake, rocm-smi, clr, openmp, gtest, rocblas, buildTests ? false, # Will likely fail building because wavefront shifts are not supported for certain archs buildExtendedTests ? false, buildBenchmarks ? false, buildSamples ? false, gpuTargets ? clr.localGpuTargets or [ ], }: stdenv.mkDerivation (finalAttrs: { pname = "rocwmma"; version = "7.2.3"; outputs = [ "out" ] ++ lib.optionals (buildTests || buildBenchmarks) [ "test" ] ++ lib.optionals buildBenchmarks [ "benchmark" ] ++ lib.optionals buildSamples [ "sample" ]; src = fetchFromGitHub { owner = "ROCm"; repo = "rocm-libraries"; rev = "rocm-${finalAttrs.version}"; sparseCheckout = [ "projects/rocwmma" "shared" ]; hash = "sha256-eoF8a7zknpgvDOSDzolOrdtszUJ5tC7Ur2sRShiQEO0="; }; sourceRoot = "${finalAttrs.src.name}/projects/rocwmma"; patches = lib.optionals (buildTests || buildBenchmarks) [ ./0000-dont-fetch-googletest.patch ]; nativeBuildInputs = [ cmake rocm-cmake clr ]; buildInputs = [ openmp ] ++ lib.optionals (buildTests || buildBenchmarks) [ rocm-smi gtest rocblas ]; cmakeFlags = [ "-DROCWMMA_BUILD_TESTS=${if buildTests || buildBenchmarks then "ON" else "OFF"}" "-DROCWMMA_BUILD_SAMPLES=${if buildSamples then "ON" else "OFF"}" # Manually define CMAKE_INSTALL_