diff options
author | Alyssa Ross <hi@alyssa.is> | 2024-05-03 15:14:25 +0200 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2024-05-07 11:19:19 +0200 |
commit | d92b2b6a1bbd322dd65a8b6f51019610d350046e (patch) | |
tree | 7f7c21927b9cc05676501f297c51eb76b49e326c /nixpkgs/pkgs/development/libraries/libjxl/default.nix | |
parent | 93c9e56b40530cc627d921cfc255c05b495d4017 (diff) | |
parent | 49050352f602fe87d16ff7b2b6a05b79eb20dc6f (diff) | |
download | nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.gz nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.bz2 nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.lz nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.xz nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.zst nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.zip |
Merge remote-tracking branch 'nixpkgs/nixos-unstable-small'
Conflicts: nixpkgs/nixos/modules/services/mail/mailman.nix nixpkgs/nixos/modules/services/mail/public-inbox.nix nixpkgs/pkgs/build-support/go/module.nix
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libjxl/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libjxl/default.nix | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libjxl/default.nix b/nixpkgs/pkgs/development/libraries/libjxl/default.nix index 10dcc29785bd..c91ae27f6805 100644 --- a/nixpkgs/pkgs/development/libraries/libjxl/default.nix +++ b/nixpkgs/pkgs/development/libraries/libjxl/default.nix @@ -8,15 +8,23 @@ , libjpeg , libpng , libwebp +, gdk-pixbuf , openexr_3 , pkg-config +, makeWrapper , zlib , asciidoc , graphviz , doxygen , python3 +, lcms2 +, enablePlugins ? stdenv.buildPlatform.canExecute stdenv.hostPlatform }: +let + loadersPath = "${gdk-pixbuf.binaryDir}/jxl-loaders.cache"; +in + stdenv.mkDerivation rec { pname = "libjxl"; version = "0.9.1"; @@ -37,6 +45,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake pkg-config + gdk-pixbuf + makeWrapper asciidoc doxygen python3 @@ -63,12 +73,14 @@ stdenv.mkDerivation rec { # conclusively in its README or otherwise; they can best be determined # by checking the CMake output for "Could NOT find". buildInputs = [ + lcms2 giflib gperftools # provides `libtcmalloc` gtest libjpeg libpng libwebp + gdk-pixbuf openexr_3 zlib ]; @@ -95,18 +107,31 @@ stdenv.mkDerivation rec { # TODO: Update this package to enable this (overridably via an option): # Viewer tools for evaluation. # "-DJPEGXL_ENABLE_VIEWERS=ON" - - # TODO: Update this package to enable this (overridably via an option): + ] ++ lib.optionals enablePlugins [ # Enable plugins, such as: # * the `gdk-pixbuf` one, which allows applications like `eog` to load jpeg-xl files # * the `gimp` one, which allows GIMP to load jpeg-xl files - # "-DJPEGXL_ENABLE_PLUGINS=ON" + "-DJPEGXL_ENABLE_PLUGINS=ON" ] ++ lib.optionals stdenv.hostPlatform.isStatic [ "-DJPEGXL_STATIC=ON" ] ++ lib.optionals stdenv.hostPlatform.isAarch32 [ "-DJPEGXL_FORCE_NEON=ON" ]; + postPatch = '' + substituteInPlace plugins/gdk-pixbuf/jxl.thumbnailer \ + --replace '/usr/bin/gdk-pixbuf-thumbnailer' "$out/libexec/gdk-pixbuf-thumbnailer-jxl" + ''; + + postInstall = lib.optionalString enablePlugins '' + GDK_PIXBUF_MODULEDIR="$out/${gdk-pixbuf.moduleDir}" \ + GDK_PIXBUF_MODULE_FILE="$out/${loadersPath}" \ + gdk-pixbuf-query-loaders --update-cache + mkdir -p "$out/bin" + makeWrapper ${gdk-pixbuf}/bin/gdk-pixbuf-thumbnailer "$out/libexec/gdk-pixbuf-thumbnailer-jxl" \ + --set GDK_PIXBUF_MODULE_FILE "$out/${loadersPath}" + ''; + CXXFLAGS = lib.optionalString stdenv.hostPlatform.isAarch32 "-mfp16-format=ieee"; # FIXME x86_64-darwin: |