Splice differing virtual packages (#27919)

Co-authored-by: Nathan Hanford <hanford1@llnl.gov>
This commit is contained in:
Nathan Hanford
2022-04-12 13:31:39 -07:00
committed by GitHub
parent 7d534f38d6
commit a3520d14bd
6 changed files with 148 additions and 21 deletions

View File

@@ -0,0 +1,30 @@
# 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 SpliceA(Package):
"""Simple package with one optional dependency"""
homepage = "http://www.example.com"
url = "http://www.example.com/splice-a-1.0.tar.gz"
version('1.0', '0123456789abcdef0123456789efghij')
variant('foo', default=False, description='nope')
variant('bar', default=False, description='nope')
variant('baz', default=False, description='nope')
depends_on('splice-z')
depends_on('splice-z+foo', when='+foo')
provides('something')
provides('somethingelse')
def install(self, spec, prefix):
with open(prefix.join('splice-a'), 'w') as f:
f.write('splice-a: {0}'.format(prefix))
f.write('splice-z: {0}'.format(spec['splice-z'].prefix))

View File

@@ -21,6 +21,9 @@ class SpliceH(Package):
depends_on('splice-z')
depends_on('splice-z+foo', when='+foo')
provides('something')
provides('somethingelse')
def install(self, spec, prefix):
with open(prefix.join('splice-h'), 'w') as f:
f.write('splice-h: {0}'.format(prefix))

View File

@@ -0,0 +1,29 @@
# 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 SpliceVh(Package):
"""Simple package with one optional dependency"""
homepage = "http://www.example.com"
url = "http://www.example.com/splice-vh-1.0.tar.gz"
version('1.0', '0123456789abcdef0123456789abcdef')
variant('foo', default=False, description='nope')
variant('bar', default=False, description='nope')
variant('baz', default=False, description='nope')
depends_on('splice-z')
depends_on('splice-z+foo', when='+foo')
provides('something')
def install(self, spec, prefix):
with open(prefix.join('splice-vh'), 'w') as f:
f.write('splice-vh: {0}'.format(prefix))
f.write('splice-z: {0}'.format(spec['splice-z'].prefix))