source: trunk/dports/graphics/graphviz/Portfile @ 109415

Last change on this file since 109415 was 109415, checked in by ryandesign@…, 7 years ago

revbump ports that link with libgd in their default configuration to rebuild with gd2 @2.1.0 (libgd.3.dylib) (#39550)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 15.2 KB
Line 
1# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
2# $Id: Portfile 109415 2013-08-15 06:58:50Z ryandesign@macports.org $
3
4PortSystem                      1.0
5PortGroup                       conflicts_build 1.0
6PortGroup                       xcodeversion 1.0
7
8# Please keep the graphviz and graphviz-devel ports as similar as possible.
9
10name                            graphviz
11set my_name                     graphviz
12version                         2.32.0
13set thisbranch                  [strsed ${name} "g/^${my_name}//"]
14set otherbranch                 [expr {${thisbranch} eq {} ? {-devel} : {}}]
15categories                      graphics
16maintainers                     ryandesign
17license                         EPL-1
18homepage                        http://www.graphviz.org/
19master_sites                    ${homepage}pub/graphviz/stable/SOURCES/
20platforms                       darwin
21use_parallel_build              yes
22dist_subdir                     ${my_name}
23distname                        ${my_name}-${version}
24
25description                     graph visualization software
26
27long_description                Graphviz is ${description}. Graph visualization \
28                                is a way of representing structural information \
29                                as diagrams of abstract graphs and networks. The \
30                                Graphviz layout programs dot, neato, fdp, sfdp, \
31                                twopi and circo take descriptions of graphs in a \
32                                simple text language, and produce output in a \
33                                variety of visual and text formats.
34
35checksums                       rmd160  b0a63b7466d88b1dc4cfccc19d632ca2c5440407 \
36                                sha256  d853b2313e08a1dd0cce20d9ff8051acfa9ec418b5ba2dc65c8f4ddb07a7a77a
37
38# graphviz needs Xcode 3.1+ to avoid the libGL error when building the smyrna variant
39# graphviz-gui needs Xcode 3.1.2+; see #18811
40minimum_xcodeversions           {9 3.1.2}
41
42if {${name} eq ${subport}} {
43revision                        1
44
45conflicts                       graphviz${otherbranch}
46
47depends_build                   port:pkgconfig
48
49depends_lib                     port:jpeg \
50                                port:libpng \
51                                port:webp \
52                                port:fontconfig \
53                                port:freetype \
54                                port:expat \
55                                port:gd2 \
56                                port:gts \
57                                port:libtool \
58                                port:zlib \
59                                port:gettext
60
61depends_run                     port:urw-fonts
62
63patchfiles                      patch-plugin-core-gvrender_core_dot.c.diff
64
65# nawk: illegal jump type 339
66conflicts_build                 nawk
67
68configure.args                  --disable-silent-rules \
69                                --with-codegens \
70                                --without-x \
71                                --without-devil \
72                                --without-smyrna \
73                                --with-digcola \
74                                --with-ipsepcola \
75                                --without-rsvg \
76                                --without-pangocairo \
77                                --without-lasi \
78                                --with-webp \
79                                --without-glitz \
80                                --with-freetype2 \
81                                --with-fontconfig \
82                                --without-gdk-pixbuf \
83                                --without-ghostscript \
84                                --without-gtk \
85                                --without-gtkgl \
86                                --without-gtkglext \
87                                --with-gts \
88                                --without-glade \
89                                --without-gnomeui \
90                                --without-ming \
91                                --without-qt \
92                                --without-quartz \
93                                --disable-swig \
94                                --disable-sharp \
95                                --disable-guile \
96                                --disable-io \
97                                --disable-java \
98                                --disable-lua \
99                                --disable-ocaml \
100                                --disable-perl \
101                                --disable-php \
102                                --disable-python \
103                                --disable-python23 \
104                                --disable-python24 \
105                                --disable-python25 \
106                                --disable-r \
107                                --disable-ruby \
108                                --disable-tcl
109
110platform macosx {
111    if {${os.major} > 8} {
112        configure.args-delete   --without-quartz
113        configure.args-append   --with-quartz
114    }
115}
116
117variant guile description {Include Guile language bindings} {
118    depends_lib-append          port:guile
119    depends_build-append        port:swig-guile
120    configure.args-delete       --disable-swig \
121                                --disable-guile
122    configure.args-append       --enable-guile
123}
124
125variant lua description {Include Lua language bindings} {
126    depends_lib-append          port:lua
127    depends_build-append        port:swig-lua
128    configure.args-delete       --disable-swig \
129                                --disable-lua
130    configure.args-append       --enable-lua
131    post-patch {
132        reinplace "s|/usr/lib\$LIBPOSTFIX/lua|${prefix}/lib\$LIBPOSTFIX/lua|g" ${worksrcpath}/configure
133    }
134}
135
136variant ocaml description {Include Objective Caml language bindings} {
137    depends_lib-append          port:ocaml
138    depends_build-append        port:swig-ocaml
139    configure.args-delete       --disable-swig \
140                                --disable-ocaml
141    configure.args-append       --enable-ocaml
142    configure.cppflags-append   -I${prefix}/lib/ocaml
143}
144
145variant perl description {Include PERL 5 language bindings} {
146    depends_lib-append          path:bin/perl:perl5
147    depends_build-append        port:swig-perl
148    configure.args-delete       --disable-swig \
149                                --disable-perl
150    configure.args-append       --enable-perl
151    configure.perl              ${prefix}/bin/perl
152}
153
154variant php description {Include PHP language bindings} {
155    depends_lib-append          path:bin/php:php5
156    depends_build-append        port:swig-php5
157    configure.args-delete       --disable-swig \
158                                --disable-php
159    configure.args-append       --enable-php
160    post-patch {
161        reinplace "s|/usr/include/php|${prefix}/include/php|g" ${worksrcpath}/configure
162        reinplace "s|/usr/lib\${LIBPOSTFIX}/php|${prefix}/lib\${LIBPOSTFIX}/php|g" ${worksrcpath}/configure
163        reinplace "s|/usr/share/php|${prefix}/share/php|g" ${worksrcpath}/configure
164    }
165}
166
167variant python24 description {Include Python 2.4 language bindings} conflicts python25 python26 {
168    depends_lib-append          port:python24
169    depends_build-append        port:swig-python
170    configure.args-delete       --disable-swig \
171                                --disable-python
172    configure.args-append       --enable-python
173    configure.python            ${prefix}/bin/python2.4
174    # The configure script asks python where to install
175    # This doesn't work for 2.4 and 2.5 (see #16334)
176    post-patch {
177        reinplace "s|PYTHON_INSTALL_DIR=.*|PYTHON_INSTALL_DIR=${prefix}/lib/python2.4|" ${worksrcpath}/configure
178    }
179}
180
181variant python25 description {Include Python 2.5 language bindings} conflicts python24 python26 {
182    depends_lib-append          port:python25
183    depends_build-append        port:swig-python
184    configure.args-delete       --disable-swig \
185                                --disable-python
186    configure.args-append       --enable-python
187    configure.python            ${prefix}/bin/python2.5
188    # The configure script asks python where to install
189    # This doesn't work for 2.4 and 2.5 (see #16334)
190    post-patch {
191        reinplace "s|PYTHON_INSTALL_DIR=.*|PYTHON_INSTALL_DIR=${prefix}/lib/python2.5|" ${worksrcpath}/configure
192    }
193}
194
195variant python26 description {Include Python 2.6 language bindings} conflicts python24 python25 {
196    depends_lib-append          port:python26
197    depends_build-append        port:swig-python
198    configure.args-delete       --disable-swig \
199                                --disable-python
200    configure.args-append       --enable-python
201    configure.python            ${prefix}/bin/python2.6
202}
203
204variant ruby description {Include Ruby language bindings} {
205    depends_lib-append          port:ruby
206    depends_build-append        port:swig-ruby
207    configure.args-delete       --disable-swig \
208                                --disable-ruby
209    configure.args-append       --enable-ruby
210}
211
212variant tcl description {Include Tcl language bindings} {
213    depends_lib-append          port:tcl
214    depends_build-append        port:swig-tcl
215    configure.args-delete       --disable-swig \
216                                --disable-tcl
217    configure.args-append       --enable-tcl
218}
219
220variant java description {Include Java language bindings} {
221    depends_build-append        port:swig-java
222    configure.args-delete       --disable-swig \
223                                --disable-java
224    configure.args-append       --enable-java
225}
226
227variant smyrna description {Include the Smyrna large graph viewer} {
228    configure.args-delete       --without-smyrna \
229                                --without-gtk \
230                                --without-gtkglext \
231                                --without-glade
232    configure.args-append       --with-smyrna \
233                                --with-gtk \
234                                --with-gtkglext \
235                                --with-glade
236    depends_lib-append          port:freeglut \
237                                port:gtk2 \
238                                port:gtkglext \
239                                port:libglade2
240}
241
242variant r description {Include R language bindings} {
243    depends_build-append        port:swig-r
244    configure.args-delete       --disable-swig \
245                                --disable-r
246    configure.args-append       --enable-r
247}
248
249variant rsvg description {enable the rsvg plugin} {
250    depends_lib-append          port:librsvg
251    configure.args-delete       --without-rsvg
252    configure.args-append       --with-rsvg
253}
254
255variant gdk_pixbuf description {enable the gdk_pixbuf plugin} {
256    depends_lib-append          port:gtk2
257    configure.args-delete       --without-gdk-pixbuf
258    configure.args-append       --with-gdk-pixbuf
259}
260
261variant glitz description {enable the incomplete glitz plugin} {
262    depends_lib-append          port:glitz
263    configure.args-delete       --without-glitz
264    configure.args-append       --with-glitz
265}
266
267variant ming description {enable the incomplete ming plugin} {
268    depends_lib-append          port:ming
269    configure.args-delete       --without-ming
270    configure.args-append       --with-ming
271}
272
273# Legacy no_pangocairo variant to be removed after February 2014
274variant no_pangocairo conflicts pangocairo description {Legacy compatibility variant} {}
275variant pangocairo conflicts no_pangocairo description {Add pangocairo support (antialiased bitmapped output; PDF output)} {
276    depends_lib-append          path:lib/pkgconfig/pango.pc:pango \
277                                port:libLASi
278    configure.args-append       --with-pangocairo \
279                                --with-lasi
280    configure.args-delete       --without-pangocairo \
281                                --without-lasi
282}
283
284if {[variant_isset no_pangocairo]} {
285    default_variants -pangocairo
286} else {
287    default_variants +pangocairo
288}
289
290# Legacy no_x11 variant to be removed after February 2014
291variant no_x11 conflicts x11 description {Legacy compatibility variant} {}
292variant x11 conflicts no_x11 {
293    depends_lib-append          port:xorg-libXaw
294    configure.args-delete       --without-x
295}
296
297if {[variant_isset no_x11]} {
298    default_variants -x11
299} else {
300    default_variants +x11
301}
302
303post-destroot {
304    if {![variant_isset smyrna]} {
305        delete ${destroot}${prefix}/share/graphviz/doc/pdf/smyrna.pdf
306    }
307   
308    # Make the configuration file that makes the plugins work.
309    system "GVBINDIR=${destroot}${prefix}/lib/graphviz DYLD_LIBRARY_PATH=${destroot}${prefix}/lib ${destroot}${prefix}/bin/dot -c"
310}
311
312livecheck.type                  regex
313livecheck.url                   ${homepage}Download_source.php
314livecheck.regex                 ${my_name}-(\[0-9\]+\\.\[0-9\]*\[02468\](\\.\[0-9\]+)*)\\.tar
315} else {
316    livecheck.type              none
317}
318
319subport graphviz-gui${thisbranch} {
320    PortGroup                   xcode 1.0
321   
322    conflicts                   graphviz-gui${otherbranch} graphviz-oldgui
323   
324    categories-append           aqua
325   
326    description                 OS X Aqua GUI for viewing and exporting \
327                                Graphviz graphs
328   
329    long_description            ${description}.
330   
331    depends_lib                 port:graphviz${thisbranch}
332   
333    pre-fetch {
334        if {${os.platform} ne "darwin"} {
335            ui_error "${subport} requires OS X."
336            return -code error "incompatible operating system"
337        }
338        if {${os.major} < 9} {
339            ui_error "${subport} requires OS X 10.5 or greater. Try graphviz-oldgui instead."
340            return -code error "incompatible OS X version"
341        }
342    }
343   
344    extract.post_args-append    ${worksrcdir}/macosx ${worksrcdir}/doc
345   
346    patchfiles                  patch-project.pbxproj.diff
347   
348    xcode.configuration         Release
349   
350    build.dir                   ${worksrcpath}/macosx
351    xcode.build.settings        PREFIX=${prefix}
352   
353    xcode.destroot.settings     ${xcode.build.settings}
354}
355
356subport gvedit${thisbranch} {
357    PortGroup                   app 1.0
358    PortGroup                   qt4 1.0
359   
360    conflicts                   gvedit${otherbranch}
361   
362    description                 Qt-based GUI for Graphviz
363   
364    long_description            gvedit is a ${description}. You may prefer \
365                                the Mac-native GUI in the graphviz-gui${thisbranch} port.
366   
367    depends_lib-append          port:graphviz${thisbranch}
368   
369    post-extract {
370        if {[get_short_version_string] eq ""} {
371            return -code error "cannot find ${app.name} short version string"
372        }
373    }
374   
375    patchfiles                  patch-cmd-gvedit-Makefile.in.diff
376   
377    # nawk: illegal jump type 339
378    conflicts_build             nawk
379   
380    configure.args              --disable-silent-rules \
381                                --with-qt
382   
383    build.dir                   ${worksrcpath}/cmd/gvedit
384   
385    app.name                    GVEdit
386    app.executable              gvedit
387    app.icon                    ${build.dir}/images/icon.png
388   
389    pre-destroot {
390        app.short_version_string [get_short_version_string]
391    }
392   
393    proc get_short_version_string {} {
394        global build.dir
395        return [exec /usr/bin/sed -E -n s/^\[\[:space:\]\]*"Version:\[\[:space:\]\]*(.+)".*/\\1/p ${build.dir}/mainwindow.cpp]
396    }
397}
Note: See TracBrowser for help on using the repository browser.