diff options
Diffstat (limited to 'var/spack/repos/builtin/packages/axl/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/axl/package.py | 139 |
1 files changed, 75 insertions, 64 deletions
diff --git a/var/spack/repos/builtin/packages/axl/package.py b/var/spack/repos/builtin/packages/axl/package.py index 52e9314cc5..915ed6bc62 100644 --- a/var/spack/repos/builtin/packages/axl/package.py +++ b/var/spack/repos/builtin/packages/axl/package.py @@ -8,86 +8,97 @@ 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.") + 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.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.3.0', when='@0.6.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') + 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.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.3.0", when="@0.6.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)) + 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') + 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())) + 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.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')) + 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("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')) + if spec.satisfies("@0.6.0:"): + args.append(self.define_from_variant("ENABLE_PTHREADS", "pthreads")) return args |