|
|
|
@ -1,55 +1,34 @@ |
|
|
|
|
{ lib, stdenv |
|
|
|
|
, fetchFromGitHub |
|
|
|
|
, writeScript |
|
|
|
|
, cmake |
|
|
|
|
, rocm-cmake |
|
|
|
|
, clang |
|
|
|
|
, rocm-comgr |
|
|
|
|
, rocm-opencl-runtime |
|
|
|
|
, rocm-runtime |
|
|
|
|
, rocm-thunk |
|
|
|
|
, libelf |
|
|
|
|
, libglvnd |
|
|
|
|
, libX11 |
|
|
|
|
, numactl |
|
|
|
|
}: |
|
|
|
|
|
|
|
|
|
stdenv.mkDerivation rec { |
|
|
|
|
pname = "rocclr"; |
|
|
|
|
version = "4.3.1"; |
|
|
|
|
version = "4.5.2"; |
|
|
|
|
|
|
|
|
|
src = fetchFromGitHub { |
|
|
|
|
owner = "ROCm-Developer-Tools"; |
|
|
|
|
repo = "ROCclr"; |
|
|
|
|
rev = "rocm-${version}"; |
|
|
|
|
hash = "sha256-3lk7Zucoam+11gFBzg/TWQI1L8uAlxTrPz/mDwTwod4="; |
|
|
|
|
hash = "sha256-fsQANBND/oDeC/+wmCH/aLlDTxPIi7Z/oN1HnNHHnm0="; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
nativeBuildInputs = [ cmake rocm-cmake ]; |
|
|
|
|
|
|
|
|
|
buildInputs = [ clang rocm-comgr rocm-runtime rocm-thunk ]; |
|
|
|
|
|
|
|
|
|
propagatedBuildInputs = [ libelf libglvnd libX11 numactl ]; |
|
|
|
|
|
|
|
|
|
prePatch = '' |
|
|
|
|
substituteInPlace CMakeLists.txt \ |
|
|
|
|
--replace 'set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ''${CMAKE_CURRENT_BINARY_DIR}/lib)' \ |
|
|
|
|
'set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ''${CMAKE_INSTALL_LIBDIR})' |
|
|
|
|
substituteInPlace device/comgrctx.cpp \ |
|
|
|
|
--replace "libamd_comgr.so" "${rocm-comgr}/lib/libamd_comgr.so" |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
cmakeFlags = [ |
|
|
|
|
"-DOPENCL_DIR=${rocm-opencl-runtime.src}" |
|
|
|
|
]; |
|
|
|
|
buildPhase = ""; |
|
|
|
|
|
|
|
|
|
installPhase = '' |
|
|
|
|
runHook preInstall |
|
|
|
|
|
|
|
|
|
preFixup = '' |
|
|
|
|
# Work around broken cmake files |
|
|
|
|
ln -s $out/include/compiler/lib/include/* $out/include |
|
|
|
|
ln -s $out/include/elf/elfio $out/include/elfio |
|
|
|
|
mkdir -p $out |
|
|
|
|
cp -r * $out/ |
|
|
|
|
|
|
|
|
|
substituteInPlace $out/lib/cmake/rocclr/ROCclrConfig.cmake \ |
|
|
|
|
--replace "/build/source/build" "$out" |
|
|
|
|
runHook postInstall |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
passthru.updateScript = writeScript "update.sh" '' |
|
|
|
@ -60,7 +39,7 @@ stdenv.mkDerivation rec { |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
meta = with lib; { |
|
|
|
|
description = "Radeon Open Compute common language runtime"; |
|
|
|
|
description = "Source package of the Radeon Open Compute common language runtime"; |
|
|
|
|
homepage = "https://github.com/ROCm-Developer-Tools/ROCclr"; |
|
|
|
|
license = licenses.mit; |
|
|
|
|
maintainers = with maintainers; [ lovesegfault ]; |
|
|
|
|