core/pkgs/by-name/im/imlib2/default.nix

92 lines
2.7 KiB
Nix
Raw Normal View History

2024-05-02 00:46:19 +00:00
{ lib, stdenv, fetchurl
# Image file formats
2024-05-13 21:24:10 +00:00
, libjpeg, libtiff, giflib, libpng, libwebp, libjxl, libspectre
2024-05-02 00:46:19 +00:00
# imlib2 can load images from ID3 tags.
2024-05-13 21:24:10 +00:00
, libid3tag, librsvg, libheif, freetype, bzip2, pkg-config, x11Support ? true
, webpSupport ? true, svgSupport ? false, heifSupport ? false
, jxlSupport ? false, psSupport ? false
2024-05-02 00:46:19 +00:00
2024-05-13 21:24:10 +00:00
# for passthru.tests
# , libcaca
# , diffoscopeMinimal
# , feh
# , icewm
# , openbox
# , fluxbox
# , enlightenment
2024-05-02 00:46:19 +00:00
, xorg
# , testers
# , gitUpdater
}:
2024-05-13 21:24:10 +00:00
let inherit (lib) optional optionals;
in stdenv.mkDerivation (finalAttrs: {
2024-05-02 00:46:19 +00:00
pname = "imlib2";
version = "1.12.2";
src = fetchurl {
2024-05-13 21:24:10 +00:00
url =
"mirror://sourceforge/enlightenment/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
2024-05-02 00:46:19 +00:00
hash = "sha256-zEmTGiBWCWioZIycoHkIWXYIXqltWaAbHhfLVa8P/kI=";
};
2024-05-13 21:24:10 +00:00
buildInputs = [ libjpeg libtiff giflib libpng bzip2 freetype libid3tag ]
++ optionals x11Support [ xorg.libXft xorg.libXext ]
++ optional heifSupport libheif ++ optional svgSupport librsvg
++ optional webpSupport libwebp ++ optional jxlSupport libjxl
2024-05-02 00:46:19 +00:00
++ optional psSupport libspectre;
nativeBuildInputs = [ pkg-config ];
enableParallelBuilding = true;
# Do not build amd64 assembly code on Darwin, because it fails to compile
# with unknow directive errors
configureFlags = optional stdenv.isDarwin "--enable-amd64=no"
++ optional (!svgSupport) "--without-svg"
++ optional (!heifSupport) "--without-heif"
++ optional (!x11Support) "--without-x";
outputs = [ "bin" "out" "dev" ];
# passthru = {
# tests = {
# inherit
# libcaca
# diffoscopeMinimal
# feh
# icewm
# openbox
# fluxbox
# enlightenment;
# pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
# };
# updateScript = gitUpdater {
# # No nicer place to find latest release.
# url = "https://git.enlightenment.org/old/legacy-imlib2.git";
# rev-prefix = "v";
# };
# };
meta = with lib; {
description = "Image manipulation library";
longDescription = ''
This is the Imlib 2 library - a library that does image file loading and
saving as well as rendering, manipulation, arbitrary polygon support, etc.
It does ALL of these operations FAST. Imlib2 also tries to be highly
intelligent about doing them, so writing naive programs can be done
easily, without sacrificing speed.
'';
homepage = "https://docs.enlightenment.org/api/imlib2/html";
2024-05-13 21:24:10 +00:00
changelog =
"https://git.enlightenment.org/old/legacy-imlib2/raw/tag/v${finalAttrs.version}/ChangeLog";
2024-05-02 00:46:19 +00:00
license = licenses.imlib2;
pkgConfigModules = [ "imlib2" ];
platforms = platforms.unix;
maintainers = with maintainers; [ ];
};
})