summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdgar Leon <800736+eleon@users.noreply.github.com>2021-11-15 06:48:14 -0600
committerGitHub <noreply@github.com>2021-11-15 13:48:14 +0100
commit4a71704ae4c80f8510208ba5a2940649f1fc5eea (patch)
tree5e0fdc61f7447c3cf86975494e7b600d3da07e67
parentce9ae3c70d899e7e3cc33b2501249a7fe01c93f3 (diff)
downloadspack-4a71704ae4c80f8510208ba5a2940649f1fc5eea.tar.gz
spack-4a71704ae4c80f8510208ba5a2940649f1fc5eea.tar.bz2
spack-4a71704ae4c80f8510208ba5a2940649f1fc5eea.tar.xz
spack-4a71704ae4c80f8510208ba5a2940649f1fc5eea.zip
mpibind: add python bindings (#27127)
-rw-r--r--var/spack/repos/builtin/packages/mpibind/package.py59
1 files changed, 35 insertions, 24 deletions
diff --git a/var/spack/repos/builtin/packages/mpibind/package.py b/var/spack/repos/builtin/packages/mpibind/package.py
index d1bb6a77e9..86c0c79e6f 100644
--- a/var/spack/repos/builtin/packages/mpibind/package.py
+++ b/var/spack/repos/builtin/packages/mpibind/package.py
@@ -13,39 +13,48 @@ class Mpibind(AutotoolsPackage):
to heterogeneous architectures"""
homepage = "https://github.com/LLNL/mpibind"
- url = "https://github.com/LLNL/mpibind/archive/refs/tags/v0.5.0.tar.gz"
git = "https://github.com/LLNL/mpibind.git"
maintainers = ['eleon']
- # The build process uses 'git describe --tags' to get the
- # package version, thus we need 'get_full_repo'
- version('master', branch='master', get_full_repo=True)
- version('0.7.0', sha256='33077e7eb50322d2bcfe87bb3ea9159c2e49f6f045cbbcd2e69e763c3bec4330')
- version('0.5.0', sha256='51bb27341109aeef121a8630bd56f5551c70ebfd337a459fb70ef9015d97d2b7')
+ # This package uses 'git describe --tags' to get the
+ # package version in Autotools' AC_INIT, thus
+ # 'get_full_repo' is needed.
+ # Furthermore, the package can't be cached because
+ # AC_INIT would be missing the version argument,
+ # which is derived with git.
+ version('master', branch='master', get_full_repo=True)
+ version('0.8.0', commit='ff38b9d', no_cache=True)
+ version('0.7.0', commit='3c437a9', no_cache=True)
+ version('0.5.0', commit='8698f07', no_cache=True)
- variant('cuda', default=False,
+ variant('cuda', default=False,
description='Build w/support for NVIDIA GPUs.')
- variant('rocm', default=False,
+ variant('rocm', default=False,
description='Build w/support for AMD GPUs.')
- variant('flux', default=False,
+ variant('flux', default=False,
description='Build the Flux plugin.')
+ variant('python', default=False,
+ description='Build the Python bindings.')
- depends_on('autoconf', type='build')
- depends_on('automake', type='build')
- depends_on('libtool', type='build')
- depends_on('m4', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
depends_on('pkgconfig', type='build')
- depends_on('hwloc@2:+libxml2', type='link')
- depends_on('hwloc@2:+pci', when=(sys.platform != 'darwin'), type='link')
- depends_on('hwloc@2:+cuda+nvml', when='+cuda', type='link')
- depends_on('hwloc@2.4:+rocm+opencl', when='+rocm', type='link')
+ depends_on('hwloc@2:+libxml2', type='link')
+ depends_on('hwloc@2:+cuda+nvml', type='link', when='+cuda')
+ depends_on('hwloc@2.4:+rocm+opencl', type='link', when='+rocm')
+ depends_on('hwloc@2:+pci', type='link',
+ when=(sys.platform != 'darwin'))
- # Requiring @master temporarily while Flux adds
- # FLUX_SHELL_RC_PATH to a stable version (>0.29.0).
- # mpibind will require at least such version.
- depends_on('flux-core@master', when='+flux', type='link')
+ # flux-core >= 0.30.0 supports FLUX_SHELL_RC_PATH,
+ # which is needed to load the plugin into Flux
+ depends_on('flux-core@0.30:', when='+flux', type='link')
+
+ depends_on('python@3:', when='+python', type=('build', 'run'))
+ depends_on('py-cffi', when='+python', type=('build', 'run'))
def autoreconf(self, spec, prefix):
autoreconf('--install', '--verbose', '--force')
@@ -56,6 +65,8 @@ class Mpibind(AutotoolsPackage):
env.prepend_path('FLUX_SHELL_RC_PATH',
join_path(self.prefix, 'share', 'mpibind'))
- # To build and run the tests, make sure 'libtap' is installed
- # on the target system and is recognized by pkg-config.
- # Unfortunately, libtap is not in Spack.
+ # To build and run the C unit tests, make sure 'libtap'
+ # is installed and recognized by pkgconfig.
+ # To build and run the Python unit tests, make sure 'pycotap'
+ # is installed in your Python environment.
+ # Unfortunately, 'tap' and 'pycotap' are not in Spack.