New Ticket     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #16056: Portfile.diff

File Portfile.diff, 16.4 KB (added by jens.traube@…, 4 years ago)

poppler update -- version 0.8.5

  • Portfile

    old new  
    33PortSystem 1.0 
    44 
    55name        poppler 
    6 version     0.8.3 
     6version     0.8.5 
    77maintainers nomaintainer 
    88categories  graphics 
    99platforms   darwin 
    1010homepage    http://${name}.freedesktop.org/ 
    1111 
    1212description     Poppler is a PDF rendering library based on the xpdf-3.0 code base. 
    13 long_description \ 
    14     ${description} 
    15  
     13long_description Poppler is a PDF rendering library based on the xpdf-3.0 code base. \ 
     14                 It consists of frontends (GLib, Qt3, Qt4), the poppler core, \ 
     15                 and rendering backends (Cairo, Splash, AbiWord). \ 
     16                 (Poppler Wiki: http://freedesktop.org/wiki/Software/poppler) 
    1617master_sites    ${homepage} 
    17 checksums       md5 d5631bdbde9dda89ff20796005ece4d4 \ 
    18                                 rmd160 f6553fdf468bd67ec8a7f943ba2cc7f141052302 \ 
    19                                 sha1 763d18d9f0e625a936b3a3fbbcd00b58ddd2f84f 
    20 depends_lib     port:cairo port:gtk2 port:poppler-data 
     18checksums       md5 00593d56340b4a635f4a34590c445800 \ 
     19                sha1 993c7ac0e12c20674908a44542f49b43bd417574 \ 
     20                rmd160 26634a62d77471ed668507bd0c287bfff291f881 
     21 
     22depends_build   port:pkgconfig 
     23 
     24depends_lib     port:freetype \ 
     25                port:fontconfig \ 
     26                port:cairo \ 
     27                port:gtk2 \ 
     28                port:pango \ 
     29                port:glib2 \ 
     30                port:gettext \ 
     31                port:expat \ 
     32                port:libiconv \ 
     33                port:libpixman \ 
     34                port:XFree86 \ 
     35                port:xrender \ 
     36                port:jpeg \ 
     37                port:tiff \ 
     38                port:libpng \ 
     39                port:libxml2 \ 
     40                port:zlib \ 
     41                port:poppler-data  
    2142 
    2243post-patch { 
    23     reinplace "s|-flat_namespace -undefined suppress||g" \ 
    24         ${worksrcpath}/configure 
    25     reinplace "s|\$includedir|${prefix}/include|g" \ 
    26         ${worksrcpath}/configure 
    2744    reinplace "s|tests||" \ 
    2845        ${worksrcpath}/qt4/Makefile.in 
     46 
     47    # replace "\$allow_undefined_flag" with "$allow_undefined_flag": 
     48    reinplace {s|\\$allow_undefined_flag|\$allow_undefined_flag|g} \ 
     49        ${worksrcpath}/configure 
    2950} 
    3051 
    3152configure.args \ 
     
    3859    configure.args-append --disable-gtk-test --without-x 
    3960} 
    4061 
    41 test.run                yes 
    42 test.dir                ${worksrcpath}/test 
    43 test.target             all 
     62variant qt4 { 
     63    configure.args-delete --disable-poppler-qt4 
     64    depends_lib-append    port:qt4-mac 
     65} 
     66 
     67pre-fetch { 
     68#   variant "quartz" is only necessary if your active port "cairo" 
     69#   has been build without "X Window" support (variant "no_x11") 
     70#   (in addition: port "pango" and port "gtk2" build without x11) 
     71 
     72    set A [variant_isset qt3Splash] 
     73    set B [variant_isset qt4Splash] 
     74    set C [variant_isset glibSplash] 
     75    set D [variant_isset glibCairo] 
     76    set E [variant_isset abiword] 
     77    set F [variant_isset quartz] 
     78    set popplerWithoutVariants [expr !$A && !$B && !$C && !$D && !$E && !$F] 
     79 
     80    if { $popplerWithoutVariants || ($D && !$F) } then { 
     81        if {![cairoWithX11]} then { 
     82            ui_error "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" 
     83            ui_error "The active port \"cairo\" has been build without x11 support." 
     84            ui_error "To build Poppler, select variant \"quartz\"" 
     85            ui_error "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" 
     86            return -code 1 
     87        } 
     88    } 
     89 
     90#   Variant "qt4" completes the maximal installation of poppler. 
     91#   This variant cannot be used together with any of the variants  
     92#   "qt3Splash", "qt4Splash", "glibSplash", "glibCairo", and "abiword". 
     93#   These variants are each for a minimal installation of poppler. 
     94 
     95    if { [variant_isset qt4] && ($A || $B || $C || $D || $E) } then { 
     96        ui_error "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" 
     97        ui_error "variant \"qt4\" cannot be used together with any of the variants" 
     98        ui_error "\"qt3Splash\", \"qt4Splash\", \"glibSplash\", \"glibCairo\", and \"abiword\"" 
     99        ui_error "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" 
     100        return -code 1 
     101    } 
     102} 
     103 
     104 
     105 
     106 
     107# The following variants are for minimal installation of Poppler  
     108# and minimal port dependencies. 
     109# 
     110# Poppler with variants +glibSplash +glibCairo +abiword (+qt3Splash) 
     111# is the same as Poppler without any variant. 
     112# If you do not have port "qt3-mac" installed, poppler gets automatically  
     113# configured without Qt3 bindings.  
     114 
     115variant qt3Splash description {Qt3 bindings to poppler & Splash output device} { 
     116} 
     117 
     118variant qt4Splash description {Qt4 bindings to poppler & Splash output device} { 
     119} 
     120 
     121#variant qt4Arthur description {Qt4 bindings to poppler & Arthur output device (Qt4 Paint System)} { 
     122#} 
     123 
     124# There is no source code for a variant Qt4Cairo (what about Qt3 ?) 
     125 
     126variant glibSplash description {GLib bindings to poppler & Splash output device} { 
     127} 
     128 
     129variant glibCairo description {GLib bindings to poppler & Cairo output device} { 
     130} 
     131 
     132variant abiword description {rendering backend/output device, and pdftoabw command line utility} { 
     133} 
     134 
     135 
     136# not testet: 
     137#platform darwin 6 { 
     138#    configure.env-append MACOSX_DEPLOYMENT_TARGET=10.2 
     139#} 
     140 
     141# not testet: 
     142#platform darwin 7 { 
     143#    configure.env-append MACOSX_DEPLOYMENT_TARGET=10.3 
     144#} 
     145 
     146platform darwin 8 { 
     147    configure.env-append MACOSX_DEPLOYMENT_TARGET=10.4 
     148} 
     149 
     150platform darwin 9 { 
     151    configure.env-append MACOSX_DEPLOYMENT_TARGET=10.5 
     152} 
     153 
     154 
     155pre-configure { 
     156    setConfigureOptionsForMinimalInstallationOfSelectedPopplerVariant 
     157    setListOfPortDependenciesOfSelectedPopplerVariant 
     158} 
     159 
     160 
     161# The following procedure has a lengthy body, but is simple in its purpose. 
     162# Each poppler variant has a set of configure options which are necessary  
     163# to get a minimal installation of poppler. If a combination of variants is  
     164# selected, what is the united set of configure options? 
     165# To get this set, the needed configure options of all selected poppler  
     166# variants are accumulated. The same is done for the NOT needed configure options. 
     167# The difference of the two accumulated sets is the set of configure options  
     168# needed for a minimal installation of poppler. 
     169 
     170proc setConfigureOptionsForMinimalInstallationOfSelectedPopplerVariant {} { 
     171    global prefix configure.args 
     172 
     173    set listOfConfigureOptions ${configure.args} 
     174    set listOfConfigureOptionsToAppend {} 
     175    set listOfConfigureOptionsToDelete {} 
     176 
     177    proc optionToAppend {option} { 
     178        # accumulate all configure options to be included  
     179        # of all selected poppler variants 
     180        upvar  listOfConfigureOptionsToAppend listOfConfigureOptionsToAppend 
     181        if {[lsearch -exact "$listOfConfigureOptionsToAppend" "$option"] == -1} then { 
     182            lappend listOfConfigureOptionsToAppend "$option" 
     183        } 
     184    } 
     185 
     186    proc optionToDelete {option} { 
     187        # accumulate all configure options to be excluded  
     188        # of all selected poppler variants 
     189        upvar  listOfConfigureOptionsToDelete listOfConfigureOptionsToDelete 
     190        if {[lsearch -exact "$listOfConfigureOptionsToDelete" "$option"] == -1} then { 
     191            lappend listOfConfigureOptionsToDelete "$option" 
     192        } 
     193    } 
     194 
     195    if {[variant_isset quartz]} then { 
     196        optionToAppend {--disable-gtk-test} 
     197        optionToAppend {--without-x} 
     198    } 
     199 
     200    if {   [variant_isset qt3Splash] 
     201        || [variant_isset qt4Splash] 
     202        || [variant_isset glibSplash] 
     203        || [variant_isset glibCairo] 
     204        || [variant_isset abiword]} then { 
     205        optionToAppend {--disable-cairo-output} 
     206        optionToAppend {--disable-splash-output} 
     207        optionToAppend {--disable-gdk} 
     208        optionToAppend {--disable-poppler-glib} 
     209        optionToAppend {--disable-poppler-qt} 
     210        optionToAppend {--disable-poppler-qt4} 
     211        optionToAppend {--disable-abiword-output} 
     212        optionToAppend {--enable-xpdf-headers} 
     213        optionToAppend {--enable-zlib} 
     214        optionToAppend "--mandir=${prefix}/share/man" 
     215    } 
     216 
     217    if {[variant_isset glibSplash]} then { 
     218        optionToAppend {--disable-poppler-qt} 
     219        optionToAppend {--disable-poppler-qt4} 
     220        optionToDelete {--disable-poppler-glib} 
     221        #------------------------------------ 
     222        optionToAppend {--disable-cairo-output} 
     223        optionToAppend {--disable-abiword-output} 
     224        optionToDelete {--disable-splash-output} 
     225 
     226        # GDK (GIMP Drawing Kit) is required by the GLib wrapper  
     227        # when splash output device is enabled. 
     228        optionToDelete {--disable-gdk} 
     229    } 
     230 
     231    if {[variant_isset glibCairo]} then { 
     232        optionToAppend {--disable-poppler-qt} 
     233        optionToAppend {--disable-poppler-qt4} 
     234        optionToDelete {--disable-poppler-glib} 
     235        #-------------------------------------- 
     236        optionToAppend {--disable-splash-output} 
     237        optionToAppend {--disable-gdk} 
     238        optionToAppend {--disable-abiword-output} 
     239        optionToDelete {--disable-cairo-output} 
     240    } 
     241 
     242    if {[variant_isset qt3Splash]} then { 
     243        optionToAppend {--disable-poppler-glib} 
     244        optionToAppend {--disable-gdk} 
     245        optionToAppend {--disable-poppler-qt4} 
     246        optionToDelete {--disable-poppler-qt} 
     247        #-------------------------------------- 
     248        optionToAppend {--disable-cairo-output} 
     249        optionToAppend {--disable-abiword-output} 
     250        optionToDelete {--disable-splash-output} 
     251    } 
     252 
     253    if {[variant_isset qt4Splash]} then { 
     254        optionToAppend {--disable-poppler-glib} 
     255        optionToAppend {--disable-gdk} 
     256        optionToAppend {--disable-poppler-qt} 
     257        optionToDelete {--disable-poppler-qt4} 
     258        #---------------------------------------- 
     259        optionToAppend {--disable-cairo-output} 
     260        optionToAppend {--disable-abiword-output} 
     261        optionToDelete {--disable-splash-output} 
     262    } 
     263 
     264    if {[variant_isset abiword]} then { 
     265        optionToAppend {--disable-splash-output} 
     266        optionToAppend {--disable-gdk} 
     267        optionToAppend {--disable-cairo-output} 
     268        optionToDelete {--disable-abiword-output} 
     269    } 
     270 
     271    ################################ 
     272    # balance of configure options # 
     273    ################################ 
     274 
     275    foreach option $listOfConfigureOptionsToAppend { 
     276        if {[lsearch -exact "$listOfConfigureOptions" "$option"] == -1} then { 
     277            lappend listOfConfigureOptions "$option" 
     278            configure.args-append "$option" 
     279        } 
     280    } 
     281 
     282    foreach option $listOfConfigureOptionsToDelete { 
     283        set i [lsearch -exact "$listOfConfigureOptions" "$option"] 
     284        if {$i > -1} then { 
     285            set listOfConfigureOptions [lreplace $listOfConfigureOptions $i $i] 
     286            configure.args-delete "$option" 
     287        } 
     288    } 
     289 
     290    ui_debug "+++++++++++++++++++++++++++++++++++" 
     291    ui_debug "configure options:" 
     292    ui_debug "${configure.args}" 
     293    ui_debug "+++++++++++++++++++++++++++++++++++" 
     294} 
     295 
     296 
     297proc cairoWithX11 {} { 
     298    global prefix 
     299    set ret 1 
     300    if {[file exists "${prefix}/include/cairo/cairo.h"]} then { 
     301        if {![file exists "${prefix}/include/cairo/cairo-xlib.h"]} then { 
     302            set ret 0 
     303        } 
     304    } else { 
     305        ui_error "++++++++++++++++++++++++++++++++++++++++++" 
     306        ui_error "port \"cairo\" is not installed or activated" 
     307        ui_error "++++++++++++++++++++++++++++++++++++++++++"  
     308        return -code 1 
     309    } 
     310 
     311    return $ret 
     312} 
     313 
     314 
     315# Poppler without any variant has a maximum of dependencies to other ports. 
     316# But variant "qt4Splash" is neither dependent on port "XFree86" nor on "gtk2". 
     317# To get the list of needed port dependencies, the following procedure  
     318# accumulates the needed port dependencies of all selected poppler variants. 
     319 
     320proc setListOfPortDependenciesOfSelectedPopplerVariant {} { 
     321    global prefix depends_lib 
     322 
     323    set listOfPortDependenciesToAppend {} 
     324 
     325    proc dependencyToAppend {entry} { 
     326        # accumulate all port dependencies to be included 
     327        # of all selected poppler variants 
     328        upvar  listOfPortDependenciesToAppend listOfPortDependenciesToAppend 
     329        if {[lsearch -exact "$listOfPortDependenciesToAppend" "$entry"] == -1} then { 
     330            lappend listOfPortDependenciesToAppend "$entry" 
     331        } 
     332    } 
     333 
     334    if {   [variant_isset abiword] 
     335        || [variant_isset qt4Splash] 
     336        || [variant_isset glibCairo] 
     337        || [variant_isset glibSplash]} then { 
     338 
     339        foreach item $depends_lib { 
     340            depends_lib-delete $item 
     341        } 
     342 
     343        dependencyToAppend {port:freetype} 
     344        dependencyToAppend {port:fontconfig} 
     345        dependencyToAppend {port:expat} 
     346        dependencyToAppend {port:libiconv} 
     347        dependencyToAppend {port:zlib} 
     348        dependencyToAppend {port:poppler-data} 
     349    } 
     350 
     351    if {[variant_isset abiword]} then { 
     352        dependencyToAppend {port:libxml2} 
     353    } 
     354 
     355    if {[variant_isset qt3Splash]} then { 
     356        dependencyToAppend {port:qt3-mac}     
     357        dependencyToAppend {port:jpeg} 
     358        dependencyToAppend {port:libpng}  
     359    }    
     360         
     361    if {[variant_isset qt4Splash]} then { 
     362        dependencyToAppend {port:qt4-mac} 
     363        dependencyToAppend {port:jpeg} 
     364        dependencyToAppend {port:libpng} 
     365    } 
     366 
     367    if {   [variant_isset glibCairo] 
     368        && [variant_isset quartz]} then { 
     369        dependencyToAppend {port:cairo} 
     370        dependencyToAppend {port:glib2} 
     371        dependencyToAppend {port:gettext} 
     372        dependencyToAppend {port:libpixman} 
     373        dependencyToAppend {port:jpeg} 
     374        dependencyToAppend {port:libpng} 
     375        # no dependency on XFree86 and xrender 
     376        # no dependency on gtk2, pango, and tiff 
     377    } 
     378 
     379    if {   [variant_isset glibSplash] 
     380        && [variant_isset quartz]} then { 
     381        dependencyToAppend {port:gtk2} 
     382        dependencyToAppend {port:glib2} 
     383        dependencyToAppend {port:gettext} 
     384        dependencyToAppend {port:libpixman} 
     385        dependencyToAppend {port:jpeg} 
     386        dependencyToAppend {port:libpng} 
     387 
     388        # GDK (GIMP Drawing Kit) is required by the GLib wrapper  
     389        # when splash output device is enabled. 
     390        # GDK (part of GTK) depends on Pango, Pango depends on Cairo. 
     391        dependencyToAppend {port:pango} 
     392        dependencyToAppend {port:cairo} 
     393 
     394        dependencyToAppend {port:tiff} 
     395        # no dependency on XFree86 and xrender   
     396    } 
     397 
     398    if {   [variant_isset glibCairo] 
     399        || [variant_isset glibSplash]} then { 
     400        dependencyToAppend {port:XFree86} 
     401        dependencyToAppend {port:xrender} 
     402        dependencyToAppend {port:gtk2} 
     403        dependencyToAppend {port:glib2} 
     404        dependencyToAppend {port:gettext} 
     405        dependencyToAppend {port:libpixman} 
     406        dependencyToAppend {port:jpeg} 
     407        dependencyToAppend {port:libpng} 
     408        dependencyToAppend {port:cairo} 
     409        dependencyToAppend {port:pango} 
     410        dependencyToAppend {port:tiff} 
     411    } 
     412 
     413    foreach entry $listOfPortDependenciesToAppend { 
     414        depends_lib-append $entry 
     415    } 
     416 
     417    ui_debug "+++++++++++++++++++++++++++++++++++" 
     418    ui_debug "port dependencies:" 
     419    ui_debug "$depends_lib" 
     420    ui_debug "+++++++++++++++++++++++++++++++++++" 
     421} 
     422 
     423# SOME NOTES TO "gtk test" (see variant "quartz"): 
     424# 
     425# After build of poppler the directory ${worksrcpath}/test  
     426# contains five shell scripts: 
     427# 
     428# (1) gtk-cairo-test 
     429# (2) gtk-splash-test 
     430# (3) pdf_inspector 
     431# (4) pdf-fullrewrite 
     432# (5) perf-test 
     433# 
     434# These shell scripts are wrapper scripts for the identically  
     435# named binaries contained in the directory "test/.libs". 
     436# 
     437# The first three scripts can only be launched on the command line  
     438# in a window of the X Window system. 
     439# 
     440# Usage (change the current directory to ${worksrcpath}/test):  
     441# 
     442#$ ./gtk-cairo-test PDF-FILES...  (opens each pdf file in a window) 
     443# 
     444#$ ./gtk-splash-test PDF-FILES... (opens each pdf file in a window) 
     445# 
     446#$ ./pdf_inspector  (no arguments, it opens a dialog window) 
     447# 
     448#$ ./pdf-fullrewrite INPUT-FILE OUTPUT-FILE 
     449# 
     450#$ ./perf-test [-preview|-slowpreview] [-loadonly] [-timings] [-text]  
     451#              [-resolution NxM] [-recursive] [-page N] [-out out.txt] PDF-FILES... 
     452#  
     453# ("perf-test" is a tool to stress-test poppler rendering and measure  
     454# rendering times for very simplistic performance measuring.) 
     455# 
     456# The wrapper scripts should never be moved out of the build directory,  
     457# otherwise they will not operate correctly. 
     458# Therefore it is not possible to install them in the directory ${prefix}/bin 
     459# 
     460# To use them, you must keep the work directory ( sudo port -k install poppler ) 
     461 
    44462