source: trunk/dports/graphics/graphviz-devel/Portfile @ 137992

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

inc. revision to rebuild library dependents of ocaml (ocaml update to version 4.02.2)

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