compadre: add new package (#22119)
This commit is contained in:
parent
8849312e68
commit
d2e759e614
58
var/spack/repos/builtin/packages/compadre/package.py
Normal file
58
var/spack/repos/builtin/packages/compadre/package.py
Normal file
@ -0,0 +1,58 @@
|
||||
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class Compadre(CMakePackage):
|
||||
"""The Compadre Toolkit provides a performance portable solution for the
|
||||
parallel evaluation of computationally dense kernels. The toolkit
|
||||
specifically targets the Generalized Moving Least Squares (GMLS) approach,
|
||||
which requires the inversion of small dense matrices. The result is a set
|
||||
of weights that provide the information needed for remap or entries that
|
||||
constitute the rows of some globally sparse matrix.
|
||||
"""
|
||||
|
||||
homepage = 'https://github.com/SNLComputation/compadre'
|
||||
git = 'https://github.com/SNLComputation/compadre.git'
|
||||
url = 'https://github.com/SNLComputation/compadre/archive/v1.3.0.tar.gz'
|
||||
maintainers = ['kuberry']
|
||||
|
||||
version('master', branch='master', preferred=True)
|
||||
version('1.3.0', 'f711a840fd921e84660451ded408023ec3bcfc98fd0a7dc4a299bfae6ab489c2')
|
||||
|
||||
depends_on('kokkos@3.3.01:main')
|
||||
depends_on('kokkos-kernels@3.3.01:main')
|
||||
depends_on('cmake@3.13:', type='build')
|
||||
|
||||
variant('build_type', default='Release',
|
||||
description='CMake build type',
|
||||
values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'))
|
||||
|
||||
variant('mpi', default=False, description='Enable MPI support')
|
||||
depends_on('mpi', when='+mpi')
|
||||
|
||||
def cmake_args(self):
|
||||
spec = self.spec
|
||||
|
||||
kokkos = spec['kokkos']
|
||||
kokkos_kernels = spec['kokkos-kernels']
|
||||
|
||||
options = []
|
||||
options.extend([
|
||||
'-DKokkosCore_PREFIX={0}'.format(kokkos.prefix),
|
||||
'-DKokkosKernels_PREFIX={0}'.format(kokkos_kernels.prefix),
|
||||
'-DCMAKE_CXX_COMPILER:STRING={0}'.format(spec["kokkos"].kokkos_cxx),
|
||||
])
|
||||
|
||||
if '+mpi' in spec:
|
||||
options.append('-DCompadre_USE_MPI:BOOL=ON')
|
||||
|
||||
if '+shared' in spec:
|
||||
options.append('-DBUILD_SHARED_LIBS:BOOL=ON')
|
||||
else:
|
||||
options.append('-DBUILD_SHARED_LIBS:BOOL=OFF')
|
||||
|
||||
return options
|
Loading…
Reference in New Issue
Block a user