Merge branch 'features/optional-deps' into develop
This includes: - Much better variant support (+debug/-debug) - Optional dependency support (depends_on(... , when='<condition>') - New config file format (YAML in ~/.spack) - New Spec format (YAML in $prefix/.spack/spec.yaml)
This commit is contained in:
@@ -1,12 +0,0 @@
|
||||
[compiler "gcc@4.5.0"]
|
||||
cc = /path/to/gcc
|
||||
cxx = /path/to/g++
|
||||
f77 = /path/to/gfortran
|
||||
fc = /path/to/gfortran
|
||||
|
||||
[compiler "clang@3.3"]
|
||||
cc = /path/to/clang
|
||||
cxx = /path/to/clang++
|
||||
f77 = None
|
||||
fc = None
|
||||
|
12
var/spack/mock_configs/site_spackconfig/compilers.yaml
Normal file
12
var/spack/mock_configs/site_spackconfig/compilers.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
compilers:
|
||||
all:
|
||||
clang@3.3:
|
||||
cc: /path/to/clang
|
||||
cxx: /path/to/clang++
|
||||
f77: None
|
||||
fc: None
|
||||
gcc@4.5.0:
|
||||
cc: /path/to/gcc
|
||||
cxx: /path/to/g++
|
||||
f77: /path/to/gfortran
|
||||
fc: /path/to/gfortran
|
12
var/spack/mock_packages/a/package.py
Normal file
12
var/spack/mock_packages/a/package.py
Normal file
@@ -0,0 +1,12 @@
|
||||
from spack import *
|
||||
|
||||
class A(Package):
|
||||
"""Simple package with no dependencies"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/a-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
12
var/spack/mock_packages/b/package.py
Normal file
12
var/spack/mock_packages/b/package.py
Normal file
@@ -0,0 +1,12 @@
|
||||
from spack import *
|
||||
|
||||
class B(Package):
|
||||
"""Simple package with no dependencies"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/b-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
12
var/spack/mock_packages/c/package.py
Normal file
12
var/spack/mock_packages/c/package.py
Normal file
@@ -0,0 +1,12 @@
|
||||
from spack import *
|
||||
|
||||
class C(Package):
|
||||
"""Simple package with no dependencies"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/c-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
12
var/spack/mock_packages/e/package.py
Normal file
12
var/spack/mock_packages/e/package.py
Normal file
@@ -0,0 +1,12 @@
|
||||
from spack import *
|
||||
|
||||
class E(Package):
|
||||
"""Simple package with no dependencies"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/e-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
@@ -30,6 +30,9 @@ class Mpich(Package):
|
||||
list_url = "http://www.mpich.org/static/downloads/"
|
||||
list_depth = 2
|
||||
|
||||
variant('debug', default=False,
|
||||
description="Compile MPICH with debug flags.")
|
||||
|
||||
version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0')
|
||||
version('3.0.3', 'foobarbaz')
|
||||
version('3.0.2', 'foobarbaz')
|
||||
|
@@ -33,6 +33,9 @@ class Mpileaks(Package):
|
||||
version(2.2, 'foobarbaz')
|
||||
version(2.3, 'foobarbaz')
|
||||
|
||||
variant('debug', default=False, description='Debug variant')
|
||||
variant('opt', default=False, description='Optimized variant')
|
||||
|
||||
depends_on("mpi")
|
||||
depends_on("callpath")
|
||||
|
||||
|
18
var/spack/mock_packages/optional-dep-test-2/package.py
Normal file
18
var/spack/mock_packages/optional-dep-test-2/package.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from spack import *
|
||||
|
||||
class OptionalDepTest2(Package):
|
||||
"""Depends on the optional-dep-test package"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/optional-dep-test-2-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
variant('odt', default=False)
|
||||
variant('mpi', default=False)
|
||||
|
||||
depends_on('optional-dep-test', when='+odt')
|
||||
depends_on('optional-dep-test+mpi', when='+mpi')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
29
var/spack/mock_packages/optional-dep-test/package.py
Normal file
29
var/spack/mock_packages/optional-dep-test/package.py
Normal file
@@ -0,0 +1,29 @@
|
||||
from spack import *
|
||||
|
||||
class OptionalDepTest(Package):
|
||||
"""Description"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/optional_dep_test-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
version('1.1', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
variant('a', default=False)
|
||||
variant('f', default=False)
|
||||
variant('mpi', default=False)
|
||||
|
||||
depends_on('a', when='+a')
|
||||
depends_on('b', when='@1.1')
|
||||
depends_on('c', when='%intel')
|
||||
depends_on('d', when='%intel@64.1')
|
||||
depends_on('e', when='%clang@34:40')
|
||||
|
||||
depends_on('f', when='+f')
|
||||
depends_on('g', when='^f')
|
||||
depends_on('mpi', when='^g')
|
||||
|
||||
depends_on('mpi', when='+mpi')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
@@ -139,7 +139,9 @@ def write_easy_install_pth(self, exts):
|
||||
|
||||
|
||||
def activate(self, ext_pkg, **args):
|
||||
args.update(ignore=self.python_ignore(ext_pkg, args))
|
||||
ignore=self.python_ignore(ext_pkg, args)
|
||||
args.update(ignore=ignore)
|
||||
|
||||
super(Python, self).activate(ext_pkg, **args)
|
||||
|
||||
exts = spack.install_layout.extension_map(self.spec)
|
||||
|
Reference in New Issue
Block a user