source: trunk/dports/graphics/graphviz/Portfile

Last change on this file was 144197, checked in by ryandesign@…, 21 months ago

webp: update to 0.5.0 and revbump ports that link with libwebp

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