From c0d5cd0ff90cac2e04f6b436991baa4c4471150f Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Thu, 2 Apr 2015 09:50:37 -0500 Subject: poppler: fix build of Qt 4 and Qt 5 wrappers The autoconf build system for poppler does not support building the wrappers separately, so this slightly enlarges the size of closures. To compensate, the command-line utilities have been separated into their own package. --- pkgs/development/libraries/poppler/default.nix | 87 +++++++++----------------- 1 file changed, 29 insertions(+), 58 deletions(-) (limited to 'pkgs/development/libraries/poppler/default.nix') diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix index bec779e221a3..c79cdfd44665 100644 --- a/pkgs/development/libraries/poppler/default.nix +++ b/pkgs/development/libraries/poppler/default.nix @@ -1,79 +1,50 @@ { stdenv, fetchurl, fetchpatch, pkgconfig, libiconv, libintlOrEmpty , zlib, curl, cairo, freetype, fontconfig, lcms, libjpeg, openjpeg -, qt4Support ? false, qt4 ? null, qt5 +, qt4Support ? false, qt4 ? null, qt5Support ? false, qt5 ? null +, utils ? false, suffix ? "glib" }: let version = "0.32.0"; # even major numbers are stable sha256 = "162vfbvbz0frvqyk00ldsbl49h4bj8i8wn0ngfl30xg1lldy6qs9"; +in +stdenv.mkDerivation rec { + name = "poppler-${suffix}-${version}"; - poppler_drv = nameSuff: merge: stdenv.mkDerivation (stdenv.lib.mergeAttrsByFuncDefaultsClean [ - rec { - name = "poppler-${nameSuff}-${version}"; + src = fetchurl { + url = "${meta.homepage}/poppler-${version}.tar.xz"; + inherit sha256; + }; - src = fetchurl { - url = "${meta.homepage}/poppler-${version}.tar.xz"; - inherit sha256; - }; + patches = [ ./datadir_env.patch ]; - propagatedBuildInputs = [ zlib cairo freetype fontconfig libjpeg lcms curl openjpeg ]; + propagatedBuildInputs = with stdenv.lib; + [ zlib cairo freetype fontconfig libjpeg lcms curl openjpeg ] + ++ optional qt4Support qt4 + ++ optional qt5Support qt5.base; - nativeBuildInputs = [ pkgconfig libiconv ] ++ libintlOrEmpty; + nativeBuildInputs = [ pkgconfig libiconv ] ++ libintlOrEmpty; - configureFlags = [ + configureFlags = + [ "--enable-xpdf-headers" "--enable-libcurl" "--enable-zlib" - ]; - - patches = [ ./datadir_env.patch ./poppler-glib.patch ]; - - # XXX: The Poppler/Qt4 test suite refers to non-existent PDF files - # such as `../../../test/unittestcases/UseNone.pdf'. - #doCheck = !qt4Support; - checkTarget = "test"; - - enableParallelBuilding = true; - - meta = { - homepage = http://poppler.freedesktop.org/; - description = "A PDF rendering library"; + ] + ++ stdenv.lib.optional (!utils) "--disable-utils"; - longDescription = '' - Poppler is a PDF rendering library based on the xpdf-3.0 code base. - ''; + enableParallelBuilding = true; - license = stdenv.lib.licenses.gpl2; - platforms = stdenv.lib.platforms.all; - }; - } merge ]); # poppler_drv + meta = { + homepage = http://poppler.freedesktop.org/; + description = "A PDF rendering library"; - /* We always use cairo in poppler, so we always depend on glib, - so we always build the glib wrapper (~350kB). - We also always build the cpp wrapper (<100kB). - ToDo: around half the size could be saved by splitting out headers and tools (1.5 + 0.5 MB). - */ - - poppler_glib = poppler_drv "glib" { }; - - poppler_qt4 = poppler_drv "qt4" { - #patches = [ qtcairo_patch ]; # text rendering artifacts in recent versions - propagatedBuildInputs = [ qt4 poppler_glib ]; - NIX_LDFLAGS = "-lpoppler"; - postConfigure = '' - mkdir -p "$out/lib/pkgconfig" - install -c -m 644 poppler-qt4.pc "$out/lib/pkgconfig" - cd qt4 + longDescription = '' + Poppler is a PDF rendering library based on the xpdf-3.0 code base. ''; - }; - poppler_qt5 = poppler_drv "qt5" { - propagatedBuildInputs = [ qt5.base poppler_glib ]; - postConfigure = '' - mkdir -p "$out/lib/pkgconfig" - install -c -m 644 poppler-qt5.pc "$out/lib/pkgconfig" - cd qt5 - ''; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.all; + maintainers = with stdenv.lib.maintainers; [ ttuegel ]; }; - -in { inherit poppler_glib poppler_qt4 poppler_qt5; } // poppler_glib +} -- cgit 1.4.1