diff options
Diffstat (limited to 'pkgs/by-name/ra/rav1e/package.nix')
-rw-r--r-- | pkgs/by-name/ra/rav1e/package.nix | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/pkgs/by-name/ra/rav1e/package.nix b/pkgs/by-name/ra/rav1e/package.nix new file mode 100644 index 0000000000000..b90dd2d56a617 --- /dev/null +++ b/pkgs/by-name/ra/rav1e/package.nix @@ -0,0 +1,78 @@ +{ + lib, + rust, + stdenv, + rustPlatform, + fetchCrate, + pkg-config, + cargo-c, + darwin, + libgit2, + libiconv, + nasm, + testers, + zlib, + rav1e, +}: + +rustPlatform.buildRustPackage rec { + pname = "rav1e"; + version = "0.7.1"; + + src = fetchCrate { + inherit pname version; + hash = "sha256-Db7qb7HBAy6lniIiN07iEzURmbfNtuhmgJRv7OUagUM="; + }; + + cargoHash = "sha256-VyQ6n2kIJ7OjK6Xlf0T0GNsBvgESRETzKZDZzAn8ZuY="; + + depsBuildBuild = [ pkg-config ]; + + nativeBuildInputs = [ + cargo-c + libgit2 + nasm + ]; + + buildInputs = + [ zlib ] + ++ lib.optionals stdenv.isDarwin [ + libiconv + darwin.apple_sdk.frameworks.Security + ]; + + # Darwin uses `llvm-strip`, which results in link errors when using `-x` to strip the asm library + # and linking it with cctools ld64. + postPatch = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) '' + substituteInPlace build.rs --replace-fail '.arg("-x")' '.arg("-S")' + ''; + + checkType = "debug"; + + postBuild = '' + ${rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} + ''; + + postInstall = '' + ${rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} + ''; + + passthru = { + tests.version = testers.testVersion { package = rav1e; }; + }; + + meta = { + description = "Fastest and safest AV1 encoder"; + longDescription = '' + rav1e is an AV1 video encoder. It is designed to eventually cover all use + cases, though in its current form it is most suitable for cases where + libaom (the reference encoder) is too slow. + Features: https://github.com/xiph/rav1e#features + ''; + homepage = "https://github.com/xiph/rav1e"; + changelog = "https://github.com/xiph/rav1e/releases/tag/v${version}"; + license = lib.licenses.bsd2; + maintainers = with lib.maintainers; [ getchoo ]; + mainProgram = "rav1e"; + }; +} |