diff options
author | Sam Reeve <6740307+streeve@users.noreply.github.com> | 2022-07-28 14:21:53 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-28 11:21:53 -0700 |
commit | e8cce0f7cbaa3ecf0b72fcce81d595df67580782 (patch) | |
tree | 7c547c0d791b064fc5d28c50a7277c06b79d6f56 /var | |
parent | fc4d74b1327e0335a4663192dea3045d4a6e2b7b (diff) | |
download | spack-e8cce0f7cbaa3ecf0b72fcce81d595df67580782.tar.gz spack-e8cce0f7cbaa3ecf0b72fcce81d595df67580782.tar.bz2 spack-e8cce0f7cbaa3ecf0b72fcce81d595df67580782.tar.xz spack-e8cce0f7cbaa3ecf0b72fcce81d595df67580782.zip |
Cabana: add test variants (#31776)
* Simplify Cabana build flags
* Add unit tests, examples, and performance options
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/cabana/package.py | 36 |
1 files changed, 16 insertions, 20 deletions
diff --git a/var/spack/repos/builtin/packages/cabana/package.py b/var/spack/repos/builtin/packages/cabana/package.py index c09ceb82e9..d96f81beef 100644 --- a/var/spack/repos/builtin/packages/cabana/package.py +++ b/var/spack/repos/builtin/packages/cabana/package.py @@ -36,6 +36,9 @@ class Cabana(CMakePackage): variant('heffte', default=False, description='Build with heFFTe support') variant('hypre', default=False, description='Build with HYPRE support') variant('cajita', default=False, description='Build Cajita subpackage') + variant('testing', default=False, description='Build unit tests') + variant('examples', default=False, description='Build tutorial examples') + variant('performance_testing', default=False, description='Build performance tests') depends_on("cmake@3.9:", type='build') depends_on("googletest", type='build') @@ -72,31 +75,24 @@ class Cabana(CMakePackage): conflicts("+sycl", when="@:0.3.0") def cmake_args(self): - options = [ - '-DCabana_ENABLE_TESTING=ON', - '-DBUILD_SHARED_LIBS=%s' % ( - 'On' if '+shared' in self.spec else 'Off') - ] + options = [self.define_from_variant('BUILD_SHARED_LIBS', 'shared')] - # Enable Cabana submodules based on flags above - if '+hypre' in self.spec: - options.append('-DCabana_REQUIRE_HYPRE=ON') - if '+heffte' in self.spec: - options.append('-DCabana_REQUIRE_HEFFTE=ON') - - options.append(self.define_from_variant('Cabana_ENABLE_CAJITA', 'cajita')) + enable = ['CAJITA', 'TESTING', 'EXAMPLES', 'PERFORMANCE_TESTING'] + require = ['ARBORX', 'HEFFTE', 'HYPRE'] # These variables were removed in 0.3.0 (where backends are # automatically used from Kokkos) if self.spec.satisfies('@:0.2.0'): - backends = {'serial': 'Serial', - 'openmp': 'OpenMP', - 'cuda': 'Cuda'} - for backend in backends: - cbn_option = 'Cabana_ENABLE_' + backends[backend] - options.append(self.define_from_variant(cbn_option, backend)) - + enable += ['Serial', 'OpenMP', 'Cuda'] + # MPI was changed from ENABLE to REQUIRE in 0.4.0 if self.spec.satisfies('@:0.3.0'): - options.append(self.define_from_variant('Cabana_ENABLE_MPI', 'mpi')) + enable += ['MPI'] + else: + require += ['MPI'] + + for category, cname in zip([enable, require], ["ENABLE", "REQUIRE"]): + for var in category: + cbn_option = 'Cabana_{0}_{1}'.format(cname, var) + options.append(self.define_from_variant(cbn_option, var.lower())) return options |