Files

104 lines
4.0 KiB
Tcl

# -*- 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 github 1.0
PortGroup mpi 1.0
PortGroup linear_algebra 1.0
PortGroup makefile 1.0
PortGroup muniversal 1.0
epoch 2
github.setup hpddm hpddm 2.3.0 v
revision 0
checksums rmd160 397e16eed477ed66919e5ba2830455595c5931dd \
sha256 db3d5251bb064a42a3c214137ef9b585934213e7dab7fb725de0b3d4fd2ffdf6 \
size 337163
categories math science
license LGPL-3+
maintainers {mcalhoun @MarcusCalhoun-Lopez} openmaintainer
description a framework for high-performance domain decomposition methods
long_description HPDDM is an efficient implementation of various domain decomposition methods.
github.tarball_from archive
mpi.setup require require_fortran
linalg.setup blas_only
set python_branch 3.12
set python_version [string map {. {}} ${python_branch}]
depends_lib-append port:python${python_version} \
port:mumps \
port:arpack \
port:scalapack \
port:hypre
compiler.cxx_standard 2011
patchfiles-append patch-install_name.diff
muniversal.arch_tools MPICXX \
MPICC \
MPIF90
post-extract {
copy ${worksrcpath}/Make.inc/Makefile.macOS ${worksrcpath}/Makefile.inc
}
pre-build {
build.args-append MPICXX=${mpi.cxx} \
MPICC=${mpi.cc} \
MPIF90=${mpi.f90} \
MPIRUN="${prefix}/bin/${mpi.exec} -np" \
MUMPS_INCS=-I${prefix}/include \
PYTHON_INCS=-I${frameworks_dir}/Python.framework/Versions/${python_branch}/include/python${python_branch} \
ARPACK_LIBS="-L${prefix}/lib -larpack" \
SCALAPACK_LIBS="-L${prefix}/lib -lscalapack" \
MUMPS_LIBS="-L${prefix}/lib -lmumps_common -lesmumps -lsmumps -ldmumps -lcmumps -lzmumps -lpord" \
HYPRE_LIBS="-L${prefix}/lib -lHYPRE" \
PYTHON_LIBS="-L${frameworks_dir}/Python.framework/Versions/${python_branch}/lib -lpython${python_branch}" \
VERSION=${version} \
CVERSION=[join [lrange [split ${version} .] 0 0] .]
if {[variant_isset openblas]} {
build.args-append \
OPENBLAS_LIBS="-L${prefix}/lib ${linalglib}"
} else {
build.args-append \
BLAS_LIBS="-L${prefix}/lib ${linalglib}"
}
}
# Makefile searches for gfortran in $(MPIF90) name, which is not always true
# even though $(MPIF90) uses gfortran
build.args-append F90MOD=-J
destroot {
xinstall -d -m 0755 ${destroot}${prefix}/include/${name}
xinstall -m 0644 {*}[glob ${worksrcpath}/include/*] ${destroot}${prefix}/include/${name}
xinstall -m 0755 {*}[glob ${worksrcpath}/lib/*.dylib] ${destroot}${prefix}/lib
#xinstall -m 0644 {*}[glob ${worksrcpath}/lib/*.a] ${destroot}${prefix}/lib
xinstall -W ${worksrcpath}/bin -m 0755 \
custom_operator_fortran \
schwarz_c \
schwarz_cpp \
${destroot}${prefix}/bin
}
# Tests may randomly lead to infinity loop, let's disable it.
# See: https://github.com/hpddm/hpddm/issues/110
test.run no
depends_test-append port:py${python_version}-mpi4py \
port:py${python_version}-numpy \
port:py${python_version}-scipy
pre-test {
test.args-append PATH=${frameworks_dir}/Python.framework/Versions/${python_branch}/bin:$env(PATH) \
{*}${build.args}
}
github.livecheck.branch main