From d2d0ab06b73ffe0f19a258391b35d02e93f1c3fb Mon Sep 17 00:00:00 2001 From: Greg Becker Date: Fri, 14 Dec 2018 08:37:22 -0800 Subject: 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. --- .../packages/multimodule-inheritance/package.py | 20 ++++++++++++++++++++ .../packages/simple-inheritance/package.py | 6 ++++++ 2 files changed, 26 insertions(+) create mode 100644 var/spack/repos/builtin.mock/packages/multimodule-inheritance/package.py (limited to 'var') diff --git a/var/spack/repos/builtin.mock/packages/multimodule-inheritance/package.py b/var/spack/repos/builtin.mock/packages/multimodule-inheritance/package.py new file mode 100644 index 0000000000..d66763d218 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/multimodule-inheritance/package.py @@ -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 diff --git a/var/spack/repos/builtin.mock/packages/simple-inheritance/package.py b/var/spack/repos/builtin.mock/packages/simple-inheritance/package.py index cd43575a01..e0ec2bd704 100644 --- a/var/spack/repos/builtin.mock/packages/simple-inheritance/package.py +++ b/var/spack/repos/builtin.mock/packages/simple-inheritance/package.py @@ -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""" -- cgit v1.2.3-60-g2f50