# -*- coding: utf-8; mode: tcl; tab-width: 4; c-basic-offset: 4 -*- # $Id: Portfile 153180 2016-09-26 15:06:08Z mmoll@macports.org $ PortSystem 1.0 PortGroup python 1.0 PortGroup active_variants 1.1 PortGroup compiler_blacklist_versions 1.0 set realname graph-tool name py-${realname} version 2.16 revision 0 epoch 20160425 categories python science platforms darwin license GPL-3 maintainers skewed.de:tiago mmoll description Efficient python graph module long_description graph-tool is an efficient python module for manipulation \ and statistical analysis of graphs. The internal data \ structures and most algorithms are implemented in C++ with \ the Boost Graph Library. homepage http://graph-tool.skewed.de master_sites http://downloads.skewed.de/graph-tool/ use_bzip2 yes checksums md5 c87ba05c20e619e2de933e11abae1591 \ sha1 c9fde996179c4b9196be6cefa3bd28037fe62f20 \ rmd160 7b99c438897145dfd68bb28a0b242541ada75f04 distname ${realname}-${version} python.versions 27 34 35 python.default_version 27 if {${os.major} <= 12 && ${os.platform} eq "darwin"} { version 2.2.26 distname ${realname}-${version} checksums md5 317b29de0d3ef715fdc9281e078cfb17 \ sha1 108be4cf6212eb6886f172ea03813187f73e4c3c \ rmd160 cd2e8506522821750d70a97b951254f0a133d218 } else { if {${name} ne ${subport}} { compiler.blacklist *gcc* {clang <= 700.1.81} {macports-clang-3.[0-6]} compiler.fallback-append macports-clang-3.7 patch.pre_args -p1 patchfiles 0001-Fix-compilation-problem-with-newer-CGAL.patch configure.cxxflags-append -std=c++14 -stdlib=libc++ variant openmp description "Enable OpenMP" { # make sure libomp is installed at runtime, even if the compiler gets uninstalled depends_lib-append lib:${prefix}/lib/libomp/libomp:libomp configure.args-append --enable-openmp } variant clang37 requires openmp conflicts clang38 clang39 description "Use clang-3.7+openmp and enable OpenMP" { require_active_variants clang-3.7 openmp configure.compiler macports-clang-3.7 } variant clang38 requires openmp conflicts clang37 clang39 description "Use clang-3.8 and enable OpenMP" { configure.compiler macports-clang-3.8 } variant clang39 requires openmp conflicts clang37 clang38 description "Use clang-3.9 and enable OpenMP" { configure.compiler macports-clang-3.9 } default_variants +openmp if {![variant_isset clang37] && ![variant_isset clang39]} { default_variants-append +clang38 } } } if {${name} ne ${subport}} { universal_variant no depends_build-append port:pkgconfig depends_lib-append port:boost \ port:cairomm \ port:cgal \ port:expat \ path:bin/dot:graphviz \ port:py${python.version}-numpy \ port:py${python.version}-scipy \ port:py${python.version}-gobject3 \ port:py${python.version}-cairo use_configure yes # parallel build starts swapping with 8GB of RAM. use_parallel_build no # graph-tool relies on Boost.Python, so make sure it is installed. require_active_variants boost python${python.version} # PYTHON_EXTRA_LDFLAGS is set to work around incorrect detection of # link flags by configure configure.env-append PYTHON=${python.bin} \ PYTHON_VERSION=${python.branch} \ PYTHON_CPPFLAGS=-I${python.include} \ PYTHON_LDFLAGS="-L${python.libdir}/.. -lpython${python.branch}" \ PYTHON_EXTRA_LDFLAGS="-L${python.libdir}/.. -lpython${python.branch}" # With python2.7 PYTHON_EXTRA_LIBS is determined to be # '-u _PyMac_Error Python.framework/Versions/2.7/Python'. Not clear whether # python2.7 or py-graph-tool's configure script is to blame, but we can easily # work around this: if {${python.version} eq "27"} { configure.env-append PYTHON_EXTRA_LIBS="-u _PyMac_Error" } configure.cppflags-append -I${prefix}/include -I${python.include}/.. configure.ldflags-append -L${prefix}/lib configure.args-append --with-boost=${prefix} --exec-prefix=${python.prefix} # Clang uses the old libstc++ from gcc 4.2 before OS X 10.9. Boost doesn't # include some of the tr1 headers in libstdc++ and defines its own tr1 # classes. This causes conflicts with sparsehash which insists on using # the old tr1 headers. if {[string match *gcc* ${configure.compiler}] || ${os.major} >= 13 && ${os.platform} eq "darwin"} { depends_lib-append port:sparsehash } else { configure.args-append --disable-sparsehash } build.cmd make build.target all destroot.cmd make destroot.destdir DESTDIR=${destroot} variant gtk3 description "Enable interactive drawing with gtk3" { depends_lib-append port:gtk3 \ port:librsvg } post-destroot { file rename ${destroot}${prefix}/share/doc/graph-tool \ ${destroot}${prefix}/share/doc/py${python.version}-graph-tool } } if {${name} eq ${subport}} { livecheck.type regex livecheck.url $homepage livecheck.regex Download version (\[0-9.\]+) } else { livecheck.type none }