py-sip installs properly into a prefix

This commit is contained in:
Todd Gamblin 2015-02-15 01:59:36 -08:00
parent c0c0879924
commit 3c0048dd89
2 changed files with 14 additions and 3 deletions

View file

@ -1,4 +1,5 @@
from spack import * from spack import *
import os
class PySip(Package): class PySip(Package):
"""SIP is a tool that makes it very easy to create Python bindings for C and C++ libraries.""" """SIP is a tool that makes it very easy to create Python bindings for C and C++ libraries."""
@ -10,6 +11,10 @@ class PySip(Package):
extends('python') extends('python')
def install(self, spec, prefix): def install(self, spec, prefix):
python('configure.py') python('configure.py',
'--destdir=%s' % site_packages_dir,
'--bindir=%s' % spec.prefix.bin,
'--incdir=%s' % python_include_dir,
'--sipdir=%s' % os.path.join(spec.prefix.share, 'sip'))
make() make()
make('install') make('install')

View file

@ -42,6 +42,11 @@ def python_lib_dir(self):
return os.path.join('lib', 'python%d.%d' % self.version[:2]) return os.path.join('lib', 'python%d.%d' % self.version[:2])
@property
def python_include_dir(self):
return os.path.join('include', 'python%d.%d' % self.version[:2])
@property @property
def site_packages_dir(self): def site_packages_dir(self):
return os.path.join(self.python_lib_dir, 'site-packages') return os.path.join(self.python_lib_dir, 'site-packages')
@ -58,8 +63,9 @@ def setup_dependent_environment(self, module, spec, ext_spec):
module.python = Executable(join_path(spec.prefix.bin, 'python')) module.python = Executable(join_path(spec.prefix.bin, 'python'))
# Add variables for lib/pythonX.Y and lib/pythonX.Y/site-packages dirs. # Add variables for lib/pythonX.Y and lib/pythonX.Y/site-packages dirs.
module.python_lib_dir = os.path.join(ext_spec.prefix, self.python_lib_dir) module.python_lib_dir = os.path.join(ext_spec.prefix, self.python_lib_dir)
module.site_packages_dir = os.path.join(ext_spec.prefix, self.site_packages_dir) module.python_include_dir = os.path.join(ext_spec.prefix, self.python_include_dir)
module.site_packages_dir = os.path.join(ext_spec.prefix, self.site_packages_dir)
# Make the site packages directory if it does not exist already. # Make the site packages directory if it does not exist already.
mkdirp(module.site_packages_dir) mkdirp(module.site_packages_dir)