Files
macports-ports/math/deal.ii/Portfile
T
Eric A. Borisch 6d9281424a hdf5: MAJOR VERSION UPDATE 2.1.1 (#32874)
* hdf5: MAJOR VERSION UPDATE 2.1.1
* hdf5: Fix tests; add upstream fortran patch
* hdf5: revbumps
2026-06-04 13:20:03 -05:00

146 lines
5.9 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 cmake 1.1
PortGroup mpi 1.0
PortGroup linear_algebra 1.0
PortGroup boost 1.0
name deal.ii
github.setup dealii dealii 9.4.2 v
# Change github.tarball_from to 'releases' or 'archive' next update
github.tarball_from tarball
revision 6
categories math science
license LGPL-2.1+
maintainers {mcalhoun @MarcusCalhoun-Lopez} openmaintainer
description a C++ software library supporting the creation of finite element codes
long_description ${name} is {*}${description}.
homepage https://www.dealii.org/
checksums rmd160 3008f48ec54ad5e5191eef2f2e1dbeb1d9377628 \
sha256 37b9f09e25db710234412d6ea18f8a2d7a66b115fde7728e716f7a307876fdba \
size 30299805
mpi.setup require_fortran
veclibfort no
if {[variant_isset debug]} {
cmake.build_type Debug
} else {
cmake.build_type Release
}
# deal.II sets its own optimization flags
configure.optflags
compiler.cxx_standard 2017
configure.args-append -DCMAKE_CXX_STANDARD=17
compiler.openmp_version 4.0
# see https://stackoverflow.com/questions/73363327/boost-program-options-uses-deprecated-feature
configure.cxxflags-append -DBOOST_NO_CXX98_FUNCTION_BASE
# install location for LICENSE.md, README.md, detailed.log, summary.log, etc.
# install location for examples
configure.args-append -DDEAL_II_DOCREADME_RELDIR=share/${name} \
-DDEAL_II_EXAMPLES_RELDIR=share/${name}/examples \
-DDEAL_II_DOCHTML_RELDIR=share/${name}/doc
# always use MacPorts library
configure.args-append -DDEAL_II_ALLOW_BUNDLED=OFF
# optional dependencies:
# CUDA requires a graphics card from Nvidia
# Ginkgo does not exist in MacPorts and requires CUDA
# p4est requires MPI
# PETSc requires MPI
# ScaLAPACK requires MPI
# SLEPc requires MPI
# Trilinos is not in MacPorts
# see https://www.dealii.org/developer/readme.html
# see https://www.dealii.org/developer/users/cmake.html
depends_lib-append port:ADOL-C \
port:arborx \
port:arpack \
port:assimp
pre-configure {
configure.args-append ${cmake_linalglib}
}
depends_lib-append port:cgal5
configure.args-append -DDEAL_II_WITH_CUDA=OFF \
-DDEAL_II_WITH_GINKGO=OFF
depends_lib-append port:gmsh \
port:gsl \
port:hdf5 \
port:kokkos \
port:metis \
port:muparser \
port:opencascade
configure.args-append -DDEAL_II_WITH_P4EST=OFF \
-DDEAL_II_WITH_PETSC=OFF \
-DDEAL_II_WITH_SCALAPACK=OFF \
-DDEAL_II_WITH_SLEPC=OFF
set sundials_ver 5
set sundials_base ${prefix}/libexec/sundials${sundials_ver}
set sundials_include ${sundials_base}/include
cmake.prefix_path-append ${sundials_base}
configure.args-append -DSUNDIALS_DIR=${sundials_base} \
-DSUNDIALS_INCLUDE_DIR=${sundials_include} \
-DSUNDIALS_CONFIG_H=${sundials_include}/sundials/sundials_config.h
depends_lib-append port:sundials${sundials_ver} \
port:symengine \
port:onetbb
configure.args-append -DDEAL_II_WITH_TRILINOS=OFF
depends_lib-append port:SuiteSparse_UMFPACK \
port:zlib
if {[mpi_variant_isset]} {
mpi.enforce_variant hdf5
mpi.enforce_variant sundials${sundials_ver}
mpi.enforce_variant petsc
depends_lib-append port:p4est \
port:petsc \
port:scalapack \
port:slepc
configure.args-append -DDEAL_II_WITH_MPI=ON
configure.args-delete -DDEAL_II_WITH_P4EST=OFF \
-DDEAL_II_WITH_PETSC=OFF \
-DDEAL_II_WITH_SCALAPACK=OFF \
-DDEAL_II_WITH_SLEPC=OFF
configure.args-append -DPETSC_DIR=${prefix}/lib/petsc \
-DSLEPC_DIR=${prefix}/lib/slepc
# SUNDIALS links against KLU from SuiteSparse
configure.ldflags-append -lklu
} else {
configure.args-append -DDEAL_II_WITH_MPI=OFF
}
variant docs description "Install ${name} documentation" {
depends_build-append path:bin/doxygen:doxygen \
path:bin/dot:graphviz \
port:perl5.28
configure.args-append -DDEAL_II_COMPONENT_DOCUMENTATION=ON \
-DPERL_EXECUTABLE=${prefix}/bin/perl5.28
}
variant python description "install python bindings" {
global python_version
set python_branch 3.11
set python_version [string map {. ""} ${python_branch}]
depends_lib-append port:python${python_version}
require_active_variants [boost::depends_portname] python${python_version}
configure.args-append -DDEAL_II_COMPONENT_PYTHON_BINDINGS=ON \
-DPYTHON_EXECUTABLE=${prefix}/bin/python${python_branch} \
-DDEAL_II_PYTHON_RELDIR=${frameworks_dir}/Python.framework/Versions/${python_branch}/lib/python${python_branch}/site-packages/PyDealII
}
test.run yes
# avoid release candidates
github.livecheck.regex {([0-9.]+)}