From 0d95fd6d526d346dc43ac284ed6a5533e760e354 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Wed, 30 Dec 2020 11:09:58 -0600 Subject: [PATCH] extends: add type kwarg (#20045) * extends: add type kwarg * Flake8 fix --- lib/spack/docs/build_systems/perlpackage.rst | 2 -- lib/spack/docs/build_systems/rpackage.rst | 1 - lib/spack/docs/build_systems/rubypackage.rst | 1 - lib/spack/spack/build_systems/octave.py | 3 +-- lib/spack/spack/build_systems/perl.py | 4 +--- lib/spack/spack/build_systems/python.py | 4 +--- lib/spack/spack/build_systems/r.py | 4 +--- lib/spack/spack/build_systems/ruby.py | 4 +--- lib/spack/spack/directives.py | 4 ++-- .../repos/builtin/packages/the-platinum-searcher/package.py | 2 +- 10 files changed, 8 insertions(+), 21 deletions(-) diff --git a/lib/spack/docs/build_systems/perlpackage.rst b/lib/spack/docs/build_systems/perlpackage.rst index 11968e15609..568d1d28fd7 100644 --- a/lib/spack/docs/build_systems/perlpackage.rst +++ b/lib/spack/docs/build_systems/perlpackage.rst @@ -120,8 +120,6 @@ so ``PerlPackage`` contains: extends('perl') - depends_on('perl', type=('build', 'run')) - If your package requires a specific version of Perl, you should specify this. diff --git a/lib/spack/docs/build_systems/rpackage.rst b/lib/spack/docs/build_systems/rpackage.rst index 60c76816c5a..62dcfcb7372 100644 --- a/lib/spack/docs/build_systems/rpackage.rst +++ b/lib/spack/docs/build_systems/rpackage.rst @@ -138,7 +138,6 @@ every R package needs this, the ``RPackage`` base class contains: .. code-block:: python extends('r') - depends_on('r', type=('build', 'run')) Take a close look at the homepage for ``caret``. If you look at the diff --git a/lib/spack/docs/build_systems/rubypackage.rst b/lib/spack/docs/build_systems/rubypackage.rst index d1deaf6fa79..bfc05dfdd6d 100644 --- a/lib/spack/docs/build_systems/rubypackage.rst +++ b/lib/spack/docs/build_systems/rubypackage.rst @@ -113,7 +113,6 @@ the base class contains: .. code-block:: python extends('ruby') - depends_on('ruby', type=('build', 'run')) The ``*.gemspec`` file may contain something like: diff --git a/lib/spack/spack/build_systems/octave.py b/lib/spack/spack/build_systems/octave.py index 16d6a0a1b8b..b922aa64f42 100644 --- a/lib/spack/spack/build_systems/octave.py +++ b/lib/spack/spack/build_systems/octave.py @@ -5,7 +5,7 @@ import inspect -from spack.directives import depends_on, extends +from spack.directives import extends from spack.package import PackageBase, run_after @@ -27,7 +27,6 @@ class OctavePackage(PackageBase): build_system_class = 'OctavePackage' extends('octave') - depends_on('octave', type=('build', 'run')) def setup_build_environment(self, env): # octave does not like those environment variables to be set: diff --git a/lib/spack/spack/build_systems/perl.py b/lib/spack/spack/build_systems/perl.py index d134dc06f2e..1b76fbf997f 100644 --- a/lib/spack/spack/build_systems/perl.py +++ b/lib/spack/spack/build_systems/perl.py @@ -7,7 +7,7 @@ import inspect import os -from spack.directives import depends_on, extends +from spack.directives import extends from spack.package import PackageBase, run_after from spack.util.executable import Executable from llnl.util.filesystem import filter_file @@ -45,8 +45,6 @@ class PerlPackage(PackageBase): extends('perl') - depends_on('perl', type=('build', 'run')) - def configure_args(self): """Produces a list containing the arguments that must be passed to :py:meth:`~.PerlPackage.configure`. Arguments should not include diff --git a/lib/spack/spack/build_systems/python.py b/lib/spack/spack/build_systems/python.py index d0d3402d708..5694d097bc4 100644 --- a/lib/spack/spack/build_systems/python.py +++ b/lib/spack/spack/build_systems/python.py @@ -6,7 +6,7 @@ import os import shutil -from spack.directives import depends_on, extends +from spack.directives import extends from spack.package import PackageBase, run_after from llnl.util.filesystem import (working_dir, get_filetype, filter_file, @@ -87,8 +87,6 @@ def configure(self, spec, prefix): extends('python') - depends_on('python', type=('build', 'run')) - py_namespace = None @property diff --git a/lib/spack/spack/build_systems/r.py b/lib/spack/spack/build_systems/r.py index 6ee26688335..f0af9dd5e1b 100644 --- a/lib/spack/spack/build_systems/r.py +++ b/lib/spack/spack/build_systems/r.py @@ -6,7 +6,7 @@ import inspect -from spack.directives import depends_on, extends +from spack.directives import extends from spack.package import PackageBase, run_after @@ -31,8 +31,6 @@ class RPackage(PackageBase): extends('r') - depends_on('r', type=('build', 'run')) - def configure_args(self): """Arguments to pass to install via ``--configure-args``.""" return [] diff --git a/lib/spack/spack/build_systems/ruby.py b/lib/spack/spack/build_systems/ruby.py index 32d6633164d..e05b5621424 100644 --- a/lib/spack/spack/build_systems/ruby.py +++ b/lib/spack/spack/build_systems/ruby.py @@ -6,7 +6,7 @@ import glob import inspect -from spack.directives import depends_on, extends +from spack.directives import extends from spack.package import PackageBase, run_after @@ -27,8 +27,6 @@ class RubyPackage(PackageBase): extends('ruby') - depends_on('ruby', type=('build', 'run')) - def build(self, spec, prefix): """Build a Ruby gem.""" diff --git a/lib/spack/spack/directives.py b/lib/spack/spack/directives.py index 65c355edce8..3210dd3d0c4 100644 --- a/lib/spack/spack/directives.py +++ b/lib/spack/spack/directives.py @@ -393,7 +393,7 @@ def _execute_depends_on(pkg): @directive(('extendees', 'dependencies')) -def extends(spec, **kwargs): +def extends(spec, type=('build', 'run'), **kwargs): """Same as depends_on, but allows symlinking into dependency's prefix tree. @@ -414,7 +414,7 @@ def _execute_extends(pkg): if not when_spec: return - _depends_on(pkg, spec, when=when) + _depends_on(pkg, spec, when=when, type=type) pkg.extendees[spec] = (spack.spec.Spec(spec), kwargs) return _execute_extends diff --git a/var/spack/repos/builtin/packages/the-platinum-searcher/package.py b/var/spack/repos/builtin/packages/the-platinum-searcher/package.py index 9c7c6a68a0f..b7b91d8aab1 100644 --- a/var/spack/repos/builtin/packages/the-platinum-searcher/package.py +++ b/var/spack/repos/builtin/packages/the-platinum-searcher/package.py @@ -14,7 +14,7 @@ class ThePlatinumSearcher(Package): version('head') - extends("go", deptypes='build') + extends("go", type='build') def install(self, spec, prefix): env['GOPATH'] = self.stage.source_path + ':' + env['GOPATH']