Files
IUP_Nix/cd.nix
T
2026-03-25 15:13:38 +01:00

100 lines
2.3 KiB
Nix

{ builtins
, stdenv
, fetchurl
, lsb-release
, pkg-config
, gtk3
, im
, libGL
, libGLU
, lua
, ftgl-tecgraf
, lib
}:
let
makePc = import ./make-pc.nix { inherit lib builtins; };
in stdenv.mkDerivation rec {
pname = "cd";
version = "5.14";
src = fetchurl {
url = "mirror://sourceforge/canvasdraw/${version}/Docs%20and%20Sources/${pname}-${version}_Sources.tar.gz";
sha256 = "sha256-xE7cBBExyaakKTPIeaZE1r2CjWCyikuFWpzeYV/Fr08=";
};
nativeBuildInputs = [
lsb-release
pkg-config
];
buildInputs = [
gtk3
libGL
libGLU
lua
ftgl-tecgraf
];
propagatedBuildInputs = [
im
];
postPatch = ''
sed -i 's/\bcdpdf\b//g' src/Makefile
sed -i 's/\bcdluapdf5\b//g' src/Makefile
'';
makeFlags = [
"NO_DEPEND=Yes"
"USE_PKGCONFIG=Yes"
"USE_LUA_VERSION=52"
"USE_GTK3=Yes"
"GTK_DEFAULT=Yes"
"FTGL_LIB=${ftgl-tecgraf}/lib"
"FTGL_INC=${ftgl-tecgraf}/include"
];
NIX_CFLAGS_COMPILE = ''
-Wno-incompatible-pointer-types
'';
cdPc = builtins.toFile "cd.pc" (makePc "cd" version "gdk-3.0 pango");
cdContextPlusPc = builtins.toFile "cdcontextplus.pc" (makePc "cdcontextplus" version "pangocairo cairo");
cdGlPc = builtins.toFile "cdgl.pc" (makePc "cdcontextplus" version "gl");
cdImPc = builtins.toFile "cdim.pc" (makePc "cdim" version "im");
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/libcdlua52.so $out/share/lua/5.2/cdlua.so
ln -fs $out/lib/libcdluacontextplus52.so $out/share/lua/5.2/cdluacontextplus.so
ln -fs $out/lib/libcdluagl52.so $out/share/lua/5.2/cdluagl.so
ln -fs $out/lib/libcdluaim52.so $out/share/lua/5.2/cdluaim.so
cp -v ${cdPc} $out/lib/pkgconfig/cd.pc
cp -v ${cdContextPlusPc} $out/lib/pkgconfig/cdcontextplus.pc
cp -v ${cdGlPc} $out/lib/pkgconfig/cdgl.pc
cp -v ${cdImPc} $out/lib/pkgconfig/cdim.pc
runHook postInstall
'';
meta = with lib; {
description = "A vector graphics toolkit with device independent output";
license = with licenses; [ mit ];
maintainers = [ eko5z ];
platforms = with platforms; gnu ++ linux ++ darwin;
};
}