summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorChristoph Junghans <junghans@lanl.gov>2020-04-30 10:29:08 -0600
committerGitHub <noreply@github.com>2020-04-30 10:29:08 -0600
commitcfb307b8e7661c96874b86c9a13dbcc45ac20aa4 (patch)
treee9ef6c6a0b5a3913c6bd9665d962e279f8e1ca6e /var
parent6c24142ebd045fcfeff225f9e4ee9ad02b6ba8ed (diff)
downloadspack-cfb307b8e7661c96874b86c9a13dbcc45ac20aa4.tar.gz
spack-cfb307b8e7661c96874b86c9a13dbcc45ac20aa4.tar.bz2
spack-cfb307b8e7661c96874b86c9a13dbcc45ac20aa4.tar.xz
spack-cfb307b8e7661c96874b86c9a13dbcc45ac20aa4.zip
lammps: fix build with kokkos (#16390)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/kokkos/package.py4
-rw-r--r--var/spack/repos/builtin/packages/lammps/package.py22
2 files changed, 16 insertions, 10 deletions
diff --git a/var/spack/repos/builtin/packages/kokkos/package.py b/var/spack/repos/builtin/packages/kokkos/package.py
index d1d58fcbbd..86cf01e784 100644
--- a/var/spack/repos/builtin/packages/kokkos/package.py
+++ b/var/spack/repos/builtin/packages/kokkos/package.py
@@ -172,6 +172,8 @@ class Kokkos(CMakePackage, CudaPackage):
conflicts("+cuda", when="std=17")
conflicts("+cuda", when="std=20")
+ variant('shared', default=True, description='Build shared libraries')
+
def append_args(self, cmake_prefix, cmake_options, spack_options):
for opt in cmake_options:
enablestr = "+%s" % opt
@@ -242,4 +244,6 @@ class Kokkos(CMakePackage, CudaPackage):
options.append("-DKokkos_CXX_STANDARD=%s" %
self.spec.variants["std"].value)
+ options.append('-DBUILD_SHARED_LIBS=%s' % ('+shared' in self.spec))
+
return options
diff --git a/var/spack/repos/builtin/packages/lammps/package.py b/var/spack/repos/builtin/packages/lammps/package.py
index f25c920da1..2e12378dc3 100644
--- a/var/spack/repos/builtin/packages/lammps/package.py
+++ b/var/spack/repos/builtin/packages/lammps/package.py
@@ -55,12 +55,13 @@ class Lammps(CMakePackage, CudaPackage):
vdate.strftime("%d%b%Y").lstrip('0'))
supported_packages = ['asphere', 'body', 'class2', 'colloid', 'compress',
- 'coreshell', 'dipole', 'granular', 'kspace', 'latte',
- 'manybody', 'mc', 'meam', 'misc', 'molecule',
- 'mpiio', 'peri', 'poems', 'python', 'qeq',
- 'replica', 'rigid', 'shock', 'snap', 'spin', 'srd',
- 'user-atc', 'user-h5md', 'user-lb', 'user-misc',
- 'user-netcdf', 'user-omp', 'user-reaxc', 'voronoi']
+ 'coreshell', 'dipole', 'granular', 'kspace',
+ 'kokkos', 'latte', 'manybody', 'mc', 'meam', 'misc',
+ 'molecule', 'mpiio', 'peri', 'poems', 'python',
+ 'qeq', 'replica', 'rigid', 'shock', 'snap', 'spin',
+ 'srd', 'user-atc', 'user-h5md', 'user-lb',
+ 'user-misc', 'user-netcdf', 'user-omp', 'user-reaxc',
+ 'voronoi']
for pkg in supported_packages:
variant(pkg, default=False,
@@ -69,8 +70,6 @@ class Lammps(CMakePackage, CudaPackage):
description='Build the liblammps in addition to the executable')
variant('mpi', default=True,
description='Build with mpi')
- variant('kokkos', default=False,
- description='Build with Kokkos accelerated styles')
variant('jpeg', default=True,
description='Build with jpeg support')
variant('png', default=True,
@@ -106,7 +105,7 @@ class Lammps(CMakePackage, CudaPackage):
depends_on('jpeg', when='+jpeg')
depends_on('libpng', when='+png')
depends_on('ffmpeg', when='+ffmpeg')
- depends_on('kokkos-legacy', when='+kokkos')
+ depends_on('kokkos+deprecated_code+shared@3.0', when='@20200303+kokkos')
conflicts('+cuda', when='+opencl')
conflicts('+body', when='+poems@:20180628')
@@ -117,7 +116,8 @@ class Lammps(CMakePackage, CudaPackage):
conflicts('+user-misc', when='~manybody')
conflicts('+user-phonon', when='~kspace')
conflicts('+user-misc', when='~manybody')
- conflicts('%gcc@9:', when='+openmp')
+ conflicts('%gcc@9:', when='@:20200303+openmp')
+ conflicts('+kokkos', when='@:20200227')
patch("lib.patch", when="@20170901")
patch("660.patch", when="@20170922")
@@ -176,5 +176,7 @@ class Lammps(CMakePackage, CudaPackage):
args.append('{0}=OFF'.format(opt))
if '+kspace' in spec:
args.append('-DFFT=FFTW3')
+ if '+kokkos' in spec:
+ args.append('-DEXTERNAL_KOKKOS=ON')
return args