ADD: working pipeline to test HyQuas and HiQsimulator
This commit is contained in:
23
env/merlin/py-hiqsimulator/packages/py-hiqsimulator/cmake-glog.patch
vendored
Normal file
23
env/merlin/py-hiqsimulator/packages/py-hiqsimulator/cmake-glog.patch
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
diff --git a/cmake/Findglog.cmake b/cmake/Findglog.cmake
|
||||
index d3123c4..3425d0d 100644
|
||||
--- a/cmake/Findglog.cmake
|
||||
+++ b/cmake/Findglog.cmake
|
||||
@@ -176,17 +176,8 @@ if(glog_FOUND)
|
||||
gflags::gflags)
|
||||
else()
|
||||
# Make sure that the glog::glog target depends on gflags::gflags
|
||||
- get_target_property(_libraries glog::glog INTERFACE_LINK_LIBRARIES)
|
||||
- set(_new_libraries)
|
||||
- foreach(_dep ${_libraries})
|
||||
- if(_dep STREQUAL gflags)
|
||||
- list(APPEND _new_libraries gflags::gflags)
|
||||
- else()
|
||||
- list(APPEND _new_libraries ${_dep})
|
||||
- endif()
|
||||
- endforeach()
|
||||
set_target_properties(glog::glog
|
||||
- PROPERTIES INTERFACE_LINK_LIBRARIES ${_new_libraries})
|
||||
+ PROPERTIES INTERFACE_LINK_LIBRARIES gflags::gflags)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
58
env/merlin/py-hiqsimulator/packages/py-hiqsimulator/package.py
vendored
Normal file
58
env/merlin/py-hiqsimulator/packages/py-hiqsimulator/package.py
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
# Copyright 2013-2022 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)
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# If you submit this package back to Spack as a pull request,
|
||||
# please first remove this boilerplate and all FIXME comments.
|
||||
#
|
||||
# This is a template package file for Spack. We've put "FIXME"
|
||||
# next to all the things you'll want to change. Once you've handled
|
||||
# them, you can save this file and test your package like this:
|
||||
#
|
||||
# spack install py-hiqsimulator
|
||||
#
|
||||
# You can edit this file again by typing:
|
||||
#
|
||||
# spack edit py-hiqsimulator
|
||||
#
|
||||
# See the Spack documentation for more information on packaging.
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class PyHiqsimulator(PythonPackage):
|
||||
"""Huawei HiQ is an open-source software framework for quantum computing. It is based on and compatible with ProjectQ.
|
||||
It aims at providing tools which facilitate inventing, implementing, testing, debugging, and running quantum algorithms
|
||||
using either classical hardware or actual quantum devices. You can find more about Huawei HiQ at
|
||||
http://hiq.huaweicloud.com"""
|
||||
|
||||
homepage = "https://hiqsimulator.readthedocs.io/en/latest/index.html"
|
||||
|
||||
git = "https://github.com/Huawei-HiQ/HiQsimulator"
|
||||
|
||||
maintainers = ["germanne"]
|
||||
|
||||
version('develop', submodules=True)
|
||||
|
||||
depends_on('py-setuptools@44.1.0', type='build')
|
||||
depends_on('py-mpi4py', type=("run"))
|
||||
depends_on('py-projectq@0.4.1', type=("run"))
|
||||
|
||||
depends_on("cmake", type="build")
|
||||
depends_on("openmpi", type=("run", "link"))
|
||||
depends_on("boost+mpi+program_options+numpy+python+system+thread+timer+chrono+atomic", type=("build", "run", "link"))
|
||||
depends_on("glog", type=("build", "run", "link"))
|
||||
|
||||
patch('cmake-glog.patch')
|
||||
|
||||
def setup_build_environment(self, env):
|
||||
env.set('BOOST_ROOT', self.spec['boost'].prefix)
|
||||
|
||||
def install_options(self, spec, prefix):
|
||||
# FIXME: Add options to pass to setup.py install
|
||||
# FIXME: If not needed, delete this function
|
||||
options = []
|
||||
return options
|
||||
38
env/merlin/py-hiqsimulator/packages/py-projectq/package.py
vendored
Normal file
38
env/merlin/py-hiqsimulator/packages/py-projectq/package.py
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
# Copyright 2013-2022 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)
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class PyProjectq(PythonPackage):
|
||||
"""
|
||||
ProjectQ is an open-source software framework for quantum computing started
|
||||
at ETH Zurich. It allows users to implement their quantum programs in
|
||||
Python using a powerful and intuitive syntax. ProjectQ can then translate
|
||||
these programs to any type of back-end, be it a simulator run on a
|
||||
classical computer of an actual quantum chip.
|
||||
"""
|
||||
|
||||
# Homepage and git repository
|
||||
homepage = "https://projectq.ch"
|
||||
|
||||
url = 'https://github.com/ProjectQ-Framework/ProjectQ/archive/refs/tags/v0.4.1.tar.gz'
|
||||
git = 'https://github.com/ProjectQ-Framework/ProjectQ.git'
|
||||
|
||||
# Versions
|
||||
version("develop", branch="develop")
|
||||
version("0.3.6", commit="fa484fe037a3a1772127bbd00fe4628ddba34611")
|
||||
version("0.4.1", sha256="008f39f9e9cda47dde97020f640f89a9ee1488d37ab45d8fad78c112b15e695d")
|
||||
version("0.6.1", sha256="8d8f8694c49b85714957d6db9154af3b2f769133256157435fbc103c2dbcf1ae")
|
||||
|
||||
# Dependencies
|
||||
depends_on("py-setuptools", type=("build"))
|
||||
depends_on("py-numpy", type=("build", "run"))
|
||||
depends_on("py-scipy", type=("build", "run"))
|
||||
depends_on("py-future", type=("build", "run"))
|
||||
depends_on("py-requests", type=("build", "run"))
|
||||
# conflict with pybind11@2.2.0 -> see requirements.txt
|
||||
depends_on("py-pybind11@1.7:2.1,2.2.1:", type=("build", "run"))
|
||||
depends_on("py-networkx", type=("run"))
|
||||
Reference in New Issue
Block a user