Files
ports/science/opensph/Makefile
Robert Clausecker 75ecc581ae science/opensph: port to aarch64
- use sse2neon to build this port on aarch64
 - armv7 might work too, but I can't test it due to dependent ports not
   building right now

Approved by:	yuri (maintainer)
Differential Revision:	https://reviews.freebsd.org/D47140
2024-10-21 11:36:01 +02:00

85 lines
2.5 KiB
Makefile

PORTNAME= OpenSPH
DISTVERSION= 0.4.1
PORTREVISION= 4
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= aarch64 amd64 i386
ONLY_FOR_ARCHS_REASON= unconditional use of -msse4.1 and inclusion of immintrin.h
BUILD_DEPENDS_aarch64= ${LOCALBASE}/include/sse2neon.h:devel/sse2neon
BUILD_DEPENDS+= ${BUILD_DEPENDS_${ARCH}}
TEST_DEPENDS= catch>0:devel/catch
USES= compiler:c++17-lang qmake qt:5
USE_GITLAB= yes
USE_WX= 3.2
GL_SITE= https://gitlab.com
GL_ACCOUNT= sevecekp
GL_PROJECT= sph
GL_TAGNAME= a7f6f781059d8d19e6f24b1115e7ad3ad71678a8
QMAKE_SOURCE_PATH= ${WRKSRC}/sph.pro
QMAKE_ARGS= CONFIG+=release
CXXFLAGS+= -DSPH_CONFIG_SET
CXXFLAGS_amd64= -msse4.1
CXXFLAGS_i386= -msse4.1
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
post-patch: # workaround for https://gitlab.com/sevecekp/sph/-/issues/48
@${FIND} ${WRKSRC} -name "*.pro" | ${XARGS} ${REINPLACE_CMD} -e 's|c++14|c++17|' -e 's|-msse4.1||'
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>