Add PythonPackage base class

- Add a PythonPackage class with build system support.
  - Support build phases in PythonPackage
  - Add a custom sanity check for PythonPackages
  - Get rid of nolink dependencies in python packages

- Update spack create to use new PythonPackage class

- Port most of Python packages to new PythonPackage class

- Conducted a massive install and activate of Python packages.
  - Fixed bugs introduced by install and activate.

- Update API docs on PythonPackage
This commit is contained in:
Adam J. Stewart
2017-01-16 18:13:37 -08:00
committed by Todd Gamblin
parent 1f49493fee
commit c0aaa8fcea
169 changed files with 849 additions and 1011 deletions

View File

@@ -25,7 +25,7 @@
from spack import *
class PyPypar(Package):
class PyPypar(PythonPackage):
"""Pypar is an efficient but easy-to-use module that allows programs
written in Python to run in parallel on multiple processors and
communicate using MPI."""
@@ -34,13 +34,11 @@ class PyPypar(Package):
version('2.1.5_108', '7a1f28327d2a3b679f9455c843d850b8')
extends('python')
depends_on('mpi')
depends_on('py-numpy')
def install(self, spec, prefix):
with working_dir('source'):
setup_py('install', '--prefix=%s' % prefix)
depends_on('py-numpy', type=('build', 'run'))
def url_for_version(self, version):
return "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pypar/pypar-%s.tgz" % version
def build_directory(self):
return 'source'