git: 867a79859dec - main - math/spfft: New port: Sparse 3D FFT library

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Fri, 26 Aug 2022 07:53:16 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=867a79859decd999d7aeed0e2a4e896ed372a0cb

commit 867a79859decd999d7aeed0e2a4e896ed372a0cb
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-08-26 07:52:35 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-08-26 07:53:13 +0000

    math/spfft: New port: Sparse 3D FFT library
---
 math/Makefile        |  1 +
 math/spfft/Makefile  | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 math/spfft/distinfo  |  3 +++
 math/spfft/pkg-descr |  4 ++++
 math/spfft/pkg-plist | 39 +++++++++++++++++++++++++++++++++++++++
 5 files changed, 96 insertions(+)

diff --git a/math/Makefile b/math/Makefile
index b2859d659b91..e60a503a6fd2 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -1062,6 +1062,7 @@
     SUBDIR += spblas
     SUBDIR += spectra
     SUBDIR += speedcrunch
+    SUBDIR += spfft
     SUBDIR += spooles
     SUBDIR += spooles-mpich
     SUBDIR += spot
diff --git a/math/spfft/Makefile b/math/spfft/Makefile
new file mode 100644
index 000000000000..cf97f37f8391
--- /dev/null
+++ b/math/spfft/Makefile
@@ -0,0 +1,49 @@
+PORTNAME=	spfft
+DISTVERSIONPREFIX=	v
+DISTVERSION=	1.0.6
+CATEGORIES=	math
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Sparse 3D FFT library
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+LIB_DEPENDS=	libfftw3.so:math/fftw3
+
+USES=		cmake:testing compiler:c++11-lang
+USE_LDCONFIG=	yes
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	eth-cscs
+GH_PROJECT=	SpFFT
+
+CMAKE_TESTING_ON=	SPFFT_BUILD_TESTS
+CMAKE_TESTING_TARGET=	${ALL_TARGET}
+
+OPTIONS_DEFINE=		FORTRAN OPENMP
+OPTIONS_SINGLE=		MPI
+OPTIONS_SINGLE_MPI=	NOMPI MPICH OPENMPI
+OPTIONS_DEFAULT=	FORTRAN MPICH OPENMP
+OPTIONS_SUB=		yes
+
+FORTRAN_USES=		fortran
+FORTRAN_CMAKE_BOOL=	SPFFT_FORTRAN
+
+NOMPI_DESC=		Build without parallel processing support
+NOMPI_CMAKE_ON=		-DSPFFT_MPI=OFF
+
+MPICH_USES=		mpi:mpich
+MPICH_CMAKE_ON=		-DSPFFT_MPI=ON
+
+OPENMPI_USES=		mpi:openmpi
+OPENMPI_CMAKE_ON=	-DSPFFT_MPI=ON
+
+OPENMP_CMAKE_BOOL=	SPFFT_OMP
+
+post-test:
+	@cd ${BUILD_WRKSRC}/tests && \
+		./run_local_tests && \
+		./run_mpi_tests
+
+.include <bsd.port.mk>
diff --git a/math/spfft/distinfo b/math/spfft/distinfo
new file mode 100644
index 000000000000..d8a73a3d50d6
--- /dev/null
+++ b/math/spfft/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1661499073
+SHA256 (eth-cscs-SpFFT-v1.0.6_GH0.tar.gz) = d179ccdce65890587d0cbf72dc2e5ec0b200ffc56e723ed01a2f5063de6a8630
+SIZE (eth-cscs-SpFFT-v1.0.6_GH0.tar.gz) = 372347
diff --git a/math/spfft/pkg-descr b/math/spfft/pkg-descr
new file mode 100644
index 000000000000..98faf94b8cc1
--- /dev/null
+++ b/math/spfft/pkg-descr
@@ -0,0 +1,4 @@
+SpFFT - A 3D FFT library for sparse frequency domain data written in C++ with
+support for MPI, OpenMP, CUDA and ROCm.
+
+WWW: https://github.com/eth-cscs/SpFFT
diff --git a/math/spfft/pkg-plist b/math/spfft/pkg-plist
new file mode 100644
index 000000000000..e94027231b25
--- /dev/null
+++ b/math/spfft/pkg-plist
@@ -0,0 +1,39 @@
+include/spfft/config.h
+include/spfft/errors.h
+include/spfft/exceptions.hpp
+include/spfft/grid.h
+include/spfft/grid.hpp
+include/spfft/grid_float.h
+include/spfft/grid_float.hpp
+include/spfft/multi_transform.h
+include/spfft/multi_transform.hpp
+include/spfft/multi_transform_float.h
+include/spfft/multi_transform_float.hpp
+include/spfft/spfft.f90
+include/spfft/spfft.h
+include/spfft/spfft.hpp
+%%FORTRAN%%include/spfft/spfft.mod
+include/spfft/spfft_export.h
+include/spfft/transform.h
+include/spfft/transform.hpp
+include/spfft/transform_float.h
+include/spfft/transform_float.hpp
+include/spfft/types.h
+lib/cmake/SpFFT/SpFFTConfig.cmake
+lib/cmake/SpFFT/SpFFTConfigVersion.cmake
+lib/cmake/SpFFT/SpFFTSharedConfig.cmake
+lib/cmake/SpFFT/SpFFTSharedConfigVersion.cmake
+lib/cmake/SpFFT/SpFFTSharedTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/SpFFT/SpFFTSharedTargets.cmake
+lib/cmake/SpFFT/SpFFTTargets.cmake
+lib/cmake/SpFFT/modules/FindARMPL.cmake
+lib/cmake/SpFFT/modules/FindFFTW.cmake
+lib/cmake/SpFFT/modules/FindFFTWF.cmake
+lib/cmake/SpFFT/modules/FindHIP.cmake
+lib/cmake/SpFFT/modules/FindHIP/run_hipcc.cmake
+lib/cmake/SpFFT/modules/FindHIP/run_make2cmake.cmake
+lib/cmake/SpFFT/modules/FindMKLSequential.cmake
+lib/libspfft.so
+lib/libspfft.so.1
+lib/libspfft.so.1.0.6
+libdata/pkgconfig/SpFFT.pc