56 lines
1.7 KiB
Nix
56 lines
1.7 KiB
Nix
{
|
|
lib,
|
|
gcc12Stdenv,
|
|
fetchFromGitHub,
|
|
cmake,
|
|
cudaPackages_12_3,
|
|
vapoursynth,
|
|
cudaSupport ? true,
|
|
cpuSupport ? false,
|
|
}:
|
|
|
|
# gcc13 producdes weird artifacts
|
|
gcc12Stdenv.mkDerivation (finalAttrs: {
|
|
pname = "vapoursynth-bm3dcuda";
|
|
version = "2.14";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "WolframRhodium";
|
|
repo = "VapourSynth-BM3DCUDA";
|
|
rev = "refs/tags/R${finalAttrs.version}";
|
|
hash = "sha256-Vcg1RaV0lOMAK0LCAJBMMeeSC0HoKigHwebzH/AcH2g=";
|
|
};
|
|
|
|
nativeBuildInputs =
|
|
[ cmake ]
|
|
++ lib.optionals cudaSupport [
|
|
cudaPackages_12_3.cuda_nvcc
|
|
cudaPackages_12_3.cuda_nvrtc
|
|
];
|
|
|
|
buildInputs = lib.optionals cudaSupport [ cudaPackages_12_3.cuda_cudart ];
|
|
|
|
# Taken from https://github.com/WolframRhodium/VapourSynth-BM3DCUDA/blob/main/.github/workflows/linux.yml
|
|
preConfigure =
|
|
''
|
|
cmakeFlagsArray+=(${lib.escapeShellArg (lib.cmakeFeature "CMAKE_CXX_FLAGS" "-ffast-math${lib.optionalString cpuSupport " -march=x86-64-v3"}")})
|
|
''
|
|
+ lib.optionalString cudaSupport ''
|
|
cmakeFlagsArray+=(${lib.escapeShellArg (lib.cmakeFeature "CMAKE_CUDA_FLAGS" "--use_fast_math -Wno-deprecated-gpu-targets")})
|
|
'';
|
|
|
|
cmakeFlags = [
|
|
(lib.cmakeFeature "VAPOURSYNTH_INCLUDE_DIRECTORY" "${vapoursynth}/include/vapoursynth")
|
|
(lib.cmakeFeature "CMAKE_INSTALL_LIBDIR" "lib/vapoursynth")
|
|
(lib.cmakeBool "ENABLE_CUDA" cudaSupport)
|
|
(lib.cmakeBool "ENABLE_CPU" cpuSupport)
|
|
];
|
|
|
|
meta = {
|
|
description = "Plugin for VapourSynth: bm3dcuda bm3dcpu";
|
|
homepage = "https://github.com/WolframRhodium/VapourSynth-BM3DCUDA";
|
|
license = with lib.licenses; [ gpl2Plus ];
|
|
maintainers = with lib.maintainers; [ snaki ];
|
|
platforms = with lib.platforms; if cpuSupport then x86_64 else all;
|
|
};
|
|
})
|