# -*- 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$

PortSystem  1.0
# Portgroup is not an option until we find a way to get rid of the -arch option
#PortGroup   cmake 1.0

name                 feel++
version              0.90.0
categories           science
platforms            macosx darwin freebsd
maintainers          ujf-grenoble.fr:Christophe.Prudhomme
description          Finite Element Embedded Library and Language in C++
long_description    \
 Feel++ (formerly known as Life) is a versatile finite element library\
 to solve partial differential equations.\
 \
 Support 1D, 2D, 3D\
 \
 Support the following basic entities: simplices (segment, triangle,\
 tetrahedron) and product of simplices (quadrangle, hexahedron)\
 \
 Support various point sets on these basic entities: equispaced\
 points, quadrature points, interpolation points (Gauss-Lobatto,\
 Fekete, WarpBlend?)\
 \
 Support continuous and discontinuous Galerkin methods\
 \
 Support various polynomial sets:\
 \
  * Lagrange(continuous,discontinuous,all dimensions,all interpolation\
 point sets)\
 \
  * Dubiner(discontinuous), boundary adapted(continuous)\
 \
  * Legendre(discontinuous), boundary adapted(continuous)\
 \
 Provide mathematical concept for higher order abstraction (Function\
 spaces and associated elements, forms and operators)\
 \
 Provide a language embedded in C++ for variational formulations,\
 projection and numerical integration

homepage            http://www.feelpp.org
fetch.type          svn
svn.url             svn://scm.forge.imag.fr/var/lib/gforge/chroot/scmrepos/svn/life/trunk/life/trunk
svn.revision        HEAD

checksums           md5     dbbeea5444b9954dd9e6df30596da353\
                    sha1    8e27e4eb1b271202fd2167a4681c3430a01a9847\
                    rmd160  d91328bf433a6084a9d5d209d795e527464e0331

worksrcdir	trunk/build
configure	{ system "mkdir -p ${worksrcpath} && cd ${worksrcpath} && cmake ${configure.args} ../" }

configure.env-append  PETSC_DIR=/opt/local/lib/petsc
configure.env-append  SLEPC_DIR=/opt/local/lib/petsc


# make sure to keep below in sync with cmake Portgroup except
# for the configure.args option that mess up feel++
# standard place to install extra CMake modules
set cmake_share_module_dir ${prefix}/share/cmake/modules
configure.cmd       cmake
configure.pre_args  -DCMAKE_INSTALL_PREFIX=${prefix}
configure.args      -DCMAKE_VERBOSE_MAKEFILE=ON \
                    -DCMAKE_COLOR_MAKEFILE=ON \
                    -DCMAKE_BUILD_TYPE=Release \
                    -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
                    -DCMAKE_INSTALL_NAME_DIR=${prefix}/lib \
                    -DCMAKE_SYSTEM_PREFIX_PATH=\"${prefix}\;/usr\" \
                    -DCMAKE_MODULE_PATH=${cmake_share_module_dir} \
                    -DFEEL_ENABLE_EXAMPLES=OFF \
                    -DFEEL_ENABLE_BENCHMARKS=OFF \
                    -DFEEL_ENABLE_TESTS=OFF \
                    -DFEEL_ENABLE_RESEARCH=OFF \
                    -DFEEL_ENABLE_APPLICATIONS=OFF \
                    -DFEEL_ENABLE_DOCUMENTATION=OFF \
                    -DCMAKE_DISABLE_FIND_PACKAGE_Octave=TRUE \
                    -DCMAKE_DISABLE_FIND_PACKAGE_OpenTURNS=TRUE \
                    -DCMAKE_DISABLE_FIND_PACKAGE_Metis=TRUE \
                    -Wno-dev
configure.cxx ${prefix}/bin/g++-mp-4.5
configure.cc  ${prefix}/bin/gcc-mp-4.5
configure.args-append \
    -DMPI_COMPILER=/opt/local/lib/openmpi/bin/mpic++\


destroot.destdir DESTDIR=${destroot}${prefix}/lib/feel++

#post-build {
#   system "cd ${worksrcpath}/doc/api/ && make -k doxygen"
#}

depends_build port:cmake

depends_lib    \
    port:cmake\
    port:gcc45\
    port:openmpi\
    port:boost \
    port:petsc\
    port:slepc\
    port:gmsh\
    port:libANN

variant octave description {Add octave bindings} {
  depends_lib_append \
    port:octave
  configure.args-append \
    -DCMAKE_DISABLE_FIND_PACKAGE_Octave=FALSE
}

variant tbb description {Add tbb support} {
  depends_lib_append \
    port:tbb
}

variant doc description {Add doc support} {
  depends_lib_append \
    port:doxygen \
    port:latex2html \
    port:imagemagick \
  configure.args-append \
    -DFEEL_ENABLE_DOCUMENTATION=ON
}

variant scipy description {Add python bindings} {
  depends_lib_append \
    port:py26-scipy\
    port:py26-numpy
}

variant test description {Add tests to build process} {
  configure.args-append \
    -DFEEL_ENABLE_TESTS=ON
}

variant benchmarks description {Add benchmarks to build process} {
  configure.args-append \
    -DFEEL_ENABLE_BENCHMARKS=ON
}

variant examples description {Add examples to build process} {
  configure.args-append \
    -DFEEL_ENABLE_EXAMPLES=ON
}

variant applications description {Add applications to build process} {
  configure.args-append \
    -DFEEL_ENABLE_APPLICATIONS=ON
}
