mercury: add v2.3.0 (#38279)

* fix Boost dependency

* fix testing and move psm2/sockets as unsupported

* fix style to separate maintainers/tags/version
This commit is contained in:
Jerome Soumagne 2023-06-12 10:51:22 -05:00 committed by GitHub
parent 8db5fecdf5
commit 92593fecd5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -3,7 +3,6 @@
# #
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import * from spack.package import *
from spack.pkg.builtin.boost import Boost
class Mercury(CMakePackage): class Mercury(CMakePackage):
@ -14,8 +13,11 @@ class Mercury(CMakePackage):
git = "https://github.com/mercury-hpc/mercury.git" git = "https://github.com/mercury-hpc/mercury.git"
maintainers("soumagne") maintainers("soumagne")
tags = ["e4s"] tags = ["e4s"]
version("master", branch="master", submodules=True) version("master", branch="master", submodules=True)
version("2.3.0", sha256="e9e62ce1bb2fd482f0e85ad75fa255d9750c6fed50ba441a03de93b3b8eae742")
version("2.2.0", sha256="e66490cf63907c3959bbb2932b5aaf51d96a481b17f0935f409f3a862eff97f6") version("2.2.0", sha256="e66490cf63907c3959bbb2932b5aaf51d96a481b17f0935f409f3a862eff97f6")
version("2.1.0", sha256="9a58437161e9273b1b1c484d2f1a477a89eea9afe84575415025d47656f3761b") version("2.1.0", sha256="9a58437161e9273b1b1c484d2f1a477a89eea9afe84575415025d47656f3761b")
version("2.0.1", sha256="335946d9620ac669643ffd9861a5fb3ee486834bab674b7779eaac9d6662e3fa") version("2.0.1", sha256="335946d9620ac669643ffd9861a5fb3ee486834bab674b7779eaac9d6662e3fa")
@ -59,17 +61,9 @@ class Mercury(CMakePackage):
depends_on("libfabric@1.7:", when="@2.1.0:") depends_on("libfabric@1.7:", when="@2.1.0:")
# openpa dependency is removed in 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("openpa@1.0.3:", when="@:2.0.1%gcc@:4.8")
# We only need Boost preprocessor headers
depends_on("boost@1.48:", when="+boostsys") 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", 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("ucx+thread_multiple", when="+ucx")
# Fix CMake check_symbol_exists # Fix CMake check_symbol_exists
@ -91,7 +85,6 @@ def cmake_args(self):
cmake_args = [ cmake_args = [
define_from_variant("BUILD_SHARED_LIBS", "shared"), define_from_variant("BUILD_SHARED_LIBS", "shared"),
define("BUILD_TESTING", self.run_tests),
define("MERCURY_USE_BOOST_PP", True), define("MERCURY_USE_BOOST_PP", True),
define_from_variant("MERCURY_USE_CHECKSUMS", "checksum"), define_from_variant("MERCURY_USE_CHECKSUMS", "checksum"),
define("MERCURY_USE_SYSTEM_MCHECKSUM", False), define("MERCURY_USE_SYSTEM_MCHECKSUM", False),
@ -101,6 +94,9 @@ def cmake_args(self):
define_from_variant("NA_USE_SM", "sm"), define_from_variant("NA_USE_SM", "sm"),
] ]
if "@2.3.0:" in spec:
cmake_args.append(define("BUILD_TESTING_UNIT", self.run_tests))
if "@2.2.0:" in spec: if "@2.2.0:" in spec:
cmake_args.extend( cmake_args.extend(
[ [
@ -147,7 +143,7 @@ def cmake_args(self):
if "gni" in ofi_fabrics: if "gni" in ofi_fabrics:
cmake_args.append(define_from_variant("NA_OFI_GNI_USE_UDREG", "udreg")) cmake_args.append(define_from_variant("NA_OFI_GNI_USE_UDREG", "udreg"))
if self.run_tests: if self.run_tests:
supported = ["sockets", "tcp", "verbs", "psm2", "gni"] supported = ["tcp", "verbs", "gni", "cxi"]
ofi_test_fabrics = list(filter(lambda x: x in supported, ofi_fabrics)) ofi_test_fabrics = list(filter(lambda x: x in supported, ofi_fabrics))
cmake_args.append( cmake_args.append(
define("NA_OFI_TESTING_PROTOCOL", format(";".join(ofi_test_fabrics))) define("NA_OFI_TESTING_PROTOCOL", format(";".join(ofi_test_fabrics)))
@ -158,5 +154,5 @@ def cmake_args(self):
def check(self): def check(self):
"""Unit tests fail when run in parallel.""" """Unit tests fail when run in parallel."""
with working_dir(self.build_directory): with working_dir(self.builder.build_directory):
make("test", parallel=False) make("test", parallel=False)