Permalink
Fetching contributors…
Cannot retrieve contributors at this time
375 lines (292 sloc) 13.9 KB
# -*- 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
PortSystem 1.0
PortGroup xcodeversion 1.0
# Please keep the graphviz and graphviz-devel ports as similar as possible.
name graphviz-devel
set my_name graphviz
version 2.41.20171026.1811
set thisbranch [strsed ${name} "g/^${my_name}//"]
set otherbranch [expr {${thisbranch} eq {} ? {-devel} : {}}]
categories graphics
maintainers {ryandesign @ryandesign}
license EPL-1
homepage http://www.graphviz.org/
master_sites ${homepage}pub/graphviz/development/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 f5680f1d6b1e67af9e874732cd0c60465b23d587 \
sha256 d06e76d2f8a97cbd63927191a0be6d0b35525832b89de59baafe48d6400f0699 \
size 25589016
# 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 0
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
depends_run port:urw-fonts
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-poppler \
--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 \
ac_cv_prog_AWK=/usr/bin/awk
# 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/edgepaint/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
}
}
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
}
# This is not a default variant because its license would make Graphviz undistributable.
variant poppler description {Add poppler support} {
depends_lib-append port:poppler
configure.args-replace --without-poppler --with-poppler
}
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\]*\[13579\](\\.\[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
configure.args --disable-silent-rules \
--with-qt \
ac_cv_prog_AWK=/usr/bin/awk
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]
}
}