ADD: working pipeline to test HyQuas and HiQsimulator

This commit is contained in:
Germann Elsa Sylvia
2022-10-18 16:29:39 +02:00
parent c7120345ed
commit b51b0ed131
16 changed files with 42 additions and 20 deletions

View 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()

View 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

View 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"))