From 1badb47b80243e9d035edcba766968347ddd5134 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Mon, 6 Sep 2021 06:26:04 -0700 Subject: WarpX/HiPACE/openPMD-api: Use when(...) (#25789) Use the new with `when()` syntax for variant dependencies. --- var/spack/repos/builtin/packages/hipace/package.py | 23 ++++++++------- .../repos/builtin/packages/openpmd-api/package.py | 34 ++++++++++++---------- var/spack/repos/builtin/packages/warpx/package.py | 32 +++++++++++--------- 3 files changed, 50 insertions(+), 39 deletions(-) diff --git a/var/spack/repos/builtin/packages/hipace/package.py b/var/spack/repos/builtin/packages/hipace/package.py index 7fca84cf72..2f487bc72b 100644 --- a/var/spack/repos/builtin/packages/hipace/package.py +++ b/var/spack/repos/builtin/packages/hipace/package.py @@ -36,17 +36,20 @@ class Hipace(CMakePackage): depends_on('cmake@3.15.0:', type='build') depends_on('cuda@9.2.88:', when='compute=cuda') - depends_on('fftw@3: +openmp', when='compute=omp') - depends_on('fftw +mpi', when='+mpi compute=omp') depends_on('mpi', when='+mpi') - depends_on('openpmd-api@hipace', when='+openpmd') - depends_on('openpmd-api ~mpi', when='+openpmd ~mpi') - depends_on('openpmd-api +mpi', when='+openpmd +mpi') - depends_on('pkgconfig', type='build', when='compute=omp') - depends_on('rocfft', when='compute=hip') - depends_on('rocprim', when='compute=hip') - depends_on('rocrand', when='compute=hip') - depends_on('llvm-openmp', when='%apple-clang compute=omp') + with when('+openpmd'): + depends_on('openpmd-api@hipace') + depends_on('openpmd-api ~mpi', when='~mpi') + depends_on('openpmd-api +mpi', when='+mpi') + with when('compute=omp'): + depends_on('fftw@3: +openmp') + depends_on('fftw +mpi', when='+mpi') + depends_on('pkgconfig', type='build') + depends_on('llvm-openmp', when='%apple-clang') + with when('compute=hip'): + depends_on('rocfft') + depends_on('rocprim') + depends_on('rocrand') def cmake_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/openpmd-api/package.py b/var/spack/repos/builtin/packages/openpmd-api/package.py index 37c166f7d3..06ea51cd2b 100644 --- a/var/spack/repos/builtin/packages/openpmd-api/package.py +++ b/var/spack/repos/builtin/packages/openpmd-api/package.py @@ -49,22 +49,26 @@ class OpenpmdApi(CMakePackage): depends_on('catch2@2.6.1:', type='test') depends_on('catch2@2.13.4:', type='test', when='@0.14.0:') depends_on('mpi@2.3:', when='+mpi') # might become MPI 3.0+ - depends_on('hdf5@1.8.13:', when='+hdf5') - depends_on('hdf5@1.8.13: ~mpi', when='~mpi +hdf5') - depends_on('hdf5@1.8.13: +mpi', when='+mpi +hdf5') - depends_on('adios@1.13.1: ~sz', when='+adios1') - depends_on('adios@1.13.1: ~mpi ~sz', when='~mpi +adios1') - depends_on('adios@1.13.1: +mpi ~sz', when='+mpi +adios1') - depends_on('adios2@2.5.0:', when='+adios2') - depends_on('adios2@2.6.0:', when='+adios2 @0.12.0:') - depends_on('adios2@2.7.0:', when='+adios2 @0.14.0:') - depends_on('adios2@2.5.0: ~mpi', when='~mpi +adios2') - depends_on('adios2@2.5.0: +mpi', when='+mpi +adios2') depends_on('nlohmann-json@3.9.1:') - depends_on('py-pybind11@2.6.2:', when='+python', type='link') - depends_on('py-numpy@1.15.1:', when='+python', type=['test', 'run']) - depends_on('py-mpi4py@2.1.0:', when='+python +mpi', type=['test', 'run']) - depends_on('python@3.6:', when='+python', type=['link', 'test', 'run']) + with when('+hdf5'): + depends_on('hdf5@1.8.13:') + depends_on('hdf5@1.8.13: ~mpi', when='~mpi') + depends_on('hdf5@1.8.13: +mpi', when='+mpi') + with when('+adios1'): + depends_on('adios@1.13.1: ~sz') + depends_on('adios@1.13.1: ~mpi ~sz', when='~mpi') + depends_on('adios@1.13.1: +mpi ~sz', when='+mpi') + with when('+adios2'): + depends_on('adios2@2.5.0:') + depends_on('adios2@2.6.0:', when='@0.12.0:') + depends_on('adios2@2.7.0:', when='@0.14.0:') + depends_on('adios2@2.5.0: ~mpi', when='~mpi') + depends_on('adios2@2.5.0: +mpi', when='+mpi') + with when('+python'): + depends_on('py-pybind11@2.6.2:', type='link') + depends_on('py-numpy@1.15.1:', type=['test', 'run']) + depends_on('py-mpi4py@2.1.0:', when='+mpi', type=['test', 'run']) + depends_on('python@3.6:', type=['link', 'test', 'run']) conflicts('^hdf5 api=v16', msg='openPMD-api requires HDF5 APIs for 1.8+') diff --git a/var/spack/repos/builtin/packages/warpx/package.py b/var/spack/repos/builtin/packages/warpx/package.py index 533e858707..180c89bd6d 100644 --- a/var/spack/repos/builtin/packages/warpx/package.py +++ b/var/spack/repos/builtin/packages/warpx/package.py @@ -77,24 +77,28 @@ class Warpx(CMakePackage): # automatically depends_on('ascent +cuda ~shared', when='+ascent compute=cuda') depends_on('ascent +mpi', when='+ascent +mpi') - depends_on('blaspp', when='+psatd dims=rz') - depends_on('blaspp +cuda', when='+psatd dims=rz compute=cuda') depends_on('boost@1.66.0: +math', when='+qedtablegen') depends_on('cmake@3.15.0:', type='build') depends_on('cuda@9.2.88:', when='compute=cuda') - depends_on('fftw@3: +openmp', when='+psatd compute=omp') - depends_on('fftw +mpi', when='+psatd +mpi compute=omp') - depends_on('lapackpp', when='+psatd dims=rz') - depends_on('mpi', when='+mpi') - depends_on('openpmd-api@0.13.1:', when='+openpmd') - depends_on('openpmd-api@0.14.2:', when='+openpmd @21.09:') - depends_on('openpmd-api ~mpi', when='+openpmd ~mpi') - depends_on('openpmd-api +mpi', when='+openpmd +mpi') - depends_on('pkgconfig', type='build', when='+psatd compute=omp') - depends_on('rocfft', when='+psatd compute=hip') - depends_on('rocprim', when='compute=hip') - depends_on('rocrand', when='compute=hip') depends_on('llvm-openmp', when='%apple-clang compute=omp') + depends_on('mpi', when='+mpi') + with when('+psatd dims=rz'): + depends_on('lapackpp') + depends_on('blaspp') + depends_on('blaspp +cuda', when='compute=cuda') + with when('+psatd compute=omp'): + depends_on('fftw@3: +openmp') + depends_on('fftw +mpi', when='+mpi') + depends_on('pkgconfig', type='build') + with when('+openpmd'): + depends_on('openpmd-api@0.13.1:') + depends_on('openpmd-api@0.14.2:', when='@21.09:') + depends_on('openpmd-api ~mpi', when='~mpi') + depends_on('openpmd-api +mpi', when='+mpi') + with when('compute=hip'): + depends_on('rocfft', when='+psatd') + depends_on('rocprim') + depends_on('rocrand') conflicts('~qed +qedtablegen', msg='WarpX PICSAR QED table generation needs +qed') -- cgit v1.2.3-70-g09d2