summaryrefslogtreecommitdiff
path: root/math/mfem/Makefile
blob: dd7370c5188179a9dadaceab6a3877c207f431db (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
PORTNAME=	mfem
DISTVERSIONPREFIX=	v
DISTVERSION=	4.4
PORTREVISION=	5
CATEGORIES=	math

MAINTAINER=	yuri@FreeBSD.org
COMMENT=	Lightweight, general, scalable C++ library for finite element methods
WWW=		https://mfem.org/

LICENSE=	LGPL21
LICENSE_FILE=	${WRKSRC}/LICENSE

USES=		cmake:testing compiler:c++11-lang
USE_GITHUB=	yes
USE_LDCONFIG=	yes

CMAKE_ON=	BUILD_SHARED_LIBS
CMAKE_TESTING_ON=	MFEM_ENABLE_TESTING # tests are broken, see https://github.com/mfem/mfem/issues/3163

OPTIONS_DEFINE=		METIS SUPERLU
OPTIONS_SINGLE=		MPI
OPTIONS_SINGLE_MPI=	NOMPI MPICH OPENMPI
OPTIONS_DEFAULT=	METIS MPICH SUPERLU # should be the same MPI choice as in science/hypre
OPTIONS_SUB=		yes

NOMPI_DESC=		Build without parallel processing support
OPENMPI_CMAKE_ON=	-DTPL_ENABLE_MPI=OFF

MPICH_USES=		mpi:mpich
MPICH_CMAKE_ON=		-DTPL_ENABLE_MPI=ON
MPICH_LIB_DEPENDS=	libHYPRE.so:science/hypre \
			libmetis.so:math/metis

OPENMPI_USES=		mpi:openmpi
OPENMPI_CMAKE_ON=	-DTPL_ENABLE_MPI=ON
OPENMPI_LIB_DEPENDS=	libHYPRE.so:science/hypre \
			libmetis.so:math/metis

METIS_DESC=		Build with metis
METIS_CMAKE_BOOL=	MFEM_USE_METIS
METIS_LIB_DEPENDS=	libmetis.so:math/metis

SUPERLU_DESC=		Enable SuperLU use
SUPERLU_CMAKE_BOOL=	MFEM_USE_SUPERLU
SUPERLU_CMAKE_ON=	-DSuperLUDist_DIR=${LOCALBASE} -DSuperLUDist_INCLUDE_DIRS=${LOCALBASE}/include/superlu
SUPERLU_LIB_DEPENDS=	libsuperlu_dist.so:math/superlu-dist
SUPERLU_LDFLAGS=	-L${LOCALBASE}/lib -lsuperlu_dist # workaround for https://github.com/mfem/mfem/issues/3171#issuecomment-1236591028

post-install-SUPERLU-on: # workaround for https://github.com/mfem/mfem/issues/3191
	@${REINPLACE_CMD} -e 's|;${LOCALBASE}/include/superlu||' ${STAGEDIR}${PREFIX}/lib/cmake/mfem/MFEMConfig.cmake

.include <bsd.port.mk>