# -*- 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           python 1.0
PortGroup           bitbucket 1.0

bitbucket.setup     fenics-project ffc 2018.1.0
revision            0
name                py-ffc

categories-append   math science
license             LGPL-3+
platforms           darwin
supported_archs     noarch
maintainers         nomaintainer

description         FEniCS Form Compiler
long_description    FFC works as a compiler for multilinear forms by generating \
                    code (C or C++) for the evaluation of a multilinear form given \
                    in mathematical notation. This new approach to form evaluation \
                    makes it possible to combine generality with efficiency, the \
                    form can be given in mathematical notation and the generated \
                    code is as efficient as hand-optimized code.

checksums           rmd160  e543d339823c0c15ef086cce472ce9c2168a38f4 \
                    sha256  51b21e3557d4c1460b2d52ff2d5646dd3d15a8b458b51706d5ff58adc9485971 \
                    size    1378112

python.versions     36
python.link_binaries_suffix

configure.cxxflags-append -std=c++11

if {${subport} ne ${name}} {
   depends_lib      port:py${python.version}-fiat \
                    port:py${python.version}-ufl \
                    port:py${python.version}-dijitso \
                    port:swig-python \
                    port:boost

    pre-build {
        if {[vercmp [macports_version] 2.5.99] >= 0} {
        build.env-append CXXFLAGS=${configure.cxxflags}
        } else {
        build.env-append CXXFLAGS="${configure.cxxflags}"
        }
    }

    pre-destroot {
        if {[vercmp [macports_version] 2.5.99] >= 0} {
        destroot.env-append CXXFLAGS=${configure.cxxflags}
        } else {
        destroot.env-append CXXFLAGS="${configure.cxxflags}"
        }
    }

    post-fetch {
        if {![file exists ${python.pkgd}/boost/mpi.so]} {
            return -code error "${subport} needs boost installed with an mpi variant"
        }
    }

    livecheck.type  none
}