From e3378a0d3bc84056bdc2f39738583fb679850665 Mon Sep 17 00:00:00 2001 From: Jeffrey Salmond Date: Wed, 26 Apr 2017 15:33:00 +0100 Subject: add kokkos package (#3997) * add kokkos package * fix flake8 * add descriptions to kokkos variants --- var/spack/repos/builtin/packages/kokkos/package.py | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 var/spack/repos/builtin/packages/kokkos/package.py (limited to 'var') diff --git a/var/spack/repos/builtin/packages/kokkos/package.py b/var/spack/repos/builtin/packages/kokkos/package.py new file mode 100644 index 0000000000..00eadfa548 --- /dev/null +++ b/var/spack/repos/builtin/packages/kokkos/package.py @@ -0,0 +1,61 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Kokkos(Package): + """Kokkos implements a programming model in C++ for writing performance + portable applications targeting all major HPC platforms.""" + + homepage = "https://github.com/kokkos/kokkos" + url = "https://github.com/kokkos/kokkos/archive/2.03.00.tar.gz" + + version('2.03.00', 'f205d659d4304747759fabfba32d43c3') + + variant('qthreads', default=False, description="enable Qthreads backend") + variant('cuda', default=False, description="enable Cuda backend") + + depends_on('hwloc') + depends_on('qthreads', when='+qthreads') + depends_on('cuda', when='+cuda') + + def install(self, spec, prefix): + generate = which(join_path(self.stage.source_path, + 'generate_makefile.bash')) + with working_dir('build', create=True): + g_args = [ + '--prefix=%s' % prefix, + '--with-hwloc=%s' % spec['hwloc'].prefix, + '--with-serial', + '--with-openmp', + ] + if 'qthreads' in spec: + g_args.append('--with-qthreads=%s' % spec['qthreads'].prefix) + if 'cuda' in spec: + g_args.append('--with-cuda=%s' % spec['cuda'].prefix) + + generate(*g_args) + make() + make('install') -- cgit v1.2.3-70-g09d2