summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@googlemail.com>2016-12-28 21:37:02 +0100
committerTodd Gamblin <tgamblin@llnl.gov>2016-12-28 12:37:02 -0800
commit17b13b161b3ddcd691ea7ed90165cfab6dec3950 (patch)
treeb0e9360f878e8d007ab63ede06aa80df89ac4a17 /var
parent857dac88c8c041f1384f9ffd555d8f4abc03e163 (diff)
downloadspack-17b13b161b3ddcd691ea7ed90165cfab6dec3950.tar.gz
spack-17b13b161b3ddcd691ea7ed90165cfab6dec3950.tar.bz2
spack-17b13b161b3ddcd691ea7ed90165cfab6dec3950.tar.xz
spack-17b13b161b3ddcd691ea7ed90165cfab6dec3950.zip
Directive inheritance: laziness for the win (#2623)
* inheritance of directives: using meta-classes to inject attributes coming from directives into packages + lazy directives * _dep_types -> dependency_types * using a meta-class to inject directives into packages * directives are lazy fixes #2466 * directives.py: allows for multiple inheritance. Added blank lines as suggested by @tgamblin * directives.py: added a test for simple inheritance of directives * Minor improvement requested by @tgamblin CMakePackage: importing names from spack.directives directives: wrap __new__ to respect pep8 * Refactoring requested by @tgamblin directives: removed global variables in favor of class variables. Simplified the interface for directives (they return a callable on a package or a list of them).
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin.mock/packages/simple_inheritance/package.py24
-rw-r--r--var/spack/repos/builtin/packages/dealii/package.py1
-rw-r--r--var/spack/repos/builtin/packages/openjpeg/package.py2
-rw-r--r--var/spack/repos/builtin/packages/yaml-cpp/package.py2
4 files changed, 24 insertions, 5 deletions
diff --git a/var/spack/repos/builtin.mock/packages/simple_inheritance/package.py b/var/spack/repos/builtin.mock/packages/simple_inheritance/package.py
new file mode 100644
index 0000000000..3f135b002e
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/simple_inheritance/package.py
@@ -0,0 +1,24 @@
+from spack import *
+
+
+class BaseWithDirectives(Package):
+
+ depends_on('cmake', type='build')
+ depends_on('mpi')
+ variant('openblas', description='Activates openblas', default=True)
+ provides('service1')
+
+
+class SimpleInheritance(BaseWithDirectives):
+ """Simple package which acts as a build dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/simple-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('openblas', when='+openblas')
+ provides('lapack', when='+openblas')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py
index 0207f755f7..8c31b90f51 100644
--- a/var/spack/repos/builtin/packages/dealii/package.py
+++ b/var/spack/repos/builtin/packages/dealii/package.py
@@ -90,7 +90,6 @@ class Dealii(CMakePackage):
"boost@1.59.0:+thread+system+serialization+iostreams+mpi+python",
when='@8.5.0:+mpi+python')
depends_on("bzip2")
- depends_on("cmake", type='build')
depends_on("lapack")
depends_on("muparser")
depends_on("suite-sparse")
diff --git a/var/spack/repos/builtin/packages/openjpeg/package.py b/var/spack/repos/builtin/packages/openjpeg/package.py
index 988ebc155d..b22de4452a 100644
--- a/var/spack/repos/builtin/packages/openjpeg/package.py
+++ b/var/spack/repos/builtin/packages/openjpeg/package.py
@@ -43,5 +43,3 @@ class Openjpeg(CMakePackage):
version('2.0', 'cdf266530fee8af87454f15feb619609')
version('1.5.2', '545f98923430369a6b046ef3632ef95c')
version('1.5.1', 'd774e4b5a0db5f0f171c4fc0aabfa14e')
-
- depends_on('cmake', type='build')
diff --git a/var/spack/repos/builtin/packages/yaml-cpp/package.py b/var/spack/repos/builtin/packages/yaml-cpp/package.py
index a672bbca97..0ced7c89fc 100644
--- a/var/spack/repos/builtin/packages/yaml-cpp/package.py
+++ b/var/spack/repos/builtin/packages/yaml-cpp/package.py
@@ -36,8 +36,6 @@ class YamlCpp(CMakePackage):
variant('fpic', default=False,
description='Build with position independent code')
- depends_on('cmake', type='build')
-
depends_on('boost', when='@:0.5.3')
def cmake_args(self):