Files
nixpkgs/pkgs/development/libraries/libdevil/default.nix
T
Alyssa Ross d4a72a3935 lib.platforms.mesaPlatforms: remove
Mesa is a package like any other.  There's no reason for it to be a
special case with its platforms listed in lib, because if other
packages want to refer to mesa's platforms, they can access the
platforms from the package meta like they would for any other package.
2024-08-31 10:28:31 +02:00

73 lines
1.6 KiB
Nix

{ lib
, stdenv
, fetchurl
, cmake
, libjpeg
, libpng
, libmng
, lcms1
, libtiff
, openexr
, libGL
, libX11
, pkg-config
, OpenGL
, runtimeShell
, withXorg ? true
, testers
, mesa
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libdevil";
version = "1.8.0";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://sourceforge/openil/DevIL-${finalAttrs.version}.tar.gz";
hash = "sha256-AHWXPufdifBQeHPiWArHgzZFLSnTSgcTSyCPROL+twk=";
};
sourceRoot = "DevIL/DevIL";
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ libjpeg libpng libmng lcms1 libtiff openexr ]
++ lib.optionals withXorg [ libX11 libGL ]
++ lib.optionals stdenv.isDarwin [ OpenGL ];
configureFlags = [ "--enable-ILU" "--enable-ILUT" ];
CXXFLAGS = lib.optionalString stdenv.cc.isClang "-Wno-register";
preConfigure = ''
sed -i 's,malloc.h,stdlib.h,g' src-ILU/ilur/ilur.c
'';
patches = [
./0001-il_endian.h-Fix-endian-handling.patch
];
enableParallelBuilding = true;
postPatch = ''
for a in test/Makefile.am test/format_test/format_checks.sh.in ; do
substituteInPlace $a \
--replace /bin/bash ${runtimeShell}
done
'';
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
meta = with lib; {
homepage = "https://openil.sourceforge.net/";
description = "Image library which can can load, save, convert, manipulate, filter and display a wide variety of image formats";
mainProgram = "ilur";
license = licenses.lgpl2;
pkgConfigModules = [ "IL" ];
inherit (mesa.meta) platforms;
maintainers = [ ];
};
})