@ -1,17 +1,12 @@
{ stdenv , fetchurl , fetchgit , cairo , freetype , fontconfig , zlib
, libjpeg , curl , libpthreadstubs , xorg , openjpeg
, libxml2 , pkgconfig , cmake , lcms2
, glibSupport ? false , glib , gtk3Support ? false , gtk3 # gtk2 no longer accepted
, qt4Support ? false , qt4 ? null
} :
stdenv . mkDerivation rec {
name = " p o p p l e r - 0 . 2 2 . 3 " ;
src = fetchurl {
url = " ${ meta . homepage } ${ name } . t a r . g z " ;
sha256 = " 0 c a 4 j c i 8 x m b d z 4 f h a h d c c k 0 c q m s 6 a x 5 5 y g g i 2 i h 3 c l g r p q f 9 6 s l i " ;
} ;
let
version = " 0 . 2 2 . 3 " ;
sha256 = " 0 c a 4 j c i 8 x m b d z 4 f h a h d c c k 0 c q m s 6 a x 5 5 y g g i 2 i h 3 c l g r p q f 9 6 s l i " ;
qtcairo_patches =
let qtcairo = fetchgit { # the version for poppler-0.22
@ -23,42 +18,59 @@ stdenv.mkDerivation rec {
" ${ qtcairo } / 0 0 0 2 - S e t t i n g - d e f a u l t - Q t 4 - b a c k e n d - t o - C a i r o . p a t c h "
" ${ qtcairo } / 0 0 0 3 - F o r c i n g - s u b p i x e l - r e n d e r i n g - i n - C a i r o - b a c k e n d . p a t c h " ] ;
poppler_drv = nameSuff : merge : stdenv . mkDerivation ( stdenv . lib . mergeAttrsByFuncDefaultsClean [
rec {
name = " p o p p l e r - ${ nameSuff } - ${ version } " ;
src = fetchurl {
url = " ${ meta . homepage } / p o p p l e r - ${ version } . t a r . g z " ;
inherit sha256 ;
} ;
propagatedBuildInputs = with xorg ;
[ zlib cairo freetype fontconfig libjpeg lcms2 curl
libpthreadstubs libxml2
libXau libXdmcp libxcb libXrender libXext
openjpeg
] ;
nativeBuildInputs = [ pkgconfig cmake ] ;
propagatedBuildInputs = with xorg ;
[ zlib cairo freetype fontconfig libjpeg lcms2 curl
libpthreadstubs libxml2 stdenv . gcc . libc
libXau libXdmcp libxcb libXrender libXext
openjpeg
]
++ stdenv . lib . optional glibSupport glib
++ stdenv . lib . optional gtk3Support gtk3
++ stdenv . lib . optional qt4Support qt4 ;
cmakeFlags = " - D E N A B L E _ X P D F _ H E A D E R S = O N - D E N A B L E _ L I B C U R L = O N - D E N A B L E _ Z L I B = O N " ;
nativeBuildInputs = [ pkgconfig cmake ] ;
patches = [ ./datadir_env.patch ] ;
cmakeFlags = " - D E N A B L E _ X P D F _ H E A D E R S = O N - D E N A B L E _ L I B C U R L = O N - D E N A B L E _ Z L I B = O N " ;
# XXX: The Poppler/Qt4 test suite refers to non-existent PDF files
# such as `../../../test/unittestcases/UseNone.pdf'.
#doCheck = !qt4Support;
checkTarget = " t e s t " ;
patches = [ ./datadir_env.patch ] ++ stdenv . lib . optionals qt4Support qtcairo_patches ;
enableParallelBuilding = true ;
# XXX: The Poppler/Qt4 test suite refers to non-existent PDF files
# such as `../../../test/unittestcases/UseNone.pdf'.
#doCheck = !qt4Support;
checkTarget = " t e s t " ;
meta = {
homepage = http://poppler.freedesktop.org/ ;
description = " A P D F r e n d e r i n g l i b r a r y " ;
enableParallelBuilding = true ;
longDescription = ''
Poppler is a PDF rendering library based on the xpdf-3 .0 code base .
'' ;
meta = {
homepage = http://poppler.freedesktop.org/ ;
description = " P o p p l e r , a P D F r e n d e r i n g l i b r a r y " ;
license = " G P L v 2 " ;
} ;
} merge ] ) ; # poppler_drv
longDescription = ''
Poppler is a PDF rendering library based on the xpdf-3 .0 code base .
'' ;
in rec {
/* W e a l w a y s u s e c a i r o i n p o p p l e r , s o w e a l w a y s d e p e n d o n g l i b ,
so we always build the glib wrapper ( ~ 3 5 0 kB ) .
We also always build the cpp wrapper ( < 1 0 0 kB ) .
ToDo : around half the size could be saved by splitting out headers and tools ( 1 .5 + 0 .5 MB ) .
* /
platforms = if qt4Support
then qt4 . meta . platforms
else stdenv . lib . platforms . all ;
poppler_glib = poppler_drv " g l i b " { } ;
license = " G P L v 2 " ;
poppler_qt4 = poppler_drv " q t 4 " {
propagatedBuildInputs = [ qt4 poppler_glib ] ;
patches = qtcairo_patches ;
postConfigure = " c d q t 4 " ;
} ;
}