Fix #608: broken numpy build.
- Failed to catch all instances of modify_module when it was renamed to setup_dependent_package. - Refactored remaining modify_module calls. - Also modified Python's setup_dependent_package slightly: only creates empty site-packages directory for Python extensions now, not for all dependents.
This commit is contained in:
parent
2d69f386d0
commit
c4134ee71e
@ -160,8 +160,8 @@ def write(self):
|
||||
# package-specific modifications
|
||||
for extendee in self.pkg.extendees:
|
||||
extendee_spec = self.spec[extendee]
|
||||
extendee_spec.package.modify_module(
|
||||
self.pkg.module, extendee_spec, self.spec)
|
||||
extendee_spec.package.setup_dependent_package(
|
||||
self.pkg.module, self.spec)
|
||||
|
||||
# Package-specific environment modifications
|
||||
spack_env = EnvironmentModifications()
|
||||
|
@ -150,7 +150,9 @@ def spec_has_preferred_provider(self, pkgname, provider_str):
|
||||
def version_compare(self, pkgname, a, b):
|
||||
"""Return less-than-0, 0, or greater than 0 if version a of pkgname is
|
||||
respecively less-than, equal-to, or greater-than version b of pkgname.
|
||||
One version is less-than another if it is preferred over the other."""
|
||||
Versions marked 'preferred=True' in package.py take precedence over any
|
||||
versions not marked preferred.
|
||||
"""
|
||||
return self._spec_compare(pkgname, 'version', a, b, True, None)
|
||||
|
||||
|
||||
|
@ -108,7 +108,7 @@ def setup_dependent_environment(self, spack_env, run_env, extension_spec):
|
||||
run_env.set('PYTHONPATH', pythonpath)
|
||||
|
||||
|
||||
def modify_module(self, module, spec, ext_spec):
|
||||
def setup_dependent_package(self, module, ext_spec):
|
||||
"""
|
||||
Called before python modules' install() methods.
|
||||
|
||||
@ -118,16 +118,17 @@ def modify_module(self, module, spec, ext_spec):
|
||||
"""
|
||||
# Python extension builds can have a global python executable function
|
||||
if self.version >= Version("3.0.0") and self.version < Version("4.0.0"):
|
||||
module.python = Executable(join_path(spec.prefix.bin, 'python3'))
|
||||
module.python = Executable(join_path(self.spec.prefix.bin, 'python3'))
|
||||
else:
|
||||
module.python = Executable(join_path(spec.prefix.bin, 'python'))
|
||||
module.python = Executable(join_path(self.spec.prefix.bin, 'python'))
|
||||
|
||||
# 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_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 for extensions, if it does not exist already.
|
||||
if ext_spec.package.is_extension:
|
||||
mkdirp(module.site_packages_dir)
|
||||
|
||||
# ========================================================================
|
||||
|
@ -30,7 +30,7 @@ def setup_dependent_environment(self, spack_env, run_env, extension_spec):
|
||||
# The actual installation path for this gem
|
||||
spack_env.set('GEM_HOME', extension_spec.prefix)
|
||||
|
||||
def modify_module(self, module, spec, ext_spec):
|
||||
def setup_dependent_package(self, module, ext_spec):
|
||||
"""Called before ruby modules' install() methods. Sets GEM_HOME
|
||||
and GEM_PATH to values appropriate for the package being built.
|
||||
|
||||
@ -39,5 +39,5 @@ def modify_module(self, module, spec, ext_spec):
|
||||
gem('install', '<gem-name>.gem')
|
||||
"""
|
||||
# Ruby extension builds have global ruby and gem functions
|
||||
module.ruby = Executable(join_path(spec.prefix.bin, 'ruby'))
|
||||
module.gem = Executable(join_path(spec.prefix.bin, 'gem'))
|
||||
module.ruby = Executable(join_path(self.spec.prefix.bin, 'ruby'))
|
||||
module.gem = Executable(join_path(self.spec.prefix.bin, 'gem'))
|
||||
|
Loading…
Reference in New Issue
Block a user