···
12
+
inherit (lib) optionals concatStringsSep;
13
+
inherit (rust.envVars) setEnv;
15
+
rustPlatform.buildRustPackage (finalAttrs: {
16
+
__structuredAttrs = true;
18
+
pname = "hdr10plus";
26
+
inherit (hdr10plus_tool)
33
+
nativeBuildInputs = [ cargo-c ];
34
+
buildInputs = [ fontconfig ];
37
+
"--package=hdr10plus"
39
+
"--prefix=${placeholder "out"}"
40
+
"--includedir=${placeholder "dev"}/include"
41
+
"--pkgconfigdir=${placeholder "dev"}/lib/pkgconfig"
42
+
"--target=${stdenv.hostPlatform.rust.rustcTarget}"
45
+
# mirror Cargo flags
47
+
optionals (finalAttrs.cargoBuildType != "debug") [
48
+
"--profile=${finalAttrs.cargoBuildType}"
50
+
++ optionals (finalAttrs.cargoBuildNoDefaultFeatures) [
51
+
"--no-default-features"
53
+
++ optionals (finalAttrs.cargoBuildFeatures != [ ]) [
54
+
"--features=${concatStringsSep "," finalAttrs.cargoBuildFeatures}"
58
+
optionals (finalAttrs.cargoCheckType != "debug") [
59
+
"--profile=${finalAttrs.cargoCheckType}"
61
+
++ optionals (finalAttrs.cargoCheckNoDefaultFeatures) [
62
+
"--no-default-features"
64
+
++ optionals (finalAttrs.cargoCheckFeatures != [ ]) [
65
+
"--features=${concatStringsSep "," finalAttrs.cargoCheckFeatures}"
69
+
# let stdenv handle stripping
70
+
export "CARGO_PROFILE_''${cargoBuildType@U}_STRIP"=false
72
+
prependToVar cargoCFlags -j "$NIX_BUILD_CORES"
78
+
${setEnv} cargo cbuild "''${cargoCFlags[@]}" "''${cargoCBuildFlags[@]}"
86
+
${setEnv} cargo ctest "''${cargoCFlags[@]}" "''${cargoCTestFlags[@]}"
94
+
${setEnv} cargo cinstall "''${cargoCFlags[@]}" "''${cargoCBuildFlags[@]}"
100
+
inherit hdr10plus_tool;
104
+
description = "Library to work with HDR10+ in HEVC files";
105
+
homepage = "https://github.com/quietvoid/hdr10plus_tool";
106
+
changelog = "https://github.com/quietvoid/hdr10plus_tool/releases/tag/${hdr10plus_tool.version}";
107
+
license = lib.licenses.mit;
108
+
maintainers = with lib.maintainers; [ mvs ];
109
+
pkgConfigModules = [ "hdr10plus-rs" ];