mirror of https://github.com/Qiskit/qiskit-aer.git
115 lines
3.7 KiB
Python
115 lines
3.7 KiB
Python
# pylint: disable=invalid-name
|
|
|
|
"""
|
|
Main setup file for qiskit-aer
|
|
"""
|
|
import os
|
|
import platform
|
|
|
|
import setuptools
|
|
from skbuild import setup
|
|
|
|
PACKAGE_NAME = os.getenv("QISKIT_AER_PACKAGE_NAME", "qiskit-aer")
|
|
CUDA_MAJOR = os.getenv("QISKIT_AER_CUDA_MAJOR", "12")
|
|
|
|
# Allow build without the CUDA requirements. This is useful in case one intends to use a CUDA that exists in the host system.
|
|
ADD_CUDA_REQUIREMENTS = (
|
|
False
|
|
if os.getenv("QISKIT_ADD_CUDA_REQUIREMENTS", "true").lower() in ["false", "off", "no"]
|
|
else True
|
|
)
|
|
|
|
requirements = [
|
|
"qiskit>=1.1.0",
|
|
"numpy>=1.16.3",
|
|
"scipy>=1.0",
|
|
"psutil>=5",
|
|
]
|
|
|
|
classifiers = [
|
|
"Environment :: Console",
|
|
"License :: OSI Approved :: Apache Software License",
|
|
"Intended Audience :: Developers",
|
|
"Intended Audience :: Science/Research",
|
|
"Operating System :: Microsoft :: Windows",
|
|
"Operating System :: MacOS",
|
|
"Operating System :: POSIX :: Linux",
|
|
"Programming Language :: C++",
|
|
"Programming Language :: Python :: 3 :: Only",
|
|
"Programming Language :: Python :: 3.7",
|
|
"Programming Language :: Python :: 3.8",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Topic :: Scientific/Engineering",
|
|
]
|
|
|
|
|
|
# ROCm is expected to be available in the target system to enable CDNA GPUs, so no
|
|
# requirements to be loaded. Also, no ROCm related classifiers are in place that
|
|
# could be used here.
|
|
if ADD_CUDA_REQUIREMENTS and "gpu" in PACKAGE_NAME and "rocm" not in PACKAGE_NAME:
|
|
if "11" in CUDA_MAJOR:
|
|
requirements_cuda = [
|
|
"nvidia-cuda-runtime-cu11>=11.8.89",
|
|
"nvidia-cublas-cu11>=11.11.3.6",
|
|
"nvidia-cusolver-cu11>=11.4.1.48",
|
|
"nvidia-cusparse-cu11>=11.7.5.86",
|
|
"cuquantum-cu11>=23.3.0",
|
|
]
|
|
classifiers_cuda = [
|
|
"Environment :: GPU :: NVIDIA CUDA :: 11",
|
|
]
|
|
else:
|
|
requirements_cuda = [
|
|
"nvidia-cuda-runtime-cu12>=12.1.105",
|
|
"nvidia-nvjitlink-cu12",
|
|
"nvidia-cublas-cu12>=12.1.3.1",
|
|
"nvidia-cusolver-cu12>=11.4.5.107",
|
|
"nvidia-cusparse-cu12>=12.1.0.106",
|
|
"cuquantum-cu12>=23.3.0",
|
|
]
|
|
classifiers_cuda = [
|
|
"Environment :: GPU :: NVIDIA CUDA :: 12",
|
|
]
|
|
requirements.extend(requirements_cuda)
|
|
classifiers.extend(classifiers_cuda)
|
|
|
|
VERSION_PATH = os.path.join(os.path.dirname(__file__), "qiskit_aer", "VERSION.txt")
|
|
with open(VERSION_PATH, "r") as version_file:
|
|
VERSION = version_file.read().strip()
|
|
|
|
README_PATH = os.path.join(os.path.abspath(os.path.dirname(__file__)), "README.md")
|
|
with open(README_PATH) as readme_file:
|
|
README = readme_file.read()
|
|
|
|
|
|
cmake_args = []
|
|
is_win_32_bit = platform.system() == "Windows" and platform.architecture()[0] == "32bit"
|
|
if is_win_32_bit:
|
|
cmake_args.append("-DCMAKE_GENERATOR_PLATFORM=Win32")
|
|
|
|
|
|
setup(
|
|
name=PACKAGE_NAME,
|
|
version=VERSION,
|
|
packages=setuptools.find_packages(exclude=["test*"]),
|
|
cmake_source_dir=".",
|
|
description="Aer - High performance simulators for Qiskit",
|
|
long_description=README,
|
|
long_description_content_type="text/markdown",
|
|
url="https://github.com/Qiskit/qiskit-aer",
|
|
author="AER Development Team",
|
|
author_email="qiskit@us.ibm.com",
|
|
license="Apache 2.0",
|
|
classifiers=classifiers,
|
|
python_requires=">=3.7",
|
|
install_requires=requirements,
|
|
include_package_data=False,
|
|
package_data={"qiskit_aer": ["VERSION.txt"], "qiskit_aer.library": ["*.csv"]},
|
|
cmake_args=cmake_args,
|
|
keywords="qiskit, simulator, quantum computing, backend",
|
|
zip_safe=False,
|
|
)
|