# Copyright 2013-2019 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) import os from spack import * class EcpProxyApps(Package): """This is a collection of packages that represents the official suite of DOE/ECP proxy applications. This is a Spack bundle package that installs the ECP proxy application suite. """ tags = ['proxy-app', 'ecp-proxy-app'] maintainers = ['bhatele'] homepage = "https://proxyapps.exascaleproject.org" # Dummy url url = 'https://github.com/exascaleproject/proxy-apps/archive/v1.0.tar.gz' version('2.1', sha256='604da008fc4ef3bdbc25505088d610333249e3e9745eac7dbfd05b91e33e218d') version('2.0', sha256='5f3cb3a772224e738c1dab42fb34d40f6b313af51ab1c575fb334e573e41e09a') version('1.1', sha256='8537e03588c0f46bebf5b7f07146c79812f2ebfb77d29e184baa4dd5f4603ee3') version('1.0', sha256='13d9795494dabdb4c724d2c0f322c2149b2507d2fd386ced12b54292b7ecf595') variant('candle', default=False, description='Also build CANDLE Benchmarks') # Added with release 2.1 depends_on('amg@1.2', when='@2.1:') depends_on('miniamr@1.4.3', when='@2.1:') # Added with release 2.0 depends_on('ember@1.0.0', when='@2.0:') depends_on('miniqmc@0.4.0', when='@2.0:') depends_on('minivite@1.0', when='@2.0:') depends_on('picsarlite@0.1', when='@2.0:') depends_on('thornado-mini@1.0', when='@2.0:') depends_on('candle-benchmarks@0.1', when='+candle @2.0:') depends_on('laghos@2.0', when='@2.0:') depends_on('macsio@1.1', when='@2.0:') depends_on('sw4lite@1.1', when='@2.0:') depends_on('xsbench@18', when='@2.0:') # Dependencies for version 2.0 depends_on('amg@1.1', when='@2.0') depends_on('miniamr@1.4.1', when='@2.0') # Added with release 1.1 depends_on('examinimd@1.0', when='@1.1:') depends_on('nekbone@17.0', when='@1.0:') depends_on('swfft@1.0', when='@1.0:') # Dependencies for versions 1.0:1.1 depends_on('amg@1.0', when='@1.0:1.1') depends_on('candle-benchmarks@0.0', when='+candle @1.0:1.1') depends_on('laghos@1.0', when='@1.0:1.1') depends_on('macsio@1.0', when='@1.0:1.1') depends_on('miniamr@1.4.0', when='@1.0:1.1') depends_on('sw4lite@1.0', when='@1.0:1.1') depends_on('xsbench@14', when='@1.0:1.1') # Removed after release 1.1 depends_on('minife@2.1.0', when='@1.0:1.1') depends_on('minitri@1.0', when='@1.0:1.1') # Removed after release 1.0 depends_on('comd@1.1', when='@1.0') # Dummy install for now, will be removed when metapackage is available def install(self, spec, prefix): with open(os.path.join(spec.prefix, 'package-list.txt'), 'w') as out: for dep in spec.dependencies(deptype='build'): out.write("%s\n" % dep.format( format_string='${PACKAGE} ${VERSION}')) os.symlink(dep.prefix, os.path.join(spec.prefix, dep.name)) out.close()