# -*- 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 # $Id: Portfile 136952 2015-05-31 10:00:08Z ryandesign@macports.org $ PortSystem 1.0 PortGroup conflicts_build 1.0 PortGroup xcodeversion 1.0 # Please keep the graphviz and graphviz-devel ports as similar as possible. name graphviz set my_name graphviz version 2.38.0 set thisbranch [strsed ${name} "g/^${my_name}//"] set otherbranch [expr {${thisbranch} eq {} ? {-devel} : {}}] categories graphics maintainers ryandesign license EPL-1 homepage http://www.graphviz.org/ master_sites ${homepage}pub/graphviz/stable/SOURCES/ platforms darwin use_parallel_build yes dist_subdir ${my_name} distname ${my_name}-${version} description graph visualization software long_description Graphviz is ${description}. Graph visualization \ is a way of representing structural information \ as diagrams of abstract graphs and networks. The \ Graphviz layout programs dot, neato, fdp, sfdp, \ twopi and circo take descriptions of graphs in a \ simple text language, and produce output in a \ variety of visual and text formats. checksums rmd160 a80c2fa6b9955444b2103a99167d7020b23e4c4e \ sha256 81aa238d9d4a010afa73a9d2a704fc3221c731e1e06577c2ab3496bdef67859e # graphviz needs Xcode 3.1+ to avoid the libGL error when building the smyrna variant # graphviz-gui needs Xcode 3.1.2+; see #18811 minimum_xcodeversions {9 3.1.2} if {${name} eq ${subport}} { revision 1 conflicts graphviz${otherbranch} depends_build port:pkgconfig depends_lib port:jpeg \ port:libpng \ port:webp \ port:fontconfig \ port:freetype \ port:expat \ port:gd2 \ port:gts \ port:libtool \ port:zlib \ port:gettext \ port:poppler depends_run port:urw-fonts # nawk: illegal jump type 339 conflicts_build nawk configure.args --disable-silent-rules \ --with-codegens \ --without-x \ --without-devil \ --without-smyrna \ --with-digcola \ --with-ipsepcola \ --without-rsvg \ --without-pangocairo \ --without-lasi \ --with-webp \ --without-glitz \ --with-freetype2 \ --with-fontconfig \ --without-gdk-pixbuf \ --without-ghostscript \ --without-gtk \ --without-gtkgl \ --without-gtkglext \ --with-gts \ --without-glade \ --without-gnomeui \ --without-ming \ --without-qt \ --without-quartz \ --disable-swig \ --disable-sharp \ --disable-guile \ --disable-io \ --disable-java \ --disable-lua \ --disable-ocaml \ --disable-perl \ --disable-php \ --disable-python \ --disable-python23 \ --disable-python24 \ --disable-python25 \ --disable-r \ --disable-ruby \ --disable-tcl # Teach glibtool about -stdlib=libc++ use_autoreconf yes autoreconf.args -fvi platform macosx { if {${os.major} > 8} { configure.args-replace --without-quartz --with-quartz } post-patch { if {[string match *clang* ${configure.cxx}] && ${configure.cxx_stdlib} eq "libc++"} { reinplace "s:-lstdc\+\+:-lc++:" \ ${worksrcpath}/configure.ac \ ${worksrcpath}/cmd/dot/Makefile.am \ ${worksrcpath}/cmd/mingle/Makefile.am \ ${worksrcpath}/plugin/gdiplus/Makefile.am } } } variant guile description {Include Guile language bindings} { depends_lib-append port:guile depends_build-append port:swig-guile configure.args-replace --disable-swig --enable-swig configure.args-replace --disable-guile --enable-guile } variant lua description {Include Lua language bindings} { depends_lib-append port:lua depends_build-append port:swig-lua configure.args-replace --disable-swig --enable-swig configure.args-replace --disable-lua --enable-lua post-patch { reinplace "s|/usr/lib\$LIBPOSTFIX/lua|${prefix}/lib\$LIBPOSTFIX/lua|g" ${worksrcpath}/configure } } variant ocaml description {Include Objective Caml language bindings} { depends_lib-append port:ocaml depends_build-append port:swig-ocaml configure.args-replace --disable-swig --enable-swig configure.args-replace --disable-ocaml --enable-ocaml configure.cppflags-append -I${prefix}/lib/ocaml } variant perl description {Include PERL 5 language bindings} { depends_lib-append path:bin/perl:perl5 depends_build-append port:swig-perl configure.args-replace --disable-swig --enable-swig configure.args-replace --disable-perl --enable-perl configure.perl ${prefix}/bin/perl } variant php description {Include PHP language bindings} { depends_lib-append path:bin/php:php5 depends_build-append port:swig-php5 configure.args-replace --disable-swig --enable-swig configure.args-replace --disable-php --enable-php post-patch { reinplace "s|/usr/include/php|${prefix}/include/php|g" ${worksrcpath}/configure reinplace "s|/usr/lib\${LIBPOSTFIX}/php|${prefix}/lib\${LIBPOSTFIX}/php|g" ${worksrcpath}/configure reinplace "s|/usr/share/php|${prefix}/share/php|g" ${worksrcpath}/configure } } # TODO: Remove after 2016-05-10. variant python24 description {Legacy variant} requires python27 {} variant python25 description {Legacy variant} requires python27 {} variant python26 description {Legacy variant} requires python27 {} variant python27 description {Include Python 2.7 language bindings} { depends_lib-append port:python27 depends_build-append port:swig-python configure.args-replace --disable-swig --enable-swig configure.args-replace --disable-python --enable-python configure.python ${prefix}/bin/python2.7 } variant ruby description {Include Ruby language bindings} { depends_lib-append port:ruby depends_build-append port:swig-ruby configure.args-replace --disable-swig --enable-swig configure.args-replace --disable-ruby --enable-ruby } variant tcl description {Include Tcl language bindings} { depends_lib-append port:tcl depends_build-append port:swig-tcl configure.args-replace --disable-swig --enable-swig configure.args-replace --disable-tcl --enable-tcl } variant java description {Include Java language bindings} { depends_build-append port:swig-java configure.args-replace --disable-swig --enable-swig configure.args-replace --disable-java --enable-java } variant smyrna description {Include the Smyrna large graph viewer} { depends_lib-append port:freeglut \ port:gtk2 \ port:gtkglext \ port:libglade2 configure.args-replace --without-glade --with-glade configure.args-replace --without-gtk --with-gtk configure.args-replace --without-gtkglext --with-gtkglext configure.args-replace --without-smyrna --with-smyrna } variant r description {Include R language bindings} { depends_build-append port:swig-r configure.args-replace --disable-swig --enable-swig configure.args-replace --disable-r --enable-r } variant rsvg description {enable the rsvg plugin} { depends_lib-append port:librsvg configure.args-replace --without-rsvg --with-rsvg } variant gdk_pixbuf description {enable the gdk_pixbuf plugin} { depends_lib-append port:gtk2 configure.args-replace --without-gdk-pixbuf --with-gdk-pixbuf } variant glitz description {enable the incomplete glitz plugin} { depends_lib-append port:glitz configure.args-replace --without-glitz --with-glitz } variant ming description {enable the incomplete ming plugin} { depends_lib-append port:ming configure.args-replace --without-ming --with-ming } variant pangocairo description {Add pangocairo support (antialiased bitmapped output; PDF output)} { depends_lib-append path:lib/pkgconfig/pango.pc:pango \ port:libLASi configure.args-replace --without-lasi --with-lasi configure.args-replace --without-pangocairo --with-pangocairo } variant x11 { depends_lib-append port:xorg-libXaw configure.args-delete --without-x } default_variants +pangocairo +x11 post-destroot { if {![variant_isset smyrna]} { delete ${destroot}${prefix}/share/graphviz/doc/pdf/smyrna.pdf } # Make the configuration file that makes the plugins work. system "GVBINDIR=${destroot}${prefix}/lib/graphviz DYLD_LIBRARY_PATH=${destroot}${prefix}/lib ${destroot}${prefix}/bin/dot -c" } livecheck.type regex livecheck.url ${homepage}Download_source.php livecheck.regex ${my_name}-(\[0-9\]+\\.\[0-9\]*\[02468\](\\.\[0-9\]+)*)\\.tar } else { livecheck.type none } subport graphviz-gui${thisbranch} { PortGroup xcode 1.0 revision 0 conflicts graphviz-gui${otherbranch} graphviz-oldgui categories-append aqua description OS X Aqua GUI for viewing and exporting \ Graphviz graphs long_description ${description}. depends_lib port:graphviz${thisbranch} pre-fetch { if {${os.platform} ne "darwin"} { ui_error "${subport} requires OS X." return -code error "incompatible operating system" } if {${os.major} < 9} { ui_error "${subport} requires OS X 10.5 or greater. Try graphviz-oldgui instead." return -code error "incompatible OS X version" } } extract.post_args-append ${worksrcdir}/macosx ${worksrcdir}/doc patchfiles patch-project.pbxproj.diff xcode.configuration Release build.dir ${worksrcpath}/macosx xcode.build.settings PREFIX=${prefix} xcode.destroot.settings ${xcode.build.settings} } subport gvedit${thisbranch} { PortGroup app 1.0 PortGroup qt4 1.0 revision 0 conflicts gvedit${otherbranch} description Qt-based GUI for Graphviz long_description gvedit is a ${description}. You may prefer \ the Mac-native GUI in the graphviz-gui${thisbranch} port. depends_lib-append port:graphviz${thisbranch} post-extract { set short_version_string [get_short_version_string] if {${short_version_string} eq ""} { return -code error "cannot find ${app.name} short version string" } else { ui_debug "${app.name} short version string: ${short_version_string}" } } patchfiles patch-cmd-gvedit-Makefile.in.diff # nawk: illegal jump type 339 conflicts_build nawk configure.args --disable-silent-rules \ --with-qt build.dir ${worksrcpath}/cmd/gvedit app.name GVEdit app.executable gvedit app.icon ${build.dir}/images/icon.png pre-destroot { app.short_version_string [get_short_version_string] } proc get_short_version_string {} { global build.dir return [exec /usr/bin/sed -E -n s/^\[\[:space:\]\]*"\[Vv\]ersion:\[\[:space:\]\]*(\[0-9.\]+).*/\\1/p ${build.dir}/mainwindow.cpp] } }