Add setup_extension_environment() method.
- lets packages do some setup before their extensions run install()
This commit is contained in:
@@ -10,10 +10,4 @@ class PySetuptools(Package):
|
||||
extends('python')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
site_packages_dir = "%s/lib/python2.7/site-packages" % prefix
|
||||
mkdirp(site_packages_dir)
|
||||
|
||||
env['PYTHONPATH'] = site_packages_dir
|
||||
|
||||
python = which('python')
|
||||
python('setup.py', 'install', '--prefix=%s' % prefix)
|
||||
|
@@ -1,5 +1,5 @@
|
||||
from spack import *
|
||||
|
||||
import os
|
||||
|
||||
class Python(Package):
|
||||
"""The Python programming language."""
|
||||
@@ -26,3 +26,24 @@ def install(self, spec, prefix):
|
||||
"--enable-shared")
|
||||
make()
|
||||
make("install")
|
||||
|
||||
|
||||
def setup_extension_environment(self, module, spec, ext_spec):
|
||||
"""Called before python modules' install() methods.
|
||||
|
||||
In most cases, extensions will only need to have one line::
|
||||
|
||||
python('setup.py', 'install', '--prefix=%s' % prefix)
|
||||
"""
|
||||
# Python extension builds can have a global python executable function
|
||||
module.python = Executable(join_path(spec.prefix.bin, 'python'))
|
||||
|
||||
# Add variables for lib/pythonX.Y and lib/pythonX.Y/site-packages dirs.
|
||||
module.python_lib_dir = join_path(ext_spec.prefix.lib, 'python%d.%d' % self.version[:2])
|
||||
module.site_packages_dir = join_path(module.python_lib_dir, 'site-packages')
|
||||
|
||||
# Add site packages directory to the PYTHONPATH
|
||||
os.environ['PYTHONPATH'] = module.site_packages_dir
|
||||
|
||||
# Make the site packages directory if it does not exist already.
|
||||
mkdirp(module.site_packages_dir)
|
||||
|
Reference in New Issue
Block a user