summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorAndrew W Elble <aweits@rit.edu>2021-11-12 11:45:07 -0500
committerGitHub <noreply@github.com>2021-11-12 10:45:07 -0600
commit407f68a67b2e5649de50406e00457f7eb6a4471c (patch)
tree57c204241b0fcb7e026fd35720f861afec970558 /var
parentc5dd3265ed50157399a1401d7ebb8d109da1e393 (diff)
downloadspack-407f68a67b2e5649de50406e00457f7eb6a4471c.tar.gz
spack-407f68a67b2e5649de50406e00457f7eb6a4471c.tar.bz2
spack-407f68a67b2e5649de50406e00457f7eb6a4471c.tar.xz
spack-407f68a67b2e5649de50406e00457f7eb6a4471c.zip
new package: py-qiskit-aer and dependencies (#27198)
* new package: py-qiskit-aer and dependencies +updates for dependencies * flake8 fix * forgot homepages * incorporate feedback * py-cmake and py-ninja to py-tweedledum, prevent py-cmake from completely rebuilding cmake * py-ninja: avoid rebuilding ninja * other feedback fixes * additional fixes
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/muparserx/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-cmake/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-fastjsonschema/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-ninja/package.py35
-rw-r--r--var/spack/repos/builtin/packages/py-python-constraint/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-qiskit-aer/package.py56
-rw-r--r--var/spack/repos/builtin/packages/py-qiskit-terra/package.py34
-rw-r--r--var/spack/repos/builtin/packages/py-retworkx/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-scikit-build/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-symengine/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-tweedledum/package.py25
11 files changed, 235 insertions, 6 deletions
diff --git a/var/spack/repos/builtin/packages/muparserx/package.py b/var/spack/repos/builtin/packages/muparserx/package.py
new file mode 100644
index 0000000000..77997d7842
--- /dev/null
+++ b/var/spack/repos/builtin/packages/muparserx/package.py
@@ -0,0 +1,14 @@
+# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class Muparserx(CMakePackage):
+ """A C++ Library for Parsing Expressions with Strings, Complex
+ Numbers, Vectors, Matrices and more. """
+
+ homepage = "https://beltoforion.de/en/muparserx/"
+ url = "https://github.com/beltoforion/muparserx/archive/refs/tags/v4.0.8.tar.gz"
+
+ version('4.0.8', sha256='5913e0a4ca29a097baad1b78a4674963bc7a06e39ff63df3c73fbad6fadb34e1')
diff --git a/var/spack/repos/builtin/packages/py-cmake/package.py b/var/spack/repos/builtin/packages/py-cmake/package.py
index fab0dda083..7425eb116a 100644
--- a/var/spack/repos/builtin/packages/py-cmake/package.py
+++ b/var/spack/repos/builtin/packages/py-cmake/package.py
@@ -14,7 +14,14 @@ class PyCmake(PythonPackage):
homepage = "https://cmake.org/"
pypi = "cmake/cmake-3.18.0.tar.gz"
+ version('3.21.4', sha256='30fa5ed8a5ad66dcd263adb87f3ce3dc2d0ec0ac3958f5becff577e4b62cd065')
version('3.18.0', sha256='52b98c5ee70b5fa30a8623e96482227e065292f78794eb085fdf0fecb204b79b')
+ depends_on('cmake@3.21.4', type=('build', 'link', 'run'), when='@3.21.4')
depends_on('cmake@3.18.0', type=('build', 'link', 'run'), when='@3.18.0')
depends_on('py-scikit-build', type='build')
+
+ def build_args(self, spec, prefix):
+ args = []
+ args.append('-DBUILD_CMAKE_FROM_SOURCE=OFF')
+ return args
diff --git a/var/spack/repos/builtin/packages/py-fastjsonschema/package.py b/var/spack/repos/builtin/packages/py-fastjsonschema/package.py
new file mode 100644
index 0000000000..61b0093298
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-fastjsonschema/package.py
@@ -0,0 +1,15 @@
+# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyFastjsonschema(PythonPackage):
+ """Fast JSON schema validator for Python."""
+
+ homepage = "https://github.com/horejsek/python-fastjsonschema"
+ pypi = "fastjsonschema/fastjsonschema-2.15.1.tar.gz"
+
+ version('2.15.1', sha256='671f36d225b3493629b5e789428660109528f373cf4b8a22bac6fa2f8191c2d2')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-ninja/package.py b/var/spack/repos/builtin/packages/py-ninja/package.py
new file mode 100644
index 0000000000..944163676f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ninja/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+import os
+
+
+class PyNinja(PythonPackage):
+ """Ninja is a small build system with a focus on speed."""
+
+ homepage = "https://ninja-build.org"
+ pypi = "ninja/ninja-1.10.2.tar.gz"
+
+ version('1.10.2', sha256='bb5e54b9a7343b3a8fc6532ae2c169af387a45b0d4dd5b72c2803e21658c5791')
+
+ depends_on('cmake@3.6:', type='build')
+ depends_on('py-scikit-build', type='build')
+ depends_on('ninja@1.10.2', type=('build', 'run'), when='@1.10.2')
+
+ def patch(self):
+ os.unlink(join_path(self.stage.source_path, 'CMakeLists.txt'))
+
+ @run_after('install')
+ def installit(self):
+ syntax_file = os.path.join(self.spec['ninja'].prefix.misc,
+ 'ninja_syntax.py')
+ bin_file = os.path.join(self.spec['ninja'].prefix.bin,
+ 'ninja')
+ dst = os.path.join(site_packages_dir,
+ 'ninja')
+ dstbin = os.path.join(dst, 'data', 'bin')
+ mkdirp(dstbin)
+ os.symlink(bin_file, os.path.join(dstbin, 'ninja'))
+ os.symlink(syntax_file, os.path.join(dst, 'ninja_syntax.py'))
diff --git a/var/spack/repos/builtin/packages/py-python-constraint/package.py b/var/spack/repos/builtin/packages/py-python-constraint/package.py
new file mode 100644
index 0000000000..1e79c487a0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-python-constraint/package.py
@@ -0,0 +1,15 @@
+# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyPythonConstraint(PythonPackage):
+ """Constraint Solving Problem resolver for Python"""
+
+ homepage = "https://github.com/python-constraint/python-constraint"
+ pypi = "python-constraint/python-constraint-1.4.0.tar.bz2"
+
+ version('1.4.0', sha256='501d6f17afe0032dfc6ea6c0f8acc12e44f992733f00e8538961031ef27ccb8e')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-qiskit-aer/package.py b/var/spack/repos/builtin/packages/py-qiskit-aer/package.py
new file mode 100644
index 0000000000..9f4b6af754
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-qiskit-aer/package.py
@@ -0,0 +1,56 @@
+# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyQiskitAer(PythonPackage, CudaPackage):
+ """Aer is a high performance simulator for quantum circuits that
+ includes noise models"""
+
+ homepage = "https://github.com/Qiskit/qiskit-aer"
+ pypi = "qiskit-aer/qiskit-aer-0.9.1.tar.gz"
+
+ version('0.9.1', sha256='3bf5f615aaae7cc5f816c39a4e9108aabaed0cc894fb6f841e48ffd56574e7eb')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools@40.1.0:', type='build')
+ depends_on('py-numpy@1.16.3:', type=('build', 'run'))
+ depends_on('py-pybind11@2.6:', type='build')
+ depends_on('py-qiskit-terra@0.17.0:', type=('build', 'run'))
+ depends_on('py-scipy@1.0:', type=('build', 'run'))
+ depends_on('py-scikit-build@0.11.0:', type='build')
+ depends_on('py-cmake@:3.16,3.18:', type='build')
+ depends_on('mpi', when='+mpi')
+ depends_on('nlohmann-json@3.1.1:')
+ depends_on('spdlog@1.5.0:')
+ depends_on('muparserx@4.0.8:')
+ depends_on('blas')
+ depends_on('cuda@10.1:', when='+cuda')
+
+ variant('mpi', default=True, description='Enable MPI support')
+ variant('gdr', default=True, description='Enable GDR support')
+
+ def setup_build_environment(self, env):
+ env.set('DISABLE_CONAN', 'ON')
+ env.set('DISABLE_DEPENDENCY_INSTALL', '1')
+ env.set("CUDAHOSTCXX", spack_cxx)
+
+ def build_args(self, spec, prefix):
+ args = []
+ args.append('-DDISABLE_CONAN=ON')
+ if '~gdr' in self.spec:
+ args.append('-DAER_DISABLE_GDR=True')
+ else:
+ args.append('-DAER_DISABLE_GDR=False')
+ if '+mpi' in self.spec:
+ args.append('-DAER_MPI=True')
+ else:
+ args.append('-DAER_MPI=False')
+ if '+cuda' in self.spec:
+ args.append('-DAER_THRUST_BACKEND=CUDA')
+ cuda_archs = spec.variants['cuda_arch'].value
+ if 'none' not in cuda_archs:
+ args.append('-DCUDA_NVCC_FLAGS={0}'.
+ format(' '.join(self.cuda_flags(cuda_archs))))
+ return args
diff --git a/var/spack/repos/builtin/packages/py-qiskit-terra/package.py b/var/spack/repos/builtin/packages/py-qiskit-terra/package.py
new file mode 100644
index 0000000000..fbbef84f37
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-qiskit-terra/package.py
@@ -0,0 +1,34 @@
+# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyQiskitTerra(PythonPackage):
+ """Qiskit is an open-source SDK for working with quantum computers
+ at the level of extended quantum circuits, operators, and
+ algorithms."""
+
+ homepage = "https://github.com/Qiskit/qiskit-terra"
+ pypi = "qiskit-terra/qiskit-terra-0.18.3.tar.gz"
+
+ version('0.18.3', sha256='8737c8f1f4c6f29ec2fb02d73023f4854a396c33f78f4629a861a3e48fc789cc')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cython@0.27.1:', type='build')
+
+ depends_on('py-contextvars@2.4:', when='^python@:3.6', type=('build', 'run'))
+ depends_on('py-jsonschema@2.6:', type=('build', 'run'))
+ depends_on('py-retworkx@0.9.0:', type=('build', 'run'))
+ depends_on('py-numpy@1.17:', type=('build', 'run'))
+ depends_on('py-scipy@1.4:', type=('build', 'run'))
+ depends_on('py-ply@3.10:', type=('build', 'run'))
+ depends_on('py-psutil@5:', type=('build', 'run'))
+ depends_on('py-sympy@1.3:', type=('build', 'run'))
+ depends_on('py-dill@0.3:', type=('build', 'run'))
+ depends_on('py-fastjsonschema@2.10:', type=('build', 'run'))
+ depends_on('py-python-constraint@1.4:', type=('build', 'run'))
+ depends_on('py-python-dateutil@2.8.0:', type=('build', 'run'))
+ depends_on('py-symengine@0.7:', type=('build', 'run'))
+ depends_on('py-tweedledum@1.1:1', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-retworkx/package.py b/var/spack/repos/builtin/packages/py-retworkx/package.py
new file mode 100644
index 0000000000..512c67fbb4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-retworkx/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyRetworkx(PythonPackage):
+ """A high performance Python graph library implemented in Rust."""
+
+ homepage = "https://github.com/Qiskit/retworkx"
+ pypi = "retworkx/retworkx-0.5.0.tar.gz"
+
+ version('0.10.2', sha256='ba81cb527de7ff338575905bb6fcbebdf2ab18ae800169a77ab863f855bf0951')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-rust', type='build')
+ depends_on('py-numpy@1.16.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-scikit-build/package.py b/var/spack/repos/builtin/packages/py-scikit-build/package.py
index f6fab07c95..b8d49f7b95 100644
--- a/var/spack/repos/builtin/packages/py-scikit-build/package.py
+++ b/var/spack/repos/builtin/packages/py-scikit-build/package.py
@@ -20,8 +20,10 @@ class PyScikitBuild(PythonPackage):
maintainers = ['coreyjadams']
+ version('0.12.0', sha256='c32a415d2e7920a4a966b037403c93b02c8a958d8badf3c60abd4b4493f7d988')
version('0.10.0', sha256='2beec252813b20327072c15e9d997f15972aedcc6a130d0154979ff0fdb1b010')
depends_on('py-setuptools@28.0.0:', type=('build', 'run'))
depends_on('py-packaging', type=('build', 'run'))
depends_on('py-wheel@0.29.0:', type=('build', 'run'))
+ depends_on('py-distro', type=('build', 'run'), when='@0.11:')
diff --git a/var/spack/repos/builtin/packages/py-symengine/package.py b/var/spack/repos/builtin/packages/py-symengine/package.py
index 7b5b4d6eda..0411c455bf 100644
--- a/var/spack/repos/builtin/packages/py-symengine/package.py
+++ b/var/spack/repos/builtin/packages/py-symengine/package.py
@@ -12,16 +12,24 @@ class PySymengine(PythonPackage):
homepage = "https://github.com/symengine/symengine.py"
pypi = "symengine/symengine-0.2.0.tar.gz"
git = "https://github.com/symengine/symengine.py.git"
+ phases = ['install']
- version('develop', branch='master')
+ version('master', branch='master')
+ # pypi source doesn't have necessary files in cmake directory
+ version('0.8.1',
+ url='https://github.com/symengine/symengine.py/archive/refs/tags/v0.8.1.tar.gz',
+ sha256='02fe79e6d5e9b39a1d4e6fee05a2c1d1b10fd032157c7738ed97e32406ffb087')
version('0.2.0', sha256='78a14aea7aad5e7cbfb5cabe141581f9bba30e3c319690e5db8ad99fdf2d8885')
# Build dependencies
- depends_on('python@2.7:2.8,3.3:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.3:', type=('build', 'run'), when='@0.2.0')
+ depends_on('python@3.6:3', type=('build', 'run'), when='@0.8.1:')
depends_on('py-setuptools', type='build')
- depends_on('py-cython@0.19.1:', type='build')
- depends_on('cmake@2.8.7:', type='build')
- depends_on('symengine@0.2.0:')
+ depends_on('py-cython@0.19.1:', type='build', when='@0.2.0')
+ depends_on('py-cython@0.29.24:', type='build', when='@0.8.1:')
+ depends_on('cmake@2.8.12:', type='build')
+ depends_on('symengine@0.2.0', when='@0.2.0')
+ depends_on('symengine@0.8.1', when='@0.8.1')
- def build_args(self, spec, prefix):
+ def install_args(self, spec, prefix):
return ['--symengine-dir={0}'.format(spec['symengine'].prefix)]
diff --git a/var/spack/repos/builtin/packages/py-tweedledum/package.py b/var/spack/repos/builtin/packages/py-tweedledum/package.py
new file mode 100644
index 0000000000..e6ed41ffbf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-tweedledum/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyTweedledum(PythonPackage):
+ """tweedledum is a library for synthesis, compilation, and
+ optimization of quantum circuits. The library is written to be
+ scalable up to problem sizes in which quantum circuits outperform
+ classical ones. Also, it is meant to be used both independently
+ and alongside established tools."""
+
+ homepage = "https://github.com/boschmitt/tweedledum"
+ pypi = 'tweedledum/tweedledum-1.1.1.tar.gz'
+
+ version('1.1.1', sha256='58d6f7a988b10c31be3faa1faf3e58288ef7e8159584bfa6ded45742f390309f')
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools@42:', type='build')
+ depends_on('py-scikit-build@0.12:', type='build')
+ depends_on('py-cmake@3.18:', type='build')
+ depends_on('py-ninja', type='build')
+ depends_on('py-wheel', type='build')
+ depends_on('eigen@3.3:')
+ depends_on('nlohmann-json@3.9.0:')