Files
IUP_Nix/im.nix
T
2026-03-25 16:07:33 +01:00

114 lines
2.8 KiB
Nix

{ builtins
, lib
, stdenv
, fetchurl
, lsb-release
, fftw
, fftwFloat
, libpng
, lua
, zlib
}:
let
makePc = import ./make-pc.nix { inherit lib builtins; };
in stdenv.mkDerivation rec {
pname = "im";
version = "3.15";
src = fetchurl {
url = "mirror://sourceforge/imtoolkit/${version}/Docs%20and%20Sources/${pname}-${version}_Sources.tar.gz";
sha256 = "sha256-NsxCV/j1+BEouFS7O+KcXL3QkUdlKPMVr2ZtCTC5tX4=";
};
nativeBuildInputs = [
lsb-release
];
buildInputs = [
fftw
fftwFloat
libpng
lua
zlib
];
postPatch = ''
sed -i '1i#include <unistd.h>' src/libjasper2/base/jas_stream.c
'';
makeFlags = [
"NO_DEPEND=Yes"
"USE_LUA_VERSION=52"
];
imPc = builtins.toFile "im.pc" (makePc
"im"
"A toolkit for image representation, storage, capture and processing"
version
"libpng zlib"
);
imJp2Pc = builtins.toFile "im_jp2.pc" (makePc
"im_jp2"
"A toolkit for image representation, storage, capture and processing (JP2 support)"
version
"im"
);
imProcessPc = builtins.toFile "im_process.pc" (makePc
"im_process"
"A toolkit for image representation, storage, capture and processing (processing library)"
version
"im"
);
imProcessOmpPc = builtins.toFile "im_process_omp.pc" (makePc
"im_process_omp"
"A toolkit for image representation, storage, capture and processing (processing library)"
version
"im"
);
imFftw3Pc = builtins.toFile "im_fftw3.pc" (makePc
"im_fftw3"
"A toolkit for image representation, storage, capture and processing (Fourier transform operations)"
version
"im_process fftw3"
);
installPhase = ''
runHook preInstall
mkdir -p $out/{include,lib/pkgconfig,share/lua/5.2}
cp -v lib/Linux*/*.so $out/lib/
cp -v lib/Linux*/*.a $out/lib/ || true
cp -vr include/*.h $out/include/
cp -v lib/Linux*/Lua*/*.so $out/lib/
cp -v lib/Linux*/Lua*/*.a $out/lib/ || true
ln -fs $out/lib/libimlua52.so $out/share/lua/5.2/imlua.so
ln -fs $out/lib/libimlua_jp252.so $out/share/lua/5.2/imlua_jp2.so
ln -fs $out/lib/libimlua_process52.so $out/share/lua/5.2/imlua_process.so
ln -fs $out/lib/libimlua_process_omp52.so $out/share/lua/5.2/imlua_process_omp.so
ln -fs $out/lib/libimlua_fftw352.so $out/share/lua/5.2/imlua_fftw3.so
cp ${imPc} $out/lib/pkgconfig/im.pc
cp ${imJp2Pc} $out/lib/pkgconfig/im_jp2.pc
cp ${imProcessPc} $out/lib/pkgconfig/im_process.pc
cp ${imProcessOmpPc} $out/lib/pkgconfig/im_process_omp.pc
cp ${imFftw3Pc} $out/lib/pkgconfig/im_fftw3.pc
runHook postInstall
'';
meta = with lib; {
description = "A toolkit for image representation, storage, capture and processing";
license = licenses.mit;
maintainers = [ eko5z ];
platforms = with platforms; gnu ++ linux ++ darwin;
};
}