aboutsummaryrefslogtreecommitdiff
path: root/science/opensph/Makefile
blob: d7fbe7bd95a93336ee0561d271c81c2cee9d9b41 (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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
PORTNAME=	OpenSPH
DISTVERSION=	0.4.0
PORTREVISION=	7
CATEGORIES=	science

MAINTAINER=	yuri@FreeBSD.org
COMMENT=	Library and graphical tools for running SPH and N-body simulations
WWW=		https://gitlab.com/sevecekp/sph

LICENSE=	MIT
LICENSE_FILE=	${WRKSRC}/LICENSE

ONLY_FOR_ARCHS=	amd64 i386
ONLY_FOR_ARCHS_REASON=	unconditional use of -msse4.1 and inclusion of immintrin.h

TEST_DEPENDS=	catch>0:devel/catch

USES=		compiler:c++14-lang qmake qt:5
USE_GITLAB=	yes
USE_WX=		3.2

GL_SITE=	https://gitlab.com
GL_ACCOUNT=	sevecekp
GL_PROJECT=	sph
GL_COMMIT=	a8aac69f63e38d45339ddbc87855f77a71b2459d

QMAKE_SOURCE_PATH=	${WRKSRC}/sph.pro
QMAKE_ARGS=		CONFIG+=release

CXXFLAGS+=	-DSPH_CONFIG_SET

TEST_WRKSRC=	${WRKDIR}/test

BINARY_ALIAS=	wx-config=${LOCALBASE}/bin/wxgtk3u-3.2-config

PLIST_FILES=	bin/opensph bin/opensph-cli bin/opensph-info

OPTIONS_DEFINE=			CHAISCRIPT EIGEN HDF5 OPENMP TBB VDB
OPTIONS_DEFAULT=		CHAISCRIPT EIGEN HDF5 OPENMP TBB VDB

CHAISCRIPT_DESC=		Be able to read and modify particle data from a script
CHAISCRIPT_QMAKE_ON=		CONFIG+=use_chaiscript
CHAISCRIPT_BUILD_DEPENDS=	${LOCALBASE}/include/chaiscript/chaiscript.hpp:lang/chaiscript

EIGEN_DESC=			Eigen for additional methods to set up initial conditions
EIGEN_QMAKE_ON=			CONFIG+=use_eigen
EIGEN_USES=			eigen:3

HDF5_DESC=			Be able to read files generated by miluphcuda code
HDF5_QMAKE_ON=			CONFIG+=use_hdf5
HDF5_LIB_DEPENDS=		libhdf5.so:science/hdf5

OPENMP_QMAKE_ON=		CONFIG+=use_openmp

TBB_DESC=			Parallelize with Intel Threading Building Blocks
TBB_QMAKE_ON=			CONFIG+=use_tbb
TBB_LIB_DEPENDS=		libtbb.so:devel/onetbb

VDB_DESC=			Use OpenVDB for converting particles to volumetric data
VDB_QMAKE_ON=			CONFIG+=use_vdb
VDB_LIB_DEPENDS=		libImath.so:math/Imath \
				libopenvdb.so:misc/openvdb \
				libtbb.so:devel/onetbb

do-test:
	@${REINPLACE_CMD} -e 's|Path(.*|Path("${TEST_WRKSRC}");|' ${WRKSRC}/test/utils/Config.h
	@${MKDIR} ${TEST_WRKSRC}
	@cd ${_QMAKE_WRKSRC} && \
		${SETENV} ${QMAKE_ENV} ${_QMAKE} ${QMAKE_ARGS}  \
			${WRKSRC}/test.pro \
			${QMAKE_CONFIGURE_ARGS:?--:} ${QMAKE_CONFIGURE_ARGS}
	@cd ${BUILD_WRKSRC}  && \
		${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${_MAKE_JOBS} ${MAKE_ARGS}
	@cd ${TEST_WRKSRC}  && \
		${WRKSRC}/test/test

.include <bsd.port.mk>