diff --git a/cd.nix b/cd.nix index a1ffefa..679d1e6 100644 --- a/cd.nix +++ b/cd.nix @@ -1,16 +1,20 @@ -{ stdenv +{ builtins +, stdenv , fetchurl , lsb-release , pkg-config , gtk3 , im +, libGL , libGLU , lua , ftgl-tecgraf , lib }: -stdenv.mkDerivation rec { +let + makePc = import ./make-pc.nix { inherit lib builtins; }; +in stdenv.mkDerivation rec { pname = "cd"; version = "5.14"; @@ -26,6 +30,7 @@ stdenv.mkDerivation rec { buildInputs = [ gtk3 + libGL libGLU lua ftgl-tecgraf @@ -55,19 +60,10 @@ stdenv.mkDerivation rec { -Wno-incompatible-pointer-types ''; - pc = '' -prefix=${placeholder "out"} -exec_prefix=${placeholder "out"} -libdir=${placeholder "out"}/lib -includedir=${placeholder "out"}/include - -Name: CD -Description: A vector graphics toolkit with device independent output -Version: ${version} -Libs: -L${placeholder "out"}/lib -lcd -lcdcontextplus -lcdgl -lcdim -Cflags: -I${placeholder "out"}/include -Requires: im gtk+-3.0 glu -''; + 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 @@ -86,9 +82,10 @@ Requires: im gtk+-3.0 glu 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 - cat > $out/lib/pkgconfig/cd.pc <' src/libjasper2/base/jas_stream.c ''; @@ -40,19 +42,11 @@ stdenv.mkDerivation rec { "USE_LUA_VERSION=52" ]; - pc = '' -prefix=${placeholder "out"} -exec_prefix=${placeholder "out"} -libdir=${placeholder "out"}/lib -includedir=${placeholder "out"}/include - -Name: IM -Description: A toolkit for image representation, storage, capture and processing -Version: ${version} -Libs: -L${placeholder "out"} -lim -lim_jp2 -lim_process -lim_process_omp -lim_fftw3 -Cflags: -I${placeholder "out"}/include -Requires: fftw3 libpng zlib -''; + imPc = builtins.toFile "im.pc" (makePc "im" version "libpng zlib"); + imJp2Pc = builtins.toFile "im_jp2.pc" (makePc "im_jp2" version "im"); + imProcessPc = builtins.toFile "im_process.pc" (makePc "im_process" version "im"); + imProcessOmpPc = builtins.toFile "im_process_omp.pc" (makePc "im_process_omp" version "im"); + imFftw3Pc = builtins.toFile "im_fftw3.pc" (makePc "im_fftw3" version "im_process fftw3"); installPhase = '' runHook preInstall @@ -72,10 +66,11 @@ Requires: fftw3 libpng zlib 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 - # Since IM doesn't supply it, provide pkg-config file. - cat > $out/lib/pkgconfig/im.pc < $out/lib/pkgconfig/iup.pc <