diff options
author | Robert Pavel <rspavel@lanl.gov> | 2019-06-12 15:46:14 -0600 |
---|---|---|
committer | Christoph Junghans <junghans@lanl.gov> | 2019-06-12 15:46:14 -0600 |
commit | a32382e78772da78058d7560e33046d8d9617389 (patch) | |
tree | 90948a63dea7863680a5d9c057aae19f634e6a5e | |
parent | 4e812090c00a3ec2775d5123a542fd670626de05 (diff) | |
download | spack-a32382e78772da78058d7560e33046d8d9617389.tar.gz spack-a32382e78772da78058d7560e33046d8d9617389.tar.bz2 spack-a32382e78772da78058d7560e33046d8d9617389.tar.xz spack-a32382e78772da78058d7560e33046d8d9617389.zip |
Fixed Flecsi Backend Dependencies (#11679)
Fixed logic behind flecsi backends to not require legion for an mpi
build and to better support required combinations.
Also made graphviz support and tutorial building optional
-rw-r--r-- | var/spack/repos/builtin/packages/flecsi/package.py | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/var/spack/repos/builtin/packages/flecsi/package.py b/var/spack/repos/builtin/packages/flecsi/package.py index ce2a867cf5..33a148a4c9 100644 --- a/var/spack/repos/builtin/packages/flecsi/package.py +++ b/var/spack/repos/builtin/packages/flecsi/package.py @@ -21,30 +21,44 @@ class Flecsi(CMakePackage): git = "https://github.com/laristra/flecsi.git" version('develop', branch='master', submodules=True) + variant('backend', default='mpi', values=('serial', 'mpi', 'legion'), + description="Backend to use for distributed memory") + variant('graphviz', default=False, + description='Enable GraphViz Support') + variant('tutorial', default=False, + description='Build FleCSI Tutorials') - variant('mpi', default=True, - description='Build on top of mpi conduit for mpi inoperability') - variant('legion', default=False) - - depends_on("cmake@3.1:") - depends_on("mpi") - depends_on("gasnet~pshm") - depends_on("legion") - depends_on("legion+shared", when='~mpi') - depends_on("legion+shared+mpi", when='+mpi') - depends_on("boost@1.59.0 cxxstd=11 +program_options") + depends_on("cmake@3.1:", type='build') + depends_on('mpi', when='backend=mpi') + depends_on('mpi', when='backend=legion') + depends_on("gasnet~pshm", when='backend=legion') + depends_on("legion+shared+mpi", when='backend=legion') + depends_on("boost@1.59.0: cxxstd=11 +program_options") depends_on("metis@5.1.0:") depends_on("parmetis@4.0.3:") depends_on("caliper") depends_on("gotcha") - depends_on("graphviz") + depends_on("graphviz", when='+graphviz') + depends_on('python@3.0:', when='+tutorial') def cmake_args(self): - options = ['-DCMAKE_BUILD_TYPE=debug -DFLECSI_RUNTIME_MODEL=mpi'] + options = ['-DCMAKE_BUILD_TYPE=debug'] - if '~mpi' in self.spec: + if self.spec.variants['backend'].value == 'legion': + options.extend(['-DFLECSI_RUNTIME_MODEL=legion']) + elif self.spec.variants['backend'].value == 'mpi': + options.extend(['-DFLECSI_RUNTIME_MODEL=mpi']) + else: + options.extend(['-DFLECSI_RUNTIME_MODEL=serial']) options.extend([ '-DENABLE_MPI=OFF', ]) + if '+tutorial' in self.spec: + options.extend(['-DENABLE_FLECSIT=ON']) + options.extend(['-DENABLE_FLECSI_TUTORIAL=ON']) + else: + options.extend(['-DENABLE_FLECSIT=OFF']) + options.extend(['-DENABLE_FLECSI_TUTORIAL=OFF']) + return options |