Fix spack package inheritance for module variables (#10097)

* we weren't properly setting module variables for the root package in a DAG -- just for transitive dependencies.
This commit is contained in:
Greg Becker
2018-12-14 08:37:22 -08:00
committed by Todd Gamblin
parent 05f9c68c30
commit d2d0ab06b7
5 changed files with 63 additions and 25 deletions

View File

@@ -0,0 +1,20 @@
# Copyright 2013-2018 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 spack.pkg.builtin.mock.simple_inheritance as si
class MultimoduleInheritance(si.BaseWithDirectives):
"""Simple package which inherits a method and several directives"""
homepage = "http://www.example.com"
url = "http://www.example.com/multimodule-1.0.tar.gz"
version('1.0', '0123456789abcdef0123456789abcdef')
depends_on('openblas', when='+openblas')
def install(self, spec, prefix):
pass

View File

@@ -13,6 +13,12 @@ class BaseWithDirectives(Package):
variant('openblas', description='Activates openblas', default=True)
provides('service1')
def use_module_variable(self):
"""Must be called in build environment. Allows us to test parent class
using module variables set up by build_environment."""
env['TEST_MODULE_VAR'] = 'test_module_variable'
return env['TEST_MODULE_VAR']
class SimpleInheritance(BaseWithDirectives):
"""Simple package which acts as a build dependency"""