summary refs log tree commit diff
path: root/pkgs/development/libraries/poppler/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/poppler/default.nix')
-rw-r--r--pkgs/development/libraries/poppler/default.nix45
1 files changed, 32 insertions, 13 deletions
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index 9a3d24fc0b28..5fcb7d386faf 100644
--- a/pkgs/development/libraries/poppler/default.nix
+++ b/pkgs/development/libraries/poppler/default.nix
@@ -1,22 +1,24 @@
-{ stdenv, lib, fetchurl, cmake, ninja, pkgconfig, libiconv, libintlOrEmpty
+{ stdenv, lib, fetchurl, fetchpatch, pkgconfig, libiconv, libintlOrEmpty
 , zlib, curl, cairo, freetype, fontconfig, lcms, libjpeg, openjpeg
 , withData ? true, poppler_data
+, qt4Support ? false, qt4 ? null
 , qt5Support ? false, qtbase ? null
 , introspectionSupport ? false, gobjectIntrospection ? null
 , utils ? false
 , minimal ? false, suffix ? "glib"
+, hostPlatform
 }:
 
 let # beware: updates often break cups-filters build
-  version = "0.62.0";
-  mkFlag = optset: flag: "-DENABLE_${flag}=${if optset then "on" else "off"}";
+  version = "0.56.0";
+  sha256 = "0wviayidfv2ix2ql0d4nl9r1ia6qi5kc1nybd9vjx27dk7gvm7c6";
 in
 stdenv.mkDerivation rec {
   name = "poppler-${suffix}-${version}";
 
   src = fetchurl {
     url = "${meta.homepage}/poppler-${version}.tar.xz";
-    sha256 = "1ii9ly1pngyvs0aiq2wxpya08hidpl54y7nsb8b1vxnnskgp76jv";
+    inherit sha256;
   };
 
   outputs = [ "out" "dev" ];
@@ -27,19 +29,36 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = with lib;
     [ zlib freetype fontconfig libjpeg openjpeg ]
     ++ optionals (!minimal) [ cairo lcms curl ]
+    ++ optional qt4Support qt4
     ++ optional qt5Support qtbase
     ++ optional introspectionSupport gobjectIntrospection;
 
-  nativeBuildInputs = [ cmake ninja pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
-  cmakeFlags = [
-    (mkFlag true "XPDF_HEADERS")
-    (mkFlag (!minimal) "GLIB")
-    (mkFlag (!minimal) "CPP")
-    (mkFlag (!minimal) "LIBCURL")
-    (mkFlag utils "UTILS")
-    (mkFlag qt5Support "QT5")
-  ];
+  NIX_CFLAGS_COMPILE = [ "-DQT_NO_DEBUG" ];
+
+  CXXFLAGS = lib.optional qt5Support "-std=c++11";
+
+  configureFlags = with lib;
+    [
+      "--enable-xpdf-headers"
+      "--enable-libcurl"
+      "--enable-zlib"
+      "--enable-build-type=release"
+    ]
+    ++ optionals minimal [
+      "--disable-poppler-glib" "--disable-poppler-cpp"
+      "--disable-libcurl"
+    ]
+    ++ optional (!utils) "--disable-utils"
+    ++ optional introspectionSupport "--enable-introspection";
+
+  enableParallelBuilding = true;
+
+  crossAttrs.postPatch =
+    # there are tests using `strXXX_s` functions that are missing apparently
+    stdenv.lib.optionalString (hostPlatform.libc or null == "msvcrt")
+      "sed '/^SUBDIRS =/s/ test / /' -i Makefile.in";
 
   meta = with lib; {
     homepage = https://poppler.freedesktop.org/;