diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libavif')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libavif/default.nix | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libavif/default.nix b/nixpkgs/pkgs/development/libraries/libavif/default.nix index dca45186d4ce..eb8a8b1e3b54 100644 --- a/nixpkgs/pkgs/development/libraries/libavif/default.nix +++ b/nixpkgs/pkgs/development/libraries/libavif/default.nix @@ -8,8 +8,15 @@ , libjpeg , dav1d , libyuv +, gdk-pixbuf +, makeWrapper }: +let + gdkPixbufModuleDir = "${placeholder "out"}/${gdk-pixbuf.moduleDir}"; + gdkPixbufModuleFile = "${placeholder "out"}/${gdk-pixbuf.binaryDir}/avif-loaders.cache"; +in + stdenv.mkDerivation rec { pname = "libavif"; version = "0.11.1"; @@ -29,14 +36,18 @@ stdenv.mkDerivation rec { "-DAVIF_CODEC_DAV1D=ON" # best decoder (fast) "-DAVIF_CODEC_AOM_DECODE=OFF" "-DAVIF_BUILD_APPS=ON" + "-DAVIF_BUILD_GDK_PIXBUF=ON" ]; nativeBuildInputs = [ cmake pkg-config + gdk-pixbuf + makeWrapper ]; buildInputs = [ + gdk-pixbuf libaom zlib libpng @@ -45,6 +56,23 @@ stdenv.mkDerivation rec { libyuv ]; + postPatch = '' + substituteInPlace contrib/gdk-pixbuf/avif.thumbnailer.in \ + --replace '@CMAKE_INSTALL_FULL_BINDIR@/gdk-pixbuf-thumbnailer' "$out/libexec/gdk-pixbuf-thumbnailer-avif" + ''; + + env.PKG_CONFIG_GDK_PIXBUF_2_0_GDK_PIXBUF_MODULEDIR = gdkPixbufModuleDir; + + postInstall = '' + GDK_PIXBUF_MODULEDIR=${gdkPixbufModuleDir} \ + GDK_PIXBUF_MODULE_FILE=${gdkPixbufModuleFile} \ + gdk-pixbuf-query-loaders --update-cache + + mkdir -p "$out/bin" + makeWrapper ${gdk-pixbuf}/bin/gdk-pixbuf-thumbnailer "$out/libexec/gdk-pixbuf-thumbnailer-avif" \ + --set GDK_PIXBUF_MODULE_FILE ${gdkPixbufModuleFile} + ''; + meta = with lib; { description = "C implementation of the AV1 Image File Format"; longDescription = '' |