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 PySymengine(Package):
class PySymengine(PythonPackage):
"""Python wrappers for SymEngine, a symbolic manipulation library."""
homepage = "https://github.com/symengine/symengine.py"
@@ -35,13 +35,11 @@ class PySymengine(Package):
version('develop', git='https://github.com/symengine/symengine.py.git')
# Build dependencies
extends('python')
depends_on('python@2.7:2.8,3.3:')
depends_on('py-setuptools', type='build')
depends_on('py-cython@0.19.1:')
depends_on('cmake@2.8.7:', type='build')
depends_on('symengine@0.2.0:')
def install(self, spec, prefix):
python('setup.py', 'install', '--prefix=%s --symengine-dir=%s' %
(prefix, spec['symengine'].prefix))
def build_args(self, spec, prefix):
return ['--symengine-dir={0}'.format(spec['symengine'].prefix)]