9bb3fccb5b
continuation of #109595 pkgconfig was aliased in 2018, however, it remained in all-packages.nix due to its wide usage. This cleans up the remaining references to pkgs.pkgsconfig and moves the entry to aliases.nix. python3Packages.pkgconfig remained unchanged because it's the canonical name of the upstream package on pypi.
90 lines
2.9 KiB
Nix
90 lines
2.9 KiB
Nix
{ lib, stdenv, fetchFromGitHub, pkg-config, libtool
|
|
, bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg, djvulibre
|
|
, lcms2, openexr, libpng, librsvg, libtiff, libxml2, openjpeg, libwebp, libheif
|
|
, ApplicationServices
|
|
}:
|
|
|
|
let
|
|
arch =
|
|
if stdenv.hostPlatform.system == "i686-linux" then "i686"
|
|
else if stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin" then "x86-64"
|
|
else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l"
|
|
else if stdenv.hostPlatform.system == "aarch64-linux" then "aarch64"
|
|
else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le"
|
|
else throw "ImageMagick is not supported on this platform.";
|
|
|
|
cfg = {
|
|
version = "7.0.10-46";
|
|
sha256 = "019l1qv8ds8hvyjwi1g21293a7v28bxf8ycnvr9828kpdhf4jxaa";
|
|
patches = [];
|
|
};
|
|
in
|
|
|
|
stdenv.mkDerivation {
|
|
pname = "imagemagick";
|
|
inherit (cfg) version;
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "ImageMagick";
|
|
repo = "ImageMagick";
|
|
rev = cfg.version;
|
|
inherit (cfg) sha256;
|
|
};
|
|
|
|
patches = cfg.patches;
|
|
|
|
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
|
|
outputMan = "out"; # it's tiny
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
configureFlags =
|
|
[ "--with-frozenpaths" ]
|
|
++ [ "--with-gcc-arch=${arch}" ]
|
|
++ lib.optional (librsvg != null) "--with-rsvg"
|
|
++ lib.optionals (ghostscript != null)
|
|
[ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts"
|
|
"--with-gslib"
|
|
]
|
|
++ lib.optionals stdenv.hostPlatform.isMinGW
|
|
[ "--enable-static" "--disable-shared" ] # due to libxml2 being without DLLs ATM
|
|
;
|
|
|
|
nativeBuildInputs = [ pkg-config libtool ];
|
|
|
|
buildInputs =
|
|
[ zlib fontconfig freetype ghostscript
|
|
libpng libtiff libxml2 libheif djvulibre
|
|
]
|
|
++ lib.optionals (!stdenv.hostPlatform.isMinGW)
|
|
[ openexr librsvg openjpeg ]
|
|
++ lib.optional stdenv.isDarwin ApplicationServices;
|
|
|
|
propagatedBuildInputs =
|
|
[ bzip2 freetype libjpeg lcms2 ]
|
|
++ lib.optionals (!stdenv.hostPlatform.isMinGW)
|
|
[ libX11 libXext libXt libwebp ]
|
|
;
|
|
|
|
postInstall = ''
|
|
(cd "$dev/include" && ln -s ImageMagick* ImageMagick)
|
|
moveToOutput "bin/*-config" "$dev"
|
|
moveToOutput "lib/ImageMagick-*/config-Q16HDRI" "$dev" # includes configure params
|
|
for file in "$dev"/bin/*-config; do
|
|
substituteInPlace "$file" --replace pkg-config \
|
|
"PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config'"
|
|
done
|
|
'' + lib.optionalString (ghostscript != null) ''
|
|
for la in $out/lib/*.la; do
|
|
sed 's|-lgs|-L${lib.getLib ghostscript}/lib -lgs|' -i $la
|
|
done
|
|
'';
|
|
|
|
meta = with lib; {
|
|
homepage = "http://www.imagemagick.org/";
|
|
description = "A software suite to create, edit, compose, or convert bitmap images";
|
|
platforms = platforms.linux ++ platforms.darwin;
|
|
license = licenses.asl20;
|
|
};
|
|
}
|