git: 1040fd38d58f - main - science/dd_package: New port: MQT decision diagram package tailored to quantum computing

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Wed, 02 Nov 2022 16:22:59 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1040fd38d58f27fd6897a72354ad980736395097

commit 1040fd38d58f27fd6897a72354ad980736395097
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-11-02 00:02:54 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-11-02 16:22:56 +0000

    science/dd_package: New port: MQT decision diagram package tailored to quantum computing
---
 science/Makefile                                   |  1 +
 science/dd_package/Makefile                        | 29 ++++++++++++++++++++++
 science/dd_package/distinfo                        |  7 ++++++
 science/dd_package/files/patch-CMakeLists.txt      | 11 ++++++++
 .../dd_package/files/patch-include_dd_Package.hpp  | 10 ++++++++
 science/dd_package/pkg-descr                       |  4 +++
 science/dd_package/pkg-plist                       | 17 +++++++++++++
 7 files changed, 79 insertions(+)

diff --git a/science/Makefile b/science/Makefile
index f27b0eee9581..832f4b446b50 100644
--- a/science/Makefile
+++ b/science/Makefile
@@ -66,6 +66,7 @@
     SUBDIR += dakota
     SUBDIR += dalton
     SUBDIR += dcl
+    SUBDIR += dd_package
     SUBDIR += devisor
     SUBDIR += dftbplus
     SUBDIR += dftd4
diff --git a/science/dd_package/Makefile b/science/dd_package/Makefile
new file mode 100644
index 000000000000..4e8a919ddbba
--- /dev/null
+++ b/science/dd_package/Makefile
@@ -0,0 +1,29 @@
+PORTNAME=	dd_package
+DISTVERSIONPREFIX=	v
+DISTVERSION=	2.1.0
+CATEGORIES=	science # quantum-computing
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	MQT decision diagram package tailored to quantum computing
+WWW=		https://www.cda.cit.tum.de/research/quantum_dd/
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		cmake:testing compiler:c++17-lang
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	cda-tum
+GH_TUPLE=	google:benchmark:398a8ac:benchmark/extern/benchmark \
+		google:googletest:3026483:googletest/extern/googletest
+
+CMAKE_OFF=	BUILD_DD_PACKAGE_TESTS
+CMAKE_TESTING_ON=	BUILD_DD_PACKAGE_TESTS # one test fails: DDPackageTest.RequestInvalidPackageSize, see https://github.com/cda-tum/dd_package/issues/117
+
+NO_BUILD=	yes
+NO_ARCH=	yes
+
+do-install: # workaround for https://github.com/cda-tum/dd_package/issues/115
+	@cd ${WRKSRC}/include && ${COPYTREE_SHARE} dd ${STAGEDIR}${PREFIX}/include
+
+.include <bsd.port.mk>
diff --git a/science/dd_package/distinfo b/science/dd_package/distinfo
new file mode 100644
index 000000000000..ecf3a4baff73
--- /dev/null
+++ b/science/dd_package/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1667345831
+SHA256 (cda-tum-dd_package-v2.1.0_GH0.tar.gz) = 5b8ad683995e61505e15c13beafa9e5e1946b14b9e6ba9e5f8c1767af4496f14
+SIZE (cda-tum-dd_package-v2.1.0_GH0.tar.gz) = 74748
+SHA256 (google-benchmark-398a8ac_GH0.tar.gz) = 2991bb75b3454e008152cd14c448608e8133fe0f832eb4ce1b8e06f0f72d24ad
+SIZE (google-benchmark-398a8ac_GH0.tar.gz) = 196562
+SHA256 (google-googletest-3026483_GH0.tar.gz) = 1790cf41d6b9b023e1751888155b4fe1a20cd5b9842c3aa67633aac4b2610ba2
+SIZE (google-googletest-3026483_GH0.tar.gz) = 859168
diff --git a/science/dd_package/files/patch-CMakeLists.txt b/science/dd_package/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..256cced4a13b
--- /dev/null
+++ b/science/dd_package/files/patch-CMakeLists.txt
@@ -0,0 +1,11 @@
+--- CMakeLists.txt.orig	2022-11-01 23:29:46 UTC
++++ CMakeLists.txt
+@@ -87,7 +87,7 @@ macro(enable_lto TARGET_NAME)
+ endmacro()
+ 
+ # add test code
+-if (CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME OR BUILD_DD_PACKAGE_TESTS)
++if (BUILD_DD_PACKAGE_TESTS)
+ 	if (NOT EXISTS "${PROJECT_SOURCE_DIR}/extern/googletest/CMakeLists.txt")
+ 		message(FATAL_ERROR "GoogleTest submodule not cloned properly. Please run `git submodule update --init --recursive` from the main project directory")
+ 	endif ()
diff --git a/science/dd_package/files/patch-include_dd_Package.hpp b/science/dd_package/files/patch-include_dd_Package.hpp
new file mode 100644
index 000000000000..a8d024a00527
--- /dev/null
+++ b/science/dd_package/files/patch-include_dd_Package.hpp
@@ -0,0 +1,10 @@
+--- include/dd/Package.hpp.orig	2022-11-01 23:39:28 UTC
++++ include/dd/Package.hpp
+@@ -39,6 +39,7 @@
+ #include <random>
+ #include <regex>
+ #include <set>
++#include <stack>
+ #include <stdexcept>
+ #include <string>
+ #include <type_traits>
diff --git a/science/dd_package/pkg-descr b/science/dd_package/pkg-descr
new file mode 100644
index 000000000000..33affdca0e3a
--- /dev/null
+++ b/science/dd_package/pkg-descr
@@ -0,0 +1,4 @@
+A decision diagram package tailored to quantum computing developed by the Chair
+for Design Automation at the Technical University of Munich. The DD Package is
+part of the Munich Quantum Toolkit (MQT; formerly known as JKQ and developed by
+the Institute for Integrated Circuits at the Johannes Kepler University Linz).
diff --git a/science/dd_package/pkg-plist b/science/dd_package/pkg-plist
new file mode 100644
index 000000000000..5f678a8d30bf
--- /dev/null
+++ b/science/dd_package/pkg-plist
@@ -0,0 +1,17 @@
+include/dd/Complex.hpp
+include/dd/ComplexCache.hpp
+include/dd/ComplexNumbers.hpp
+include/dd/ComplexTable.hpp
+include/dd/ComplexValue.hpp
+include/dd/ComputeTable.hpp
+include/dd/Control.hpp
+include/dd/Definitions.hpp
+include/dd/Edge.hpp
+include/dd/Export.hpp
+include/dd/GateMatrixDefinitions.hpp
+include/dd/Node.hpp
+include/dd/NoiseOperationTable.hpp
+include/dd/Package.hpp
+include/dd/ToffoliTable.hpp
+include/dd/UnaryComputeTable.hpp
+include/dd/UniqueTable.hpp