git: 55f38edcbe54 - main - math/dihydrogen: New port: Dense and sparse linear algebra, conic optimization, lattice reduction

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Fri, 02 Dec 2022 20:25:17 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=55f38edcbe54199f24cfebae4d81bb778bdbce54

commit 55f38edcbe54199f24cfebae4d81bb778bdbce54
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-12-02 15:44:59 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-12-02 20:25:14 +0000

    math/dihydrogen: New port: Dense and sparse linear algebra, conic optimization, lattice reduction
---
 math/Makefile             |  1 +
 math/dihydrogen/Makefile  | 37 ++++++++++++++++++++++++++
 math/dihydrogen/distinfo  |  3 +++
 math/dihydrogen/pkg-descr |  4 +++
 math/dihydrogen/pkg-plist | 66 +++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 111 insertions(+)

diff --git a/math/Makefile b/math/Makefile
index 8d540c7bf59d..46326e070e49 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -266,6 +266,7 @@
     SUBDIR += dbcsr
     SUBDIR += deal.ii
     SUBDIR += dieharder
+    SUBDIR += dihydrogen
     SUBDIR += dionysus
     SUBDIR += disco
     SUBDIR += djbfft
diff --git a/math/dihydrogen/Makefile b/math/dihydrogen/Makefile
new file mode 100644
index 000000000000..f7e4d8437a2a
--- /dev/null
+++ b/math/dihydrogen/Makefile
@@ -0,0 +1,37 @@
+PORTNAME=	dihydrogen
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.2.1-36
+DISTVERSIONSUFFIX=	-g4bda15e
+CATEGORIES=	math
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Dense and sparse linear algebra, conic optimization, lattice reduction
+WWW=		https://github.com/LLNL/DiHydrogen
+
+LICENSE=	BSD2CLAUSE
+
+LIB_DEPENDS=	libfmt.so:devel/libfmt \
+		libspdlog.so:devel/spdlog
+TEST_DEPENDS=	catch>0:devel/catch
+
+USES=		cmake:testing compiler:c++17-lang
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	LLNL
+GH_PROJECT=	DiHydrogen
+
+LDFLAGS+=	${MPI_LIBS} # no MPI libs linkage might be intentional in the project (to allow lazy linking to any MPI implementaton)
+
+CMAKE_ON=	BUILD_SHARED_LIBS
+CMAKE_OFF=	H2_ENABLE_TESTS
+CMAKE_TESTING_ON=	H2_ENABLE_TESTS
+
+OPTIONS_SINGLE=		MPI
+OPTIONS_SINGLE_MPI=	MPICH OPENMPI
+OPTIONS_DEFAULT=	OPENMPI
+
+MPICH_USES=		mpi:mpich
+
+OPENMPI_USES=		mpi:openmpi
+
+.include <bsd.port.mk>
diff --git a/math/dihydrogen/distinfo b/math/dihydrogen/distinfo
new file mode 100644
index 000000000000..3011d465164f
--- /dev/null
+++ b/math/dihydrogen/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1670005727
+SHA256 (LLNL-DiHydrogen-v0.2.1-36-g4bda15e_GH0.tar.gz) = 4b0c6f29c13f65636c4afb048a7853bd98ad39befd123e3a6801a725bd5b323c
+SIZE (LLNL-DiHydrogen-v0.2.1-36-g4bda15e_GH0.tar.gz) = 352759
diff --git a/math/dihydrogen/pkg-descr b/math/dihydrogen/pkg-descr
new file mode 100644
index 000000000000..74631b0042e0
--- /dev/null
+++ b/math/dihydrogen/pkg-descr
@@ -0,0 +1,4 @@
+DiHydrogen is the second version of the Hydrogen fork of the well-known
+distributed linear algebra library, Elemental. DiHydrogen aims to be a basic
+distributed multilinear algebra interface with a particular emphasis on the
+needs of the distributed machine learning effort, LBANN.
diff --git a/math/dihydrogen/pkg-plist b/math/dihydrogen/pkg-plist
new file mode 100644
index 000000000000..b37cd06274a2
--- /dev/null
+++ b/math/dihydrogen/pkg-plist
@@ -0,0 +1,66 @@
+include/h2/Version.hpp
+include/h2/gpu/error.hpp
+include/h2/gpu/logger.hpp
+include/h2/gpu/memory_utils.hpp
+include/h2/gpu/runtime.hpp
+include/h2/meta/Core.hpp
+include/h2/meta/PartialFunctions.hpp
+include/h2/meta/TypeList.hpp
+include/h2/meta/core/Eq.hpp
+include/h2/meta/core/IfThenElse.hpp
+include/h2/meta/core/Invocable.hpp
+include/h2/meta/core/Lazy.hpp
+include/h2/meta/core/SFINAE.hpp
+include/h2/meta/core/ValueAsType.hpp
+include/h2/meta/partial_functions/Apply.hpp
+include/h2/meta/partial_functions/MakeFunction.hpp
+include/h2/meta/partial_functions/Placeholders.hpp
+include/h2/meta/typelist/Append.hpp
+include/h2/meta/typelist/At.hpp
+include/h2/meta/typelist/Expand.hpp
+include/h2/meta/typelist/Find.hpp
+include/h2/meta/typelist/HaskellAccessors.hpp
+include/h2/meta/typelist/Length.hpp
+include/h2/meta/typelist/LispAccessors.hpp
+include/h2/meta/typelist/Member.hpp
+include/h2/meta/typelist/Remove.hpp
+include/h2/meta/typelist/RemoveAll.hpp
+include/h2/meta/typelist/Replace.hpp
+include/h2/meta/typelist/ReplaceAll.hpp
+include/h2/meta/typelist/Select.hpp
+include/h2/meta/typelist/SelectAll.hpp
+include/h2/meta/typelist/Size.hpp
+include/h2/meta/typelist/Sort.hpp
+include/h2/meta/typelist/TypeList.hpp
+include/h2/meta/typelist/Unique.hpp
+include/h2/patterns/factory/CopyFactory.hpp
+include/h2/patterns/factory/DefaultErrorPolicy.hpp
+include/h2/patterns/factory/NullptrErrorPolicy.hpp
+include/h2/patterns/factory/ObjectFactory.hpp
+include/h2/patterns/factory/PrototypeFactory.hpp
+include/h2/patterns/multimethods/SwitchDispatcher.hpp
+include/h2/utils/Error.hpp
+include/h2/utils/Logger.hpp
+include/h2_config.hpp
+lib/cmake/dihydrogen/DiHydrogenConfig.cmake
+lib/cmake/dihydrogen/DiHydrogenConfigVersion.cmake
+lib/cmake/dihydrogen/DiHydrogenTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/dihydrogen/DiHydrogenTargets.cmake
+lib/cmake/dihydrogen/modules/FindBLASImpl.cmake
+lib/cmake/dihydrogen/modules/FindBreathe.cmake
+lib/cmake/dihydrogen/modules/FindCUB.cmake
+lib/cmake/dihydrogen/modules/FindHalf.cmake
+lib/cmake/dihydrogen/modules/FindNVSHMEM.cmake
+lib/cmake/dihydrogen/modules/FindNVTX.cmake
+lib/cmake/dihydrogen/modules/FindRoctracer.cmake
+lib/cmake/dihydrogen/modules/FindSphinx.cmake
+lib/cmake/dihydrogen/modules/FindcuDNN.cmake
+lib/cmake/dihydrogen/modules/H2AddClangFormat.cmake
+lib/cmake/dihydrogen/modules/H2CMakeUtils.cmake
+lib/cmake/dihydrogen/modules/H2CXXCodeCoverage.cmake
+lib/cmake/dihydrogen/modules/H2CXXFeatureDetection.cmake
+lib/cmake/dihydrogen/modules/H2VerifyMPIFeatures.cmake
+lib/cmake/dihydrogen/modules/SetupCUDAToolkit.cmake
+lib/cmake/dihydrogen/modules/SetupCXX.cmake
+lib/cmake/dihydrogen/modules/SetupMPI.cmake
+lib/libH2Core.so