summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/mercury/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/mercury/package.py')
-rw-r--r--var/spack/repos/builtin/packages/mercury/package.py186
1 files changed, 92 insertions, 94 deletions
diff --git a/var/spack/repos/builtin/packages/mercury/package.py b/var/spack/repos/builtin/packages/mercury/package.py
index aa697d6a66..43a4eef686 100644
--- a/var/spack/repos/builtin/packages/mercury/package.py
+++ b/var/spack/repos/builtin/packages/mercury/package.py
@@ -9,71 +9,71 @@ from spack.pkg.builtin.boost import Boost
class Mercury(CMakePackage):
"""Mercury is a C library for implementing RPC, optimized for HPC"""
- homepage = 'https://mercury-hpc.github.io/'
- url = 'https://github.com/mercury-hpc/mercury/releases/download/v1.0.1/mercury-1.0.1.tar.bz2'
- git = 'https://github.com/mercury-hpc/mercury.git'
-
- maintainers = ['soumagne']
- tags = ['e4s']
- version('master', branch='master', submodules=True)
- version('2.1.0', sha256='9a58437161e9273b1b1c484d2f1a477a89eea9afe84575415025d47656f3761b')
- version('2.0.1', sha256='335946d9620ac669643ffd9861a5fb3ee486834bab674b7779eaac9d6662e3fa')
- version('2.0.0', sha256='9e80923712e25df56014309df70660e828dbeabbe5fcc82ee024bcc86e7eb6b7')
- version('1.0.1', sha256='02febd56c401ef7afa250caf28d012b37dee842bfde7ee16fcd2f741b9cf25b3')
- version('1.0.0', sha256='fb0e44d13f4652f53e21040435f91d452bc2b629b6e98dcf5292cd0bece899d4')
- version('0.9.0', sha256='40868e141cac035213fe79400f8926823fb1f5a0651fd7027cbe162b063843ef')
-
- variant('bmi', default=False, description='Use BMI plugin')
- variant('mpi', default=False, description='Use MPI plugin')
- variant('ofi', default=True, when='@1.0.0:', description='Use OFI libfabric plugin')
+ homepage = "https://mercury-hpc.github.io/"
+ url = "https://github.com/mercury-hpc/mercury/releases/download/v1.0.1/mercury-1.0.1.tar.bz2"
+ git = "https://github.com/mercury-hpc/mercury.git"
+
+ maintainers = ["soumagne"]
+ tags = ["e4s"]
+ version("master", branch="master", submodules=True)
+ version("2.1.0", sha256="9a58437161e9273b1b1c484d2f1a477a89eea9afe84575415025d47656f3761b")
+ version("2.0.1", sha256="335946d9620ac669643ffd9861a5fb3ee486834bab674b7779eaac9d6662e3fa")
+ version("2.0.0", sha256="9e80923712e25df56014309df70660e828dbeabbe5fcc82ee024bcc86e7eb6b7")
+ version("1.0.1", sha256="02febd56c401ef7afa250caf28d012b37dee842bfde7ee16fcd2f741b9cf25b3")
+ version("1.0.0", sha256="fb0e44d13f4652f53e21040435f91d452bc2b629b6e98dcf5292cd0bece899d4")
+ version("0.9.0", sha256="40868e141cac035213fe79400f8926823fb1f5a0651fd7027cbe162b063843ef")
+
+ variant("bmi", default=False, description="Use BMI plugin")
+ variant("mpi", default=False, description="Use MPI plugin")
+ variant("ofi", default=True, when="@1.0.0:", description="Use OFI libfabric plugin")
# NOTE: the sm plugin does not require any package dependency.
- variant('sm', default=True, description='Use shared-memory plugin')
- variant('ucx', default=False, when='@2.1.0:', description='Use UCX plugin')
+ variant("sm", default=True, description="Use shared-memory plugin")
+ variant("ucx", default=False, when="@2.1.0:", description="Use UCX plugin")
# NOTE: if boostsys is False, mercury will install its own copy
# of the preprocessor headers.
- variant('boostsys', default=True,
- description='Use preprocessor headers from boost dependency')
- variant('shared', default=True,
- description='Build with shared libraries')
+ variant("boostsys", default=True, description="Use preprocessor headers from boost dependency")
+ variant("shared", default=True, description="Build with shared libraries")
# NOTE: the 'udreg' variant requires that the MPICH_GNI_NDREG_ENTRIES=1024
# environment variable be set at run time to avoid conflicts with
# Cray-MPICH if libfabric and MPI are used at the same time
- variant('udreg', default=False, when='@1.0.0:+ofi',
- description='Enable udreg on supported Cray platforms')
- variant('debug', default=False,
- description='Enable Mercury to print debug output')
- variant('checksum', default=True,
- description='Checksum verify all request/response messages')
-
- depends_on('cmake@2.8.12.2:', type='build')
- depends_on('bmi', when='+bmi')
- depends_on('mpi', when='+mpi')
- with when('+ofi'):
- depends_on('libfabric@1.5:', when='@:2.0.1')
- depends_on('libfabric@1.7:', when='@2.1.0:')
+ variant(
+ "udreg",
+ default=False,
+ when="@1.0.0:+ofi",
+ description="Enable udreg on supported Cray platforms",
+ )
+ variant("debug", default=False, description="Enable Mercury to print debug output")
+ variant("checksum", default=True, description="Checksum verify all request/response messages")
+
+ depends_on("cmake@2.8.12.2:", type="build")
+ depends_on("bmi", when="+bmi")
+ depends_on("mpi", when="+mpi")
+ with when("+ofi"):
+ depends_on("libfabric@1.5:", when="@:2.0.1")
+ depends_on("libfabric@1.7:", when="@2.1.0:")
# openpa dependency is removed in 2.1.0
- depends_on('openpa@1.0.3:', when='@:2.0.1%gcc@:4.8')
- depends_on('boost@1.48:', when='+boostsys')
+ depends_on("openpa@1.0.3:", when="@:2.0.1%gcc@:4.8")
+ depends_on("boost@1.48:", when="+boostsys")
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
- depends_on(Boost.with_default_variants, when='+boostsys')
- depends_on('boost', when='@:0.9') # internal boost headers were added in 1.0.0
+ depends_on(Boost.with_default_variants, when="+boostsys")
+ depends_on("boost", when="@:0.9") # internal boost headers were added in 1.0.0
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
- depends_on(Boost.with_default_variants, when='@:0.9')
- depends_on('ucx+thread_multiple', when='+ucx')
+ depends_on(Boost.with_default_variants, when="@:0.9")
+ depends_on("ucx+thread_multiple", when="+ucx")
# Fix CMake check_symbol_exists
# See https://github.com/mercury-hpc/mercury/issues/299
- patch('fix-cmake-3.15-check_symbol_exists.patch', when='@1.0.0:1.0.1')
+ patch("fix-cmake-3.15-check_symbol_exists.patch", when="@1.0.0:1.0.1")
def flag_handler(self, name, flags):
- if self.spec.satisfies('%cce'):
- if name == 'ldflags':
- flags.append('-Wl,-z,muldefs')
+ if self.spec.satisfies("%cce"):
+ if name == "ldflags":
+ flags.append("-Wl,-z,muldefs")
return (None, None, flags)
def cmake_args(self):
@@ -81,62 +81,60 @@ class Mercury(CMakePackage):
spec = self.spec
define = self.define
define_from_variant = self.define_from_variant
- parallel_tests = '+mpi' in spec and self.run_tests
+ parallel_tests = "+mpi" in spec and self.run_tests
cmake_args = [
- define_from_variant('BUILD_SHARED_LIBS', 'shared'),
- define('BUILD_TESTING', self.run_tests),
- define('MERCURY_USE_BOOST_PP', True),
- define_from_variant('MERCURY_USE_CHECKSUMS', 'checksum'),
- define('MERCURY_USE_SYSTEM_MCHECKSUM', False),
- define('MERCURY_USE_XDR', False),
- define_from_variant('NA_USE_BMI', 'bmi'),
- define_from_variant('NA_USE_MPI', 'mpi'),
- define_from_variant('NA_USE_SM', 'sm'),
+ define_from_variant("BUILD_SHARED_LIBS", "shared"),
+ define("BUILD_TESTING", self.run_tests),
+ define("MERCURY_USE_BOOST_PP", True),
+ define_from_variant("MERCURY_USE_CHECKSUMS", "checksum"),
+ define("MERCURY_USE_SYSTEM_MCHECKSUM", False),
+ define("MERCURY_USE_XDR", False),
+ define_from_variant("NA_USE_BMI", "bmi"),
+ define_from_variant("NA_USE_MPI", "mpi"),
+ define_from_variant("NA_USE_SM", "sm"),
]
- if '@2.1.0:' in spec:
- cmake_args.append(
- define_from_variant('NA_USE_UCX', 'ucx')
- )
+ if "@2.1.0:" in spec:
+ cmake_args.append(define_from_variant("NA_USE_UCX", "ucx"))
- if '@2.0.0:' in spec:
- cmake_args.extend([
- define_from_variant('MERCURY_ENABLE_DEBUG', 'debug'),
- define('MERCURY_TESTING_ENABLE_PARALLEL', parallel_tests),
- ])
+ if "@2.0.0:" in spec:
+ cmake_args.extend(
+ [
+ define_from_variant("MERCURY_ENABLE_DEBUG", "debug"),
+ define("MERCURY_TESTING_ENABLE_PARALLEL", parallel_tests),
+ ]
+ )
# Previous versions of mercury had more extensive CMake options
- if '@:1.0.1' in spec:
- cmake_args.extend([
- define('MERCURY_ENABLE_PARALLEL_TESTING', parallel_tests),
- define('MERCURY_ENABLE_POST_LIMIT', False),
- define_from_variant('MERCURY_ENABLE_VERBOSE_ERROR', 'debug'),
- define('MERCURY_USE_EAGER_BULK', True),
- define('MERCURY_USE_SELF_FORWARD', True),
- ])
-
- if '@1.0.0:' in spec:
- cmake_args.extend([
- define_from_variant('MERCURY_USE_SYSTEM_BOOST', 'boostsys'),
- define_from_variant('NA_USE_OFI', 'ofi'),
- ])
-
- if '+ofi' in spec:
- ofi_fabrics = spec['libfabric'].variants['fabrics'].value
- if 'gni' in ofi_fabrics:
- cmake_args.append(
- define_from_variant('NA_OFI_GNI_USE_UDREG', 'udreg')
- )
+ if "@:1.0.1" in spec:
+ cmake_args.extend(
+ [
+ define("MERCURY_ENABLE_PARALLEL_TESTING", parallel_tests),
+ define("MERCURY_ENABLE_POST_LIMIT", False),
+ define_from_variant("MERCURY_ENABLE_VERBOSE_ERROR", "debug"),
+ define("MERCURY_USE_EAGER_BULK", True),
+ define("MERCURY_USE_SELF_FORWARD", True),
+ ]
+ )
+
+ if "@1.0.0:" in spec:
+ cmake_args.extend(
+ [
+ define_from_variant("MERCURY_USE_SYSTEM_BOOST", "boostsys"),
+ define_from_variant("NA_USE_OFI", "ofi"),
+ ]
+ )
+
+ if "+ofi" in spec:
+ ofi_fabrics = spec["libfabric"].variants["fabrics"].value
+ if "gni" in ofi_fabrics:
+ cmake_args.append(define_from_variant("NA_OFI_GNI_USE_UDREG", "udreg"))
if self.run_tests:
- supported = ['sockets', 'tcp', 'verbs', 'psm2', 'gni']
- ofi_test_fabrics = list(
- filter(lambda x: x in supported, ofi_fabrics)
- )
+ supported = ["sockets", "tcp", "verbs", "psm2", "gni"]
+ ofi_test_fabrics = list(filter(lambda x: x in supported, ofi_fabrics))
cmake_args.append(
- define('NA_OFI_TESTING_PROTOCOL', format(
- ';'.join(ofi_test_fabrics))
- )
+ define("NA_OFI_TESTING_PROTOCOL", format(";".join(ofi_test_fabrics)))
)
return cmake_args
@@ -145,4 +143,4 @@ class Mercury(CMakePackage):
"""Unit tests fail when run in parallel."""
with working_dir(self.build_directory):
- make('test', parallel=False)
+ make("test", parallel=False)