
VeloC/SCR component releases needed for upcoming VeloC release. * AXL v0.8.0 * ER v0.4.0 * KVTree v1.4.0 * Rankstr v0.3.0 * Redset v0.3.0 * Shuffile v0.3.0 * Spath v0.3.0 Added some dependency compatibility restraints as the new componenet versions have a change to how their cmake config works.
109 lines
4.1 KiB
Python
109 lines
4.1 KiB
Python
# Copyright 2013-2023 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.error import SpackError
|
|
from spack.package import *
|
|
|
|
|
|
def async_api_validator(pkg_name, variant_name, values):
|
|
if "none" in values and len(values) != 1:
|
|
raise SpackError("The value 'none' is not usable" " with other async_api values.")
|
|
if "intel_cppr" in values and "cray_dw" in values:
|
|
raise SpackError("The 'intel_cppr' and 'cray_dw' asynchronous" " APIs are incompatible.")
|
|
|
|
|
|
class Axl(CMakePackage):
|
|
"""Asynchronous transfer library"""
|
|
|
|
homepage = "https://github.com/ecp-veloc/AXL"
|
|
url = "https://github.com/ecp-veloc/AXL/archive/v0.4.0.tar.gz"
|
|
git = "https://github.com/ecp-veloc/axl.git"
|
|
tags = ["ecp"]
|
|
|
|
maintainers("CamStan", "gonsie")
|
|
|
|
version("main", branch="main")
|
|
version("0.8.0", sha256="9fcd4eae143a67ff02622feda2a541b85e9a108749c039faeb473cbbc2330459")
|
|
version("0.7.1", sha256="526a055c072c85cc989beca656717e06b128f148fda8eb19d1d9b43a3325b399")
|
|
version("0.7.0", sha256="840ef61eadc9aa277d128df08db4cdf6cfa46b8fcf47b0eee0972582a61fbc50")
|
|
version("0.6.0", sha256="86edb35f99b63c0ffb9dd644a019a63b062923b4efc95c377e92a1b13e79f537")
|
|
version("0.5.0", sha256="9f3bbb4de563896551bdb68e889ba93ea1984586961ad8c627ed766bff020acf")
|
|
version("0.4.0", sha256="0530142629d77406a00643be32492760c2cf12d1b56c6b6416791c8ff5298db2")
|
|
version("0.3.0", sha256="737d616b669109805f7aed1858baac36c97bf0016e1115b5c56ded05d792613e")
|
|
version(
|
|
"0.2.0",
|
|
sha256="d04a445f102b438fe96a1ff3429790b0c035f0d23c2797bb5601a00b582a71fc",
|
|
deprecated=True,
|
|
)
|
|
version(
|
|
"0.1.1",
|
|
sha256="36edac007938fe47d979679414c5c27938944d32536e2e149f642916c5c08eaa",
|
|
deprecated=True,
|
|
)
|
|
|
|
depends_on("kvtree")
|
|
depends_on("zlib", type="link")
|
|
|
|
depends_on("kvtree@main", when="@main")
|
|
depends_on("kvtree@:1.2.0", when="@:0.5.0")
|
|
depends_on("kvtree@1.3.0", when="@0.6.0:0.7.1")
|
|
depends_on("kvtree@1.4.0:", when="@0.8.0:")
|
|
|
|
variant(
|
|
"async_api",
|
|
default="daemon",
|
|
description="Set of async transfer APIs to enable",
|
|
values=["cray_dw", "intel_cppr", "daemon", "none"],
|
|
multi=True,
|
|
validator=async_api_validator,
|
|
)
|
|
|
|
variant("pthreads", default=True, description="Enable Pthread support", when="@0.6:")
|
|
|
|
variant("bbapi", default=True, description="Enable IBM BBAPI support")
|
|
|
|
variant(
|
|
"bbapi_fallback",
|
|
default=False,
|
|
description="Using BBAPI, if source or destination don't support \
|
|
file extents then fallback to pthreads",
|
|
)
|
|
|
|
variant("dw", default=False, description="Enable Cray DataWarp support")
|
|
|
|
variant("shared", default=True, description="Build with shared libraries")
|
|
depends_on("kvtree+shared", when="@0.5: +shared")
|
|
depends_on("kvtree~shared", when="@0.5: ~shared")
|
|
|
|
def cmake_args(self):
|
|
spec = self.spec
|
|
args = []
|
|
args.append(self.define("WITH_KVTREE_PREFIX", spec["kvtree"].prefix))
|
|
|
|
if spec.satisfies("@:0.3.0"):
|
|
apis = list(spec.variants["async_api"].value)
|
|
if "daemon" in apis:
|
|
args.append("-DAXL_ASYNC_DAEMON=ON")
|
|
apis.remove("daemon")
|
|
|
|
for api in apis:
|
|
args.append("-DAXL_ASYNC_API={0}".format(api.upper()))
|
|
|
|
if spec.satisfies("@0.4.0:"):
|
|
args.append(self.define_from_variant("ENABLE_BBAPI_FALLBACK", "bbapi_fallback"))
|
|
|
|
if spec.satisfies("@0.5.0:"):
|
|
args.append(self.define_from_variant("ENABLE_IBM_BBAPI", "bbapi"))
|
|
args.append(self.define_from_variant("ENABLE_CRAY_DW", "dw"))
|
|
args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared"))
|
|
else:
|
|
if spec.satisfies("platform=cray"):
|
|
args.append(self.define("AXL_LINK_STATIC", True))
|
|
|
|
if spec.satisfies("@0.6.0:"):
|
|
args.append(self.define_from_variant("ENABLE_PTHREADS", "pthreads"))
|
|
|
|
return args
|