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

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

graphviz, graphviz-devel: use eq instead of == for string comparison

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