mixins: implemented declarative syntax

Implemented a declarative syntax for the additional behavior that can
get attached to classes. Implemented a function to filter compiler
wrappers that uses the mechanism above.
This commit is contained in:
alalazo
2017-06-19 14:16:18 +02:00
committed by Todd Gamblin
parent 8e0f9038ab
commit 22def01adf
9 changed files with 174 additions and 115 deletions

View File

@@ -26,7 +26,7 @@
import os
class Mpich(AutotoolsPackage, mixins.FilterCompilerWrappers):
class Mpich(AutotoolsPackage):
"""MPICH is a high performance and widely portable implementation of
the Message Passing Interface (MPI) standard."""
@@ -71,6 +71,8 @@ class Mpich(AutotoolsPackage, mixins.FilterCompilerWrappers):
provides('mpi@:3.0', when='@3:')
provides('mpi@:1.3', when='@1:')
filter_compiler_wrappers('mpicc', 'mpicxx', 'mpif77', 'mpif90')
# fix MPI_Barrier segmentation fault
# see https://lists.mpich.org/pipermail/discuss/2016-May/004764.html
# and https://lists.mpich.org/pipermail/discuss/2016-June/004768.html
@@ -169,12 +171,3 @@ def configure_args(self):
config_args.append(device_config)
return config_args
@property
def to_be_filtered_for_wrappers(self):
return [
join_path(self.prefix.bin, 'mpicc'),
join_path(self.prefix.bin, 'mpicxx'),
join_path(self.prefix.bin, 'mpif77'),
join_path(self.prefix.bin, 'mpif90')
]