# Copyright 2013-2022 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 Neko(AutotoolsPackage, CudaPackage, ROCmPackage):
"""Neko: A modern, portable, and scalable framework
for high-fidelity computational fluid dynamics
"""
homepage = "https://github.com/ExtremeFLOW/neko"
git = "https://github.com/ExtremeFLOW/neko.git"
maintainers = ['njansson']
version('0.3.0', commit='a82097a10ae3c965fb873da909a6324c7a7742fb')
version('develop', branch='develop')
variant('parmetis', default=False, description='Build with support for parmetis')
variant('xsmm', default=False, description='Build with support for libxsmm')
depends_on('autoconf', type='build')
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
depends_on('pkgconfig', type='build')
depends_on('parmetis', when='+parmetis')
depends_on('libxsmm', when='+xsmm')
depends_on('mpi')
depends_on('blas')
depends_on('lapack')
def configure_args(self):
args = []
args += self.with_or_without('parmetis')
args += self.with_or_without('libxsmm', variant='xsmm')
args += self.with_or_without('cuda', activation_value='prefix')
rocm_fn = lambda x: spec['hip'].prefix
args += self.with_or_without('hip', variant='rocm', activation_value=rocm_fn)
return args