Mass conversion of setup_(dependent_)?environment (#13924)

* Mass conversion of setup_(dependent_)?environment

* prefix -> self.prefix
This commit is contained in:
Adam J. Stewart 2019-11-29 15:00:44 -06:00 committed by GitHub
parent 92ca639905
commit ab98ef1765
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
188 changed files with 814 additions and 826 deletions

View File

@ -942,7 +942,7 @@ def mpi_setup_dependent_build_environment(
for key, value in wrapper_vars.items(): for key, value in wrapper_vars.items():
env.set(key, value) env.set(key, value)
debug_print("adding to spack_env:", wrapper_vars) debug_print("adding to build env:", wrapper_vars)
# --------------------------------------------------------------------- # ---------------------------------------------------------------------
# General support for child packages # General support for child packages
@ -1054,7 +1054,7 @@ def _setup_dependent_env_callback(
env.append_path('SPACK_COMPILER_EXTRA_RPATHS', env.append_path('SPACK_COMPILER_EXTRA_RPATHS',
env_mods['SPACK_COMPILER_EXTRA_RPATHS']) env_mods['SPACK_COMPILER_EXTRA_RPATHS'])
debug_print("adding/modifying spack_env:", env_mods) debug_print("adding/modifying build env:", env_mods)
if '+mpi' in self.spec or self.provides('mpi'): if '+mpi' in self.spec or self.provides('mpi'):
if compilers_of_client: if compilers_of_client:

View File

@ -29,12 +29,11 @@ class OctavePackage(PackageBase):
extends('octave') extends('octave')
depends_on('octave', type=('build', 'run')) depends_on('octave', type=('build', 'run'))
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
"""Set up the compile and runtime environments for a package."""
# octave does not like those environment variables to be set: # octave does not like those environment variables to be set:
spack_env.unset('CC') env.unset('CC')
spack_env.unset('CXX') env.unset('CXX')
spack_env.unset('FC') env.unset('FC')
def install(self, spec, prefix): def install(self, spec, prefix):
"""Install the package from the archive file""" """Install the package from the archive file"""

View File

@ -141,7 +141,6 @@ def invalid_sha256_digest(fetcher):
assert [] == errors assert [] == errors
@pytest.mark.xfail
def test_api_for_build_and_run_environment(): def test_api_for_build_and_run_environment():
"""Ensure that every package uses the correct API to set build and """Ensure that every package uses the correct API to set build and
run environment, and not the old one. run environment, and not the old one.
@ -182,7 +181,9 @@ def test_prs_update_old_api():
if failed: if failed:
failing.append(name) failing.append(name)
msg = 'there are {0} packages still using old APIs in this PR [{1}]' msg = ('there are {0} packages using the old API to set build '
'and run environment [{1}], for further information see '
'https://github.com/spack/spack/pull/11115')
assert not failing, msg.format( assert not failing, msg.format(
len(failing), ','.join(failing) len(failing), ','.join(failing)
) )

View File

@ -40,11 +40,11 @@ class Amber(Package, CudaPackage):
depends_on('py-matplotlib@:2.9', type=('build', 'run')) depends_on('py-matplotlib@:2.9', type=('build', 'run'))
depends_on('zlib') depends_on('zlib')
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
sp_dir = join_path(self.prefix, 'python2.7/site-packages') sp_dir = join_path(self.prefix, 'python2.7/site-packages')
run_env.set('AMBERHOME', self.prefix) env.set('AMBERHOME', self.prefix)
run_env.prepend_path('PYTHONPATH', sp_dir) env.prepend_path('PYTHONPATH', sp_dir)
def install(self, spec, prefix): def install(self, spec, prefix):
# install AmberTools where it should be # install AmberTools where it should be

View File

@ -173,16 +173,16 @@ def edit(self, spec, prefix):
with open('GNUmakefile', 'w') as file: with open('GNUmakefile', 'w') as file:
file.writelines(contents) file.writelines(contents)
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
# We don't want an AMREX_HOME the user may have set already # We don't want an AMREX_HOME the user may have set already
spack_env.unset('AMREX_HOME') env.unset('AMREX_HOME')
# Help force Amrvis to not pick up random system compilers # Help force Amrvis to not pick up random system compilers
if '+mpi' in self.spec: if '+mpi' in self.spec:
spack_env.set('MPI_HOME', self.spec['mpi'].prefix) env.set('MPI_HOME', self.spec['mpi'].prefix)
spack_env.set('CC', self.spec['mpi'].mpicc) env.set('CC', self.spec['mpi'].mpicc)
spack_env.set('CXX', self.spec['mpi'].mpicxx) env.set('CXX', self.spec['mpi'].mpicxx)
spack_env.set('F77', self.spec['mpi'].mpif77) env.set('F77', self.spec['mpi'].mpif77)
spack_env.set('FC', self.spec['mpi'].mpifc) env.set('FC', self.spec['mpi'].mpifc)
def install(self, spec, prefix): def install(self, spec, prefix):
# Install exe manually # Install exe manually

View File

@ -22,8 +22,8 @@ class Angsd(MakefilePackage):
depends_on('htslib') depends_on('htslib')
conflicts('^htslib@1.6:', when='@0.919') conflicts('^htslib@1.6:', when='@0.919')
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.set('R_LIBS', prefix.R) env.set('R_LIBS', self.prefix.R)
def install(self, spec, prefix): def install(self, spec, prefix):
mkdirp(prefix.bin) mkdirp(prefix.bin)

View File

@ -30,5 +30,5 @@ def install(self, spec, prefix):
make("install") make("install")
install_tree('Scripts', prefix.bin) install_tree('Scripts', prefix.bin)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.set('ANTSPATH', self.prefix.bin) env.set('ANTSPATH', self.prefix.bin)

View File

@ -17,8 +17,8 @@ class AsperaCli(Package):
url='https://download.asperasoft.com/download/sw/cli/3.7.7/aspera-cli-3.7.7.608.927cce8-linux-64-release.sh', url='https://download.asperasoft.com/download/sw/cli/3.7.7/aspera-cli-3.7.7.608.927cce8-linux-64-release.sh',
expand=False) expand=False)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.prepend_path('PATH', self.prefix.cli.bin) env.prepend_path('PATH', self.prefix.cli.bin)
def install(self, spec, prefix): def install(self, spec, prefix):
runfile = glob(join_path(self.stage.source_path, 'aspera-cli*.sh'))[0] runfile = glob(join_path(self.stage.source_path, 'aspera-cli*.sh'))[0]

View File

@ -44,5 +44,5 @@ def install(self, spec, prefix):
filter_file('astral.jar', join_path(prefix.tools, jar_file), filter_file('astral.jar', join_path(prefix.tools, jar_file),
script, **kwargs) script, **kwargs)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.set('ASTRAL_HOME', self.prefix.tools) env.set('ASTRAL_HOME', self.prefix.tools)

View File

@ -35,6 +35,6 @@ def url_for_version(self, version):
url = 'http://ftp.gnome.org/pub/gnome/sources/at-spi2-core' url = 'http://ftp.gnome.org/pub/gnome/sources/at-spi2-core'
return url + '/%s/at-spi2-core-%s.tar.xz' % (version.up_to(2), version) return url + '/%s/at-spi2-core-%s.tar.xz' % (version.up_to(2), version)
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
# this avoids an "import site" error in the build # this avoids an "import site" error in the build
spack_env.unset('PYTHONHOME') env.unset('PYTHONHOME')

View File

@ -35,11 +35,11 @@ def url_for_version(self, version):
url = 'http://ftp.gnome.org/pub/gnome/sources/atk' url = 'http://ftp.gnome.org/pub/gnome/sources/atk'
return url + '/%s/atk-%s.tar.xz' % (version.up_to(2), version) return url + '/%s/atk-%s.tar.xz' % (version.up_to(2), version)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS", env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
self.prefix.share)
run_env.prepend_path("XDG_DATA_DIRS", def setup_dependent_run_environment(self, env, dependent_spec):
self.prefix.share) env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def install(self, spec, prefix): def install(self, spec, prefix):
with working_dir('spack-build', create=True): with working_dir('spack-build', create=True):

View File

@ -20,6 +20,6 @@ class Bbmap(Package):
def install(self, spec, prefix): def install(self, spec, prefix):
install_tree('.', prefix.bin) install_tree('.', prefix.bin)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.set('BBMAP_CONFIG', self.prefix.bin.config) env.set('BBMAP_CONFIG', self.prefix.bin.config)
run_env.set('BBMAP_RESOURCES', self.prefix.bin.resources) env.set('BBMAP_RESOURCES', self.prefix.bin.resources)

View File

@ -22,8 +22,8 @@ class Beast2(Package):
depends_on('java') depends_on('java')
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.set('BEAST', self.prefix) env.set('BEAST', self.prefix)
def install(self, spec, prefix): def install(self, spec, prefix):
install_tree('bin', prefix.bin) install_tree('bin', prefix.bin)

View File

@ -45,10 +45,7 @@ def install(self, spec, prefix):
install_tree('hdf', prefix.hdf) install_tree('hdf', prefix.hdf)
install_tree('pbdata', prefix.pbdata) install_tree('pbdata', prefix.pbdata)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.prepend_path('LD_LIBRARY_PATH', env.prepend_path('LD_LIBRARY_PATH', self.spec.prefix.hdf)
self.spec.prefix.hdf) env.prepend_path('LD_LIBRARY_PATH', self.spec.prefix.alignment)
spack_env.prepend_path('LD_LIBRARY_PATH', env.prepend_path('LD_LIBRARY_PATH', self.spec.prefix.pbdata)
self.spec.prefix.alignment)
spack_env.prepend_path('LD_LIBRARY_PATH',
self.spec.prefix.pbdata)

View File

@ -26,19 +26,19 @@ class Blasr(Package):
phases = ['configure', 'build', 'install'] phases = ['configure', 'build', 'install']
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
run_env.prepend_path('PATH', self.spec.prefix.utils) env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix)
spack_env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix) env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix.pbdata)
spack_env.prepend_path('CPATH', self.spec[ env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix.alignment)
'blasr-libcpp'].prefix.pbdata) env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix.hdf)
spack_env.prepend_path('CPATH', self.spec[
'blasr-libcpp'].prefix.alignment)
spack_env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix.hdf)
# hdf has +mpi by default, so handle that possibility # hdf has +mpi by default, so handle that possibility
if ('+mpi' in self.spec['hdf5']): if ('+mpi' in self.spec['hdf5']):
spack_env.set('CC', self.spec['mpi'].mpicc) env.set('CC', self.spec['mpi'].mpicc)
spack_env.set('CXX', self.spec['mpi'].mpicxx) env.set('CXX', self.spec['mpi'].mpicxx)
def setup_run_environment(self, env):
env.prepend_path('PATH', self.spec.prefix.utils)
def configure(self, spec, prefix): def configure(self, spec, prefix):
configure_args = [ configure_args = [

View File

@ -17,8 +17,8 @@ class Blat(Package):
depends_on('libpng') depends_on('libpng')
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
spack_env.set('MACHTYPE', 'x86_64') env.set('MACHTYPE', 'x86_64')
def install(self, spec, prefix): def install(self, spec, prefix):
mkdirp(prefix.bin) mkdirp(prefix.bin)

View File

@ -201,11 +201,11 @@ def cmake_args(self):
# #
# Environment setup # Environment setup
# #
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
# Bohrium needs an extra include dir apart from # Bohrium needs an extra include dir apart from
# the self.prefix.include dir # the self.prefix.include dir
run_env.prepend_path("CPATH", self.prefix.include.bohrium) env.prepend_path("CPATH", self.prefix.include.bohrium)
run_env.set("BH_CONFIG", self.config_file) env.set("BH_CONFIG", self.config_file)
# #
# Quick tests # Quick tests

View File

@ -62,5 +62,5 @@ def filter_sbang(self):
for file in files: for file in files:
filter_file(pattern, repl, *files, backup=False) filter_file(pattern, repl, *files, backup=False)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.prepend_path('PERL5LIB', prefix.lib) env.prepend_path('PERL5LIB', self.prefix.lib)

View File

@ -30,8 +30,6 @@ class Breseq(AutotoolsPackage):
conflicts('%gcc@:4.8') conflicts('%gcc@:4.8')
conflicts('%clang@:3.3') conflicts('%clang@:3.3')
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
spack_env.set('LDFLAGS', env.set('LDFLAGS', "-L{0}".format(self.spec['zlib'].prefix.lib))
"-L{0}".format(self.spec['zlib'].prefix.lib)) env.set('CFLAGS', "-I{0}".format(self.spec['zlib'].prefix.include))
spack_env.set('CFLAGS',
"-I{0}".format(self.spec['zlib'].prefix.include))

View File

@ -25,5 +25,5 @@ class Casper(MakefilePackage):
def install(self, spec, prefix): def install(self, spec, prefix):
install_tree('.', prefix) install_tree('.', prefix)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.prepend_path('PATH', self.spec.prefix) env.prepend_path('PATH', self.spec.prefix)

View File

@ -148,7 +148,7 @@ def do_stage(self, mirror_only=False):
tty.msg("Already generated %s in %s" % (self.name, tty.msg("Already generated %s in %s" % (self.name,
self.stage.source_path)) self.stage.source_path))
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
# paraview 5.5 and later # paraview 5.5 and later
# - cmake under lib/cmake/paraview-5.5 # - cmake under lib/cmake/paraview-5.5
# - libs under lib # - libs under lib
@ -160,18 +160,18 @@ def setup_environment(self, spack_env, run_env):
if self.spec.version <= Version('5.4.1'): if self.spec.version <= Version('5.4.1'):
lib_dir = join_path(lib_dir, paraview_subdir) lib_dir = join_path(lib_dir, paraview_subdir)
run_env.set('ParaView_DIR', self.prefix) env.set('ParaView_DIR', self.prefix)
run_env.prepend_path('LIBRARY_PATH', lib_dir) env.prepend_path('LIBRARY_PATH', lib_dir)
run_env.prepend_path('LD_LIBRARY_PATH', lib_dir) env.prepend_path('LD_LIBRARY_PATH', lib_dir)
if '+python' in self.spec or '+python3' in self.spec: if '+python' in self.spec or '+python3' in self.spec:
python_version = self.spec['python'].version.up_to(2) python_version = self.spec['python'].version.up_to(2)
run_env.prepend_path('PYTHONPATH', join_path(lib_dir, env.prepend_path('PYTHONPATH', join_path(lib_dir,
'python{0}'.format(python_version), 'python{0}'.format(python_version),
'site-packages')) 'site-packages'))
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.set('ParaView_DIR', self.prefix) env.set('ParaView_DIR', self.prefix)
@property @property
def root_cmakelists_dir(self): def root_cmakelists_dir(self):

View File

@ -31,27 +31,27 @@ class Cbench(MakefilePackage):
conflicts('%xl') conflicts('%xl')
conflicts('%xl_r') conflicts('%xl_r')
def setup_environment(self, build_env, run_env): def setup_build_environment(self, env):
# The location of the Cbench source tree # The location of the Cbench source tree
build_env.set('CBENCHOME', self.stage.source_path) env.set('CBENCHOME', self.stage.source_path)
# The location that will contain all of your tests and their results # The location that will contain all of your tests and their results
build_env.set('CBENCHTEST', self.prefix) env.set('CBENCHTEST', self.prefix)
# The location of the system MPI tree # The location of the system MPI tree
build_env.set('MPIHOME', self.spec['mpi'].prefix) env.set('MPIHOME', self.spec['mpi'].prefix)
# Pick the compiler collection/chain you want to compile with. # Pick the compiler collection/chain you want to compile with.
# Examples include: intel, gcc, pgi. # Examples include: intel, gcc, pgi.
build_env.set('COMPILERCOLLECTION', self.compiler.name) env.set('COMPILERCOLLECTION', self.compiler.name)
# Linking flags for BLAS/LAPACK and FFTW # Linking flags for BLAS/LAPACK and FFTW
build_env.set('BLASLIB', self.spec['blas'].libs.ld_flags) env.set('BLASLIB', self.spec['blas'].libs.ld_flags)
build_env.set('LAPACKLIB', self.spec['lapack'].libs.ld_flags) env.set('LAPACKLIB', self.spec['lapack'].libs.ld_flags)
build_env.set('FFTWLIB', self.spec['fftw'].libs.ld_flags) env.set('FFTWLIB', self.spec['fftw'].libs.ld_flags)
# The number of make jobs (commands) to run simultaneously # The number of make jobs (commands) to run simultaneously
build_env.set('JOBS', str(make_jobs)) env.set('JOBS', str(make_jobs))
@run_before('build') @run_before('build')
@on_package_attributes(run_tests=True) @on_package_attributes(run_tests=True)

View File

@ -31,5 +31,5 @@ def build(self, spec, prefix):
make_args.append('zlib=no') make_args.append('zlib=no')
make(*make_args) make(*make_args)
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
spack_env.set('PREFIX', prefix.bin) env.set('PREFIX', self.prefix.bin)

View File

@ -82,17 +82,17 @@ class Charmpp(Package):
provides('mpi@2', when='@6.7.1: build-target=AMPI backend={0}'.format(b)) provides('mpi@2', when='@6.7.1: build-target=AMPI backend={0}'.format(b))
provides('mpi@2', when='@6.7.1: build-target=LIBS backend={0}'.format(b)) provides('mpi@2', when='@6.7.1: build-target=LIBS backend={0}'.format(b))
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.set('MPICC', join_path(self.prefix.bin, 'ampicc')) env.set('MPICC', self.prefix.bin.ampicc)
spack_env.set('MPICXX', join_path(self.prefix.bin, 'ampicxx')) env.set('MPICXX', self.prefix.bin.ampicxx)
spack_env.set('MPIF77', join_path(self.prefix.bin, 'ampif77')) env.set('MPIF77', self.prefix.bin.ampif77)
spack_env.set('MPIF90', join_path(self.prefix.bin, 'ampif90')) env.set('MPIF90', self.prefix.bin.ampif90)
def setup_dependent_package(self, module, dependent_spec): def setup_dependent_package(self, module, dependent_spec):
self.spec.mpicc = join_path(self.prefix.bin, 'ampicc') self.spec.mpicc = self.prefix.bin.ampicc
self.spec.mpicxx = join_path(self.prefix.bin, 'ampicxx') self.spec.mpicxx = self.prefix.bin.ampicxx
self.spec.mpifc = join_path(self.prefix.bin, 'ampif90') self.spec.mpifc = self.prefix.bin.ampif90
self.spec.mpif77 = join_path(self.prefix.bin, 'ampif77') self.spec.mpif77 = self.prefix.bin.ampif77
depends_on("mpi", when="backend=mpi") depends_on("mpi", when="backend=mpi")
depends_on("papi", when="+papi") depends_on("papi", when="+papi")

View File

@ -35,22 +35,27 @@ def autoreconf(self, spec, prefix):
bash = which('bash') bash = which('bash')
bash('./bootstrap') bash('./bootstrap')
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
rose_home = self.spec['rose'].prefix rose_home = self.spec['rose'].prefix
boost_home = self.spec['boost'].prefix boost_home = self.spec['boost'].prefix
iegen_home = self.spec['iegenlib'].prefix iegen_home = self.spec['iegenlib'].prefix
spack_env.append_path('LD_LIBRARY_PATH', rose_home.lib) env.set('ROSEHOME', rose_home)
spack_env.append_path('LD_LIBRARY_PATH', boost_home.lib) env.set('BOOSTHOME', boost_home)
spack_env.append_path('LD_LIBRARY_PATH', iegen_home.lib) env.set('IEGENHOME', iegen_home)
run_env.append_path('LD_LIBRARY_PATH', rose_home.lib) env.append_path('LD_LIBRARY_PATH', rose_home.lib)
run_env.append_path('LD_LIBRARY_PATH', boost_home.lib) env.append_path('LD_LIBRARY_PATH', boost_home.lib)
run_env.append_path('LD_LIBRARY_PATH', iegen_home.lib) env.append_path('LD_LIBRARY_PATH', iegen_home.lib)
spack_env.set('ROSEHOME', rose_home) def setup_run_environment(self, env):
spack_env.set('BOOSTHOME', boost_home) rose_home = self.spec['rose'].prefix
spack_env.set('IEGENHOME', iegen_home) boost_home = self.spec['boost'].prefix
iegen_home = self.spec['iegenlib'].prefix
env.append_path('LD_LIBRARY_PATH', rose_home.lib)
env.append_path('LD_LIBRARY_PATH', boost_home.lib)
env.append_path('LD_LIBRARY_PATH', iegen_home.lib)
def configure_args(self): def configure_args(self):
args = ['--with-rose={0}'.format(self.spec['rose'].prefix), args = ['--with-rose={0}'.format(self.spec['rose'].prefix),

View File

@ -29,5 +29,5 @@ def install(self, spec, prefix):
os.rename('chlorop', 'bin/chlorop') os.rename('chlorop', 'bin/chlorop')
install_tree('.', prefix) install_tree('.', prefix)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.set('CHLOROP', self.prefix) env.set('CHLOROP', self.prefix)

View File

@ -23,6 +23,6 @@ def install(self, spec, prefix):
# (CMake) Header Only library so just copy # (CMake) Header Only library so just copy
install_tree(self.stage.source_path, prefix) install_tree(self.stage.source_path, prefix)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.prepend_path('CMAKE_PREFIX_PATH', self.prefix) env.prepend_path('CMAKE_PREFIX_PATH', self.prefix)
spack_env.set('CINCH_SOURCE_DIR', self.prefix) env.set('CINCH_SOURCE_DIR', self.prefix)

View File

@ -36,9 +36,9 @@ class Citcoms(AutotoolsPackage):
conflicts('+pyre', when='@3.3:', msg='Pyre support was removed from 3.3+') conflicts('+pyre', when='@3.3:', msg='Pyre support was removed from 3.3+')
conflicts('+exchanger', when='@3.3:', msg='Exchanger support was removed from 3.3+') conflicts('+exchanger', when='@3.3:', msg='Exchanger support was removed from 3.3+')
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
if '+ggrd' in self.spec: if '+ggrd' in self.spec:
spack_env.set('HC_HOME', self.spec['hc'].prefix) env.set('HC_HOME', self.spec['hc'].prefix)
def configure_args(self): def configure_args(self):
args = ['CC={0}'.format(self.spec['mpi'].mpicc)] args = ['CC={0}'.format(self.spec['mpi'].mpicc)]

View File

@ -215,7 +215,7 @@ def install(self, spec, prefix):
if not os.path.exists('make_surface'): if not os.path.exists('make_surface'):
os.symlink(make_surface, 'make_surface') os.symlink(make_surface, 'make_surface')
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
# CONVERGE searches for a valid license file in: # CONVERGE searches for a valid license file in:
# $CONVERGE_ROOT/license/license.lic # $CONVERGE_ROOT/license/license.lic
run_env.set('CONVERGE_ROOT', self.prefix) env.set('CONVERGE_ROOT', self.prefix)

View File

@ -21,8 +21,8 @@ class Cppunit(AutotoolsPackage):
multi=False, multi=False,
description='Use the specified C++ standard when building.') description='Use the specified C++ standard when building.')
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
cxxstd = self.spec.variants['cxxstd'].value cxxstd = self.spec.variants['cxxstd'].value
cxxstdflag = '' if cxxstd == 'default' else \ cxxstdflag = '' if cxxstd == 'default' else \
getattr(self.compiler, 'cxx{0}_flag'.format(cxxstd)) getattr(self.compiler, 'cxx{0}_flag'.format(cxxstd))
spack_env.append_flags('CXXFLAGS', cxxstdflag) env.append_flags('CXXFLAGS', cxxstdflag)

View File

@ -47,7 +47,10 @@ def configure_args(self):
] ]
return args return args
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
"""Prepend the sbin directory to PATH.""" """Prepend the sbin directory to PATH."""
spack_env.prepend_path('PATH', self.prefix.sbin) env.prepend_path('PATH', self.prefix.sbin)
run_env.prepend_path('PATH', self.prefix.sbin)
def setup_dependent_run_environment(self, env, dependent_spec):
"""Prepend the sbin directory to PATH."""
env.prepend_path('PATH', self.prefix.sbin)

View File

@ -54,7 +54,7 @@ def install(self, spec, prefix):
make() make()
make('install') make('install')
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
# default path for log file, could be user or site specific setting # default path for log file, could be user or site specific setting
darshan_log_dir = '%s' % os.environ['HOME'] darshan_log_dir = os.environ['HOME']
run_env.set('DARSHAN_LOG_DIR_PATH', darshan_log_dir) env.set('DARSHAN_LOG_DIR_PATH', darshan_log_dir)

View File

@ -17,5 +17,5 @@ class DealiiParameterGui(CMakePackage):
depends_on('qt') depends_on('qt')
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.set('PARAMETER_GUI_DIR', self.prefix) env.set('PARAMETER_GUI_DIR', self.prefix)

View File

@ -37,5 +37,5 @@ def install(self, spec, prefix):
chmod('+x', join_path(prefix.bin, 'deconseq.pl')) chmod('+x', join_path(prefix.bin, 'deconseq.pl'))
chmod('+x', join_path(prefix.bin, 'splitFasta.pl')) chmod('+x', join_path(prefix.bin, 'splitFasta.pl'))
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.prepend_path('PERL5LIB', prefix) env.prepend_path('PERL5LIB', self.prefix)

View File

@ -24,5 +24,5 @@ def install(self, spec, prefix):
mkdirp(prefix.share) mkdirp(prefix.share)
install_tree('dialign2_dir', prefix.share) install_tree('dialign2_dir', prefix.share)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.set('DIALIGN2_DIR', self.prefix.share) env.set('DIALIGN2_DIR', self.prefix.share)

View File

@ -32,10 +32,10 @@ class Dmd(MakefilePackage):
sha256='71fa249dbfd278eec2b95ce577af32e623e44caf0d993905ddc189e3beec21d0', sha256='71fa249dbfd278eec2b95ce577af32e623e44caf0d993905ddc189e3beec21d0',
placement='tools') placement='tools')
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.prepend_path('PATH', self.prefix.linux.bin64) env.prepend_path('PATH', self.prefix.linux.bin64)
run_env.prepend_path('LIBRARY_PATH', self.prefix.linux.lib64) env.prepend_path('LIBRARY_PATH', self.prefix.linux.lib64)
run_env.prepend_path('LD_LIBRARY_PATH', self.prefix.linux.lib64) env.prepend_path('LD_LIBRARY_PATH', self.prefix.linux.lib64)
def edit(self, spec, prefix): def edit(self, spec, prefix):
# Move contents to dmd/ # Move contents to dmd/

View File

@ -26,10 +26,10 @@ def install(self, spec, prefix):
def catalog(self): def catalog(self):
return os.path.join(self.prefix, 'catalog.xml') return os.path.join(self.prefix, 'catalog.xml')
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
catalog = self.catalog catalog = self.catalog
run_env.set('XML_CATALOG_FILES', catalog, separator=' ') env.set('XML_CATALOG_FILES', catalog, separator=' ')
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
catalog = self.catalog catalog = self.catalog
spack_env.prepend_path("XML_CATALOG_FILES", catalog) env.prepend_path("XML_CATALOG_FILES", catalog)

View File

@ -45,6 +45,3 @@ def build(self, spec, prefix):
def install(self, spec, prefix): def install(self, spec, prefix):
mkdirp(spec.prefix.bin) mkdirp(spec.prefix.bin)
install('ecj1', spec.prefix.bin) install('ecj1', spec.prefix.bin)
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('PATH', self.prefix.bin)

View File

@ -48,9 +48,8 @@ class Eigen(CMakePackage):
patch('find-ptscotch.patch', when='@3.3.4') patch('find-ptscotch.patch', when='@3.3.4')
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.prepend_path('CPATH', env.prepend_path('CPATH', self.prefix.include.eigen3)
join_path(self.prefix, 'include', 'eigen3'))
@property @property
def headers(self): def headers(self):

View File

@ -18,6 +18,3 @@ class EverytraceExample(CMakePackage):
# Currently the only MPI this everytrace works with. # Currently the only MPI this everytrace works with.
depends_on('openmpi') depends_on('openmpi')
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('PATH', join_path(self.prefix, 'bin'))

View File

@ -31,6 +31,3 @@ def cmake_args(self):
'-DUSE_MPI=%s' % ('YES' if '+mpi' in spec else 'NO'), '-DUSE_MPI=%s' % ('YES' if '+mpi' in spec else 'NO'),
'-DUSE_FORTRAN=%s' % ('YES' if '+fortran' in spec else 'NO'), '-DUSE_FORTRAN=%s' % ('YES' if '+fortran' in spec else 'NO'),
'-DUSE_CXX=%s' % ('YES' if '+cxx' in spec else 'NO')] '-DUSE_CXX=%s' % ('YES' if '+cxx' in spec else 'NO')]
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('PATH', join_path(self.prefix, 'bin'))

View File

@ -40,6 +40,6 @@ def patch(self):
edit.filter(r'\${CMAKE_CURRENT_SOURCE_DIR}/../bamtools/lib/' edit.filter(r'\${CMAKE_CURRENT_SOURCE_DIR}/../bamtools/lib/'
'libbamtools.a', '%s' % self.spec['bamtools'].libs) 'libbamtools.a', '%s' % self.spec['bamtools'].libs)
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
spack_env.prepend_path('CPATH', self.spec[ env.prepend_path('CPATH',
'bamtools'].prefix.include.bamtools) self.spec['bamtools'].prefix.include.bamtools)

View File

@ -101,10 +101,10 @@ def install(self, spec, prefix):
else: else:
make('install', parallel=False) make('install', parallel=False)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
# set EXTRAE_HOME in the module file # set EXTRAE_HOME in the module file
run_env.set('EXTRAE_HOME', self.prefix) env.set('EXTRAE_HOME', self.prefix)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
# set EXTRAE_HOME for everyone using the Extrae package # set EXTRAE_HOME for everyone using the Extrae package
spack_env.set('EXTRAE_HOME', self.prefix) env.set('EXTRAE_HOME', self.prefix)

View File

@ -34,8 +34,8 @@ def install(self, spec, prefix):
# In theory the 'run' dependency on 'jdk' above should take # In theory the 'run' dependency on 'jdk' above should take
# care of this for me. In practice, it does not. # care of this for me. In practice, it does not.
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
"""Add <prefix> to the path; the package has a script at the """Add <prefix> to the path; the package has a script at the
top level. top level.
""" """
run_env.prepend_path('PATH', self.spec['java'].prefix.bin) env.prepend_path('PATH', self.spec['java'].prefix.bin)

View File

@ -34,6 +34,6 @@ class Fgsl(AutotoolsPackage):
def create_m4_dir(self): def create_m4_dir(self):
mkdir('m4') mkdir('m4')
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
if self.compiler.name == 'gcc': if self.compiler.name == 'gcc':
spack_env.append_flags('FCFLAGS', "-ffree-line-length-none") env.append_flags('FCFLAGS', "-ffree-line-length-none")

View File

@ -71,9 +71,11 @@ def post_install(self):
chmod = which('chmod') chmod = which('chmod')
chmod('+x', flang) chmod('+x', flang)
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
# to find llvm's libc++.so # to find llvm's libc++.so
spack_env.set('LD_LIBRARY_PATH', self.spec['llvm'].prefix.lib) env.set('LD_LIBRARY_PATH', self.spec['llvm'].prefix.lib)
run_env.set('FC', join_path(self.spec.prefix.bin, 'flang'))
run_env.set('F77', join_path(self.spec.prefix.bin, 'flang')) def setup_run_environment(self, env):
run_env.set('F90', join_path(self.spec.prefix.bin, 'flang')) env.set('FC', self.spec.prefix.bin.flang)
env.set('F77', self.spec.prefix.bin.flang)
env.set('F90', self.spec.prefix.bin.flang)

View File

@ -118,7 +118,7 @@ class FoamExtend(Package):
# - End of definitions / setup - # - End of definitions / setup -
# #
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
"""Add environment variables to the generated module file. """Add environment variables to the generated module file.
These environment variables come from running: These environment variables come from running:
@ -126,13 +126,6 @@ def setup_environment(self, spack_env, run_env):
$ . $WM_PROJECT_DIR/etc/bashrc $ . $WM_PROJECT_DIR/etc/bashrc
""" """
# NOTE: Spack runs setup_environment twice.
# 1) pre-build to set up the build environment
# 2) post-install to determine runtime environment variables
# The etc/bashrc is only available (with corrrect content)
# post-installation.
bashrc = join_path(self.projectdir, 'etc', 'bashrc') bashrc = join_path(self.projectdir, 'etc', 'bashrc')
minimal = True minimal = True
if os.path.isfile(bashrc): if os.path.isfile(bashrc):
@ -173,7 +166,7 @@ def setup_environment(self, spack_env, run_env):
'PYTHON_BIN_DIR', 'PYTHON_BIN_DIR',
]) ])
run_env.extend(mods) env.extend(mods)
minimal = False minimal = False
tty.info('foam-extend env: {0}'.format(bashrc)) tty.info('foam-extend env: {0}'.format(bashrc))
except Exception: except Exception:
@ -182,19 +175,19 @@ def setup_environment(self, spack_env, run_env):
if minimal: if minimal:
# pre-build or minimal environment # pre-build or minimal environment
tty.info('foam-extend minimal env {0}'.format(self.prefix)) tty.info('foam-extend minimal env {0}'.format(self.prefix))
run_env.set('FOAM_INST_DIR', os.path.dirname(self.projectdir)), env.set('FOAM_INST_DIR', os.path.dirname(self.projectdir)),
run_env.set('FOAM_PROJECT_DIR', self.projectdir) env.set('FOAM_PROJECT_DIR', self.projectdir)
run_env.set('WM_PROJECT_DIR', self.projectdir) env.set('WM_PROJECT_DIR', self.projectdir)
for d in ['wmake', self.archbin]: # bin added automatically for d in ['wmake', self.archbin]: # bin added automatically
run_env.prepend_path('PATH', join_path(self.projectdir, d)) env.prepend_path('PATH', join_path(self.projectdir, d))
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
"""Location of the OpenFOAM project. """Location of the OpenFOAM project.
This is identical to the WM_PROJECT_DIR value, but we avoid that This is identical to the WM_PROJECT_DIR value, but we avoid that
variable since it would mask the normal OpenFOAM cleanup of variable since it would mask the normal OpenFOAM cleanup of
previous versions. previous versions.
""" """
spack_env.set('FOAM_PROJECT_DIR', self.projectdir) env.set('FOAM_PROJECT_DIR', self.projectdir)
@property @property
def projectdir(self): def projectdir(self):

View File

@ -77,10 +77,9 @@ class FontUtil(AutotoolsPackage):
default=','.join(fonts), default=','.join(fonts),
multi=True) multi=True)
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
spack_env.prepend_path('PATH', self.prefix.bin) env.prepend_path('PATH', self.prefix.bin)
spack_env.prepend_path('PKG_CONFIG_PATH', env.prepend_path('PKG_CONFIG_PATH', self.prefix.lib.pkgconfig)
join_path(self.prefix.lib, 'pkgconfig'))
@run_after('install') @run_after('install')
def font_install(self): def font_install(self):

View File

@ -51,33 +51,33 @@ def install(self, spec, prefix):
install_tree('.', prefix) install_tree('.', prefix)
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
if not self.stage.source_path: if not self.stage.source_path:
self.stage.fetch() self.stage.fetch()
self.stage.expand_archive() self.stage.expand_archive()
spack_env.set('FSLDIR', self.stage.source_path) env.set('FSLDIR', self.stage.source_path)
# Here, run-time environment variables are being set manually.
# Normally these would be added to the modulefile at build-time
# by sourcing fsl.sh, but incorrect paths were being set, pointing to
# the staging directory rather than the install directory.
run_env.set('FSLDIR', self.prefix)
run_env.set('FSLOUTPUTTYPE', 'NIFTI_GZ')
run_env.set('FSLMULTIFILEQUIT', 'TRUE')
run_env.set('FSLTCLSH', self.prefix.bin.fsltclsh)
run_env.set('FSLWISH', self.prefix.bin.fslwish)
run_env.set('FSLLOCKDIR', '')
run_env.set('FSLMACHINELIST', '')
run_env.set('FSLREMOTECALL', '')
run_env.set('FSLGECUDAQ', 'cuda.q')
run_env.prepend_path('PATH', self.prefix)
# Below is for sourcing purposes during building # Below is for sourcing purposes during building
fslsetup = join_path(self.stage.source_path, 'etc', 'fslconf', fslsetup = join_path(self.stage.source_path, 'etc', 'fslconf',
'fsl.sh') 'fsl.sh')
if os.path.isfile(fslsetup): if os.path.isfile(fslsetup):
spack_env.extend(EnvironmentModifications.from_sourcing_file( env.extend(EnvironmentModifications.from_sourcing_file(fslsetup))
fslsetup))
def setup_run_environment(self, env):
# Here, run-time environment variables are being set manually.
# Normally these would be added to the modulefile at build-time
# by sourcing fsl.sh, but incorrect paths were being set, pointing to
# the staging directory rather than the install directory.
env.set('FSLDIR', self.prefix)
env.set('FSLOUTPUTTYPE', 'NIFTI_GZ')
env.set('FSLMULTIFILEQUIT', 'TRUE')
env.set('FSLTCLSH', self.prefix.bin.fsltclsh)
env.set('FSLWISH', self.prefix.bin.fslwish)
env.set('FSLLOCKDIR', '')
env.set('FSLMACHINELIST', '')
env.set('FSLREMOTECALL', '')
env.set('FSLGECUDAQ', 'cuda.q')
env.prepend_path('PATH', self.prefix)

View File

@ -33,8 +33,8 @@ def setup_dependent_package(self, module, dependent_spec):
self.spec.mpif77 = self.prefix.bin.mpifrt self.spec.mpif77 = self.prefix.bin.mpifrt
self.spec.mpifc = self.prefix.bin.mpifrt self.spec.mpifc = self.prefix.bin.mpifrt
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.set('MPICC', self.prefix.bin.mpifcc) env.set('MPICC', self.prefix.bin.mpifcc)
spack_env.set('MPICXX', self.prefix.bin.mpiFCC) env.set('MPICXX', self.prefix.bin.mpiFCC)
spack_env.set('MPIF77', self.prefix.bin.mpifrt) env.set('MPIF77', self.prefix.bin.mpifrt)
spack_env.set('MPIF90', self.prefix.bin.mpifrt) env.set('MPIF90', self.prefix.bin.mpifrt)

View File

@ -21,8 +21,8 @@ def install(self, spec, prefix):
.format(self.version)) .format(self.version))
install_tree(self.stage.source_path, install_path) install_tree(self.stage.source_path, install_path)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_run_environment(self, env, dependent_spec):
run_env.set('G4ENSDFSTATEDATA', join_path(prefix.share, 'data')) env.set('G4ENSDFSTATEDATA', self.prefix.share.data)
def url_for_version(self, version): def url_for_version(self, version):
"""Handle version string.""" """Handle version string."""

View File

@ -20,10 +20,9 @@ class Gams(Package):
def url_for_version(self, version): def url_for_version(self, version):
return "file://{0}/linux_x64_64_sfx.exe".format(os.getcwd()) return "file://{0}/linux_x64_64_sfx.exe".format(os.getcwd())
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.prepend_path("PATH", join_path(self.prefix, env.prepend_path("PATH", join_path(
'gams{0}_linux_x64_64_sfx' self.prefix, 'gams{0}_linux_x64_64_sfx'.format(self.version)))
.format(self.version)))
def install(self, spec, prefix): def install(self, spec, prefix):
os.chmod(join_path(self.stage.source_path, os.chmod(join_path(self.stage.source_path,

View File

@ -87,7 +87,7 @@ def install(self, spec, prefix):
**kwargs **kwargs
) )
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.prepend_path( env.prepend_path(
"GATK", join_path(self.prefix, "bin", "GenomeAnalysisTK.jar") "GATK", join_path(self.prefix.bin, "GenomeAnalysisTK.jar")
) )

View File

@ -38,15 +38,14 @@ def install(self, spec, prefix):
filter_file('/usr/bin/linda', prefix.bin, join_path(prefix.bin, filter_file('/usr/bin/linda', prefix.bin, join_path(prefix.bin,
filename), string='True') filename), string='True')
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.set('g09root', self.prefix) env.set('g09root', self.prefix)
run_env.set('GAUSSIANHOME', self.prefix) env.set('GAUSSIANHOME', self.prefix)
run_env.set('GAUSS_EXEDIR', self.prefix.bin) env.set('GAUSS_EXEDIR', self.prefix.bin)
run_env.set('G09_BASIS', join_path(self.prefix.bin, 'basis')) env.set('G09_BASIS', self.prefix.bin.basis)
run_env.set('GAUSS_LEXEDIR', join_path(self.prefix.bin, env.set('GAUSS_LEXEDIR', join_path(self.prefix.bin, 'linda-exe'))
'linda-exe')) env.set('GAUSS_ARCHDIR', self.prefix.bin.arch)
run_env.set('GAUSS_ARCHDIR', join_path(self.prefix.bin, 'arch')) env.set('GAUSS_BSDDIR', self.prefix.bin.bsd)
run_env.set('GAUSS_BSDDIR', join_path(self.prefix.bin, 'bsd')) env.prepend_path('LD_LIBRARY_PATH', join_path(self.prefix.bin,
run_env.prepend_path('LD_LIBRARY_PATH', join_path(self.prefix.bin, 'linda8.2', 'opteron-linux', 'lib'))
'linda8.2/opteron-linux/lib')) env.prepend_path('LD_LIBRARY_PATH', self.prefix.bin)
run_env.prepend_path('LD_LIBRARY_PATH', self.prefix.bin)

View File

@ -46,11 +46,11 @@ def url_for_version(self, version):
url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/{0}/gdk-pixbuf-{1}.tar.xz" url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/{0}/gdk-pixbuf-{1}.tar.xz"
return url.format(version.up_to(2), version) return url.format(version.up_to(2), version)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS", env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
self.prefix.share)
run_env.prepend_path("XDG_DATA_DIRS", def setup_dependent_run_environment(self, env, dependent_spec):
self.prefix.share) env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def install(self, spec, prefix): def install(self, spec, prefix):
with working_dir('spack-build', create=True): with working_dir('spack-build', create=True):
@ -81,7 +81,7 @@ def install(self, spec, prefix):
if self.run_tests: if self.run_tests:
make('installcheck') make('installcheck')
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
# The "post-install.sh" script uses gdk-pixbuf-query-loaders, # The "post-install.sh" script uses gdk-pixbuf-query-loaders,
# which was installed earlier. # which was installed earlier.
spack_env.prepend_path('PATH', self.prefix.bin) env.prepend_path('PATH', self.prefix.bin)

View File

@ -145,7 +145,7 @@ def make_data_links(self):
target = os.readlink(d) target = os.readlink(d)
os.symlink(target, os.path.basename(target)) os.symlink(target, os.path.basename(target))
def setup_dependent_environment(self, spack_env, run_env, dep_spec): def setup_dependent_build_environment(self, env, dependent_spec):
version = self.version version = self.version
major = version[0] major = version[0]
minor = version[1] minor = version[1]
@ -154,6 +154,5 @@ def setup_dependent_environment(self, spack_env, run_env, dep_spec):
else: else:
patch = 0 patch = 0
datadir = 'Geant4-%s.%s.%s' % (major, minor, patch) datadir = 'Geant4-%s.%s.%s' % (major, minor, patch)
spack_env.append_path('CMAKE_MODULE_PATH', env.append_path('CMAKE_MODULE_PATH', join_path(
'{0}/{1}/Modules'.format( self.prefix.lib64, datadir, 'Modules'))
self.prefix.lib64, datadir))

View File

@ -55,5 +55,5 @@ def filter_sbang(self):
for file in files: for file in files:
filter_file(pattern, repl, *files, backup=False) filter_file(pattern, repl, *files, backup=False)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.prepend_path('PERL5LIB', prefix.lib) env.prepend_path('PERL5LIB', self.prefix.lib)

View File

@ -25,5 +25,5 @@ class Genometools(MakefilePackage):
def install(self, spec, prefix): def install(self, spec, prefix):
make('install', 'prefix=%s' % prefix) make('install', 'prefix=%s' % prefix)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.set('CPATH', self.prefix.include.genometools) env.set('CPATH', self.prefix.include.genometools)

View File

@ -185,13 +185,13 @@ class Git(AutotoolsPackage):
depends_on('m4', type='build') depends_on('m4', type='build')
depends_on('tk', type=('build', 'link'), when='+tcltk') depends_on('tk', type=('build', 'link'), when='+tcltk')
# See the comment in setup_environment re EXTLIBS. # See the comment in setup_build_environment re EXTLIBS.
def patch(self): def patch(self):
filter_file(r'^EXTLIBS =$', filter_file(r'^EXTLIBS =$',
'#EXTLIBS =', '#EXTLIBS =',
'Makefile') 'Makefile')
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
# We use EXTLIBS rather than LDFLAGS so that git's Makefile # We use EXTLIBS rather than LDFLAGS so that git's Makefile
# inserts the information into the proper place in the link commands # inserts the information into the proper place in the link commands
# (alongside the # other libraries/paths that configure discovers). # (alongside the # other libraries/paths that configure discovers).
@ -204,9 +204,9 @@ def setup_environment(self, spack_env, run_env):
# In that case the node in the DAG gets truncated and git DOES NOT # In that case the node in the DAG gets truncated and git DOES NOT
# have a gettext dependency. # have a gettext dependency.
if 'gettext' in self.spec: if 'gettext' in self.spec:
spack_env.append_flags('EXTLIBS', '-L{0} -lintl'.format( env.append_flags('EXTLIBS', '-L{0} -lintl'.format(
self.spec['gettext'].prefix.lib)) self.spec['gettext'].prefix.lib))
spack_env.append_flags('CFLAGS', '-I{0}'.format( env.append_flags('CFLAGS', '-I{0}'.format(
self.spec['gettext'].prefix.include)) self.spec['gettext'].prefix.include))
def configure_args(self): def configure_args(self):

View File

@ -4,7 +4,6 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import * from spack import *
import os
class Gnutls(AutotoolsPackage): class Gnutls(AutotoolsPackage):
@ -49,11 +48,10 @@ def url_for_version(self, version):
url = "https://www.gnupg.org/ftp/gcrypt/gnutls/v{0}/gnutls-{1}.tar.xz" url = "https://www.gnupg.org/ftp/gcrypt/gnutls/v{0}/gnutls-{1}.tar.xz"
return url.format(version.up_to(2), version) return url.format(version.up_to(2), version)
def setup_environment(self, build_env, run_env): def setup_build_environment(self, env):
spec = self.spec spec = self.spec
if '+guile' in spec: if '+guile' in spec:
build_env.set('GUILE', os.path.join(spec["guile"].prefix.bin, env.set('GUILE', spec["guile"].prefix.bin.guile)
'guile'))
def configure_args(self): def configure_args(self):
spec = self.spec spec = self.spec

View File

@ -55,8 +55,8 @@ def install(self, spec, prefix):
install_tree('.', prefix) install_tree('.', prefix)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.set('GOROOT_BOOTSTRAP', self.spec.prefix) env.set('GOROOT_BOOTSTRAP', self.spec.prefix)
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
spack_env.set('GOROOT_FINAL', self.spec.prefix) env.set('GOROOT_FINAL', self.spec.prefix)

View File

@ -57,9 +57,11 @@ def url_for_version(self, version):
url = 'http://ftp.gnome.org/pub/gnome/sources/gobject-introspection/{0}/gobject-introspection-{1}.tar.xz' url = 'http://ftp.gnome.org/pub/gnome/sources/gobject-introspection/{0}/gobject-introspection-{1}.tar.xz'
return url.format(version.up_to(2), version) return url.format(version.up_to(2), version)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS", self.prefix.share) env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
run_env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_dependent_run_environment(self, env, dependent_spec):
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def install(self, spec, prefix): def install(self, spec, prefix):
configure("--prefix=%s" % prefix) configure("--prefix=%s" % prefix)
@ -69,5 +71,5 @@ def install(self, spec, prefix):
make() make()
make("install") make("install")
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
spack_env.set('SPACK_SBANG', "%s/bin/sbang" % spack_root) env.set('SPACK_SBANG', "%s/bin/sbang" % spack_root)

View File

@ -51,5 +51,5 @@ def install(self, spec, prefix):
# The gpu_burn program looks for the compare.ptx file in the current # The gpu_burn program looks for the compare.ptx file in the current
# working directory. Create an environment variable that can be pointed to # working directory. Create an environment variable that can be pointed to
# so that it can be copied or linked. # so that it can be copied or linked.
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.set('COMPARE_PTX', join_path(self.prefix.share, 'compare.ptx')) env.set('COMPARE_PTX', join_path(self.prefix.share, 'compare.ptx'))

View File

@ -25,16 +25,16 @@ class Grnboost(Package):
depends_on('xgboost+jvm-packages', type='run') depends_on('xgboost+jvm-packages', type='run')
depends_on('spark+hadoop', type='run') depends_on('spark+hadoop', type='run')
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
grnboost_jar = join_path(self.prefix, 'target', grnboost_jar = join_path(self.prefix, 'target',
'scala-2.11', 'GRNBoost.jar') 'scala-2.11', 'GRNBoost.jar')
xgboost_version = self.spec['xgboost'].version.string xgboost_version = self.spec['xgboost'].version.string
xgboost_jar = join_path(self.spec['xgboost'].prefix, xgboost_jar = join_path(self.spec['xgboost'].prefix,
'xgboost4j-' + xgboost_version + '.jar') 'xgboost4j-' + xgboost_version + '.jar')
run_env.set('GRNBOOST_JAR', grnboost_jar) env.set('GRNBOOST_JAR', grnboost_jar)
run_env.set('JAVA_HOME', self.spec['java'].prefix) env.set('JAVA_HOME', self.spec['java'].prefix)
run_env.set('CLASSPATH', xgboost_jar) env.set('CLASSPATH', xgboost_jar)
run_env.set('XGBOOST_JAR', xgboost_jar) env.set('XGBOOST_JAR', xgboost_jar)
def install(self, spec, prefix): def install(self, spec, prefix):
sbt = which('sbt') sbt = which('sbt')

View File

@ -48,11 +48,11 @@ def patch(self):
filter_file(r'CFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CFLAGS"', filter_file(r'CFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CFLAGS"',
'', 'configure', string=True) '', 'configure', string=True)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS", env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
self.prefix.share)
run_env.prepend_path("XDG_DATA_DIRS", def setup_dependent_run_environment(self, env, dependent_spec):
self.prefix.share) env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def configure_args(self): def configure_args(self):
args = [] args = []

View File

@ -42,13 +42,17 @@ def url_for_version(self, version):
url += '{0}/gtksourceview-{1}.tar.xz' url += '{0}/gtksourceview-{1}.tar.xz'
return url.format(version.up_to(2), version) return url.format(version.up_to(2), version)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS", self.prefix.share) env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
run_env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_environment(self, spack_env, run_env): def setup_dependent_run_environment(self, env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS", self.prefix.share) env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
run_env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_build_environment(self, env):
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_run_environment(self, env):
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
# TODO: If https://github.com/spack/spack/pull/12344 is merged, this # TODO: If https://github.com/spack/spack/pull/12344 is merged, this
# method is unnecessary. # method is unnecessary.

View File

@ -35,8 +35,8 @@ class Gurobi(Package):
def url_for_version(self, version): def url_for_version(self, version):
return "file://{0}/gurobi{1}_linux64.tar.gz".format(os.getcwd(), version) return "file://{0}/gurobi{1}_linux64.tar.gz".format(os.getcwd(), version)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.set('GUROBI_HOME', self.prefix) env.set('GUROBI_HOME', self.prefix)
def install(self, spec, prefix): def install(self, spec, prefix):
install_tree('linux64', prefix) install_tree('linux64', prefix)

View File

@ -183,10 +183,14 @@ def check_install(self, spec):
raise RuntimeError("HDF5 Blosc plugin check failed") raise RuntimeError("HDF5 Blosc plugin check failed")
shutil.rmtree(checkdir) shutil.rmtree(checkdir)
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
spack_env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib) env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib)
run_env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_run_environment(self, env):
spack_env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib) env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib)
run_env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib)
def setup_dependent_build_environment(self, env, dependent_spec):
env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib)
def setup_dependent_run_environment(self, env, dependent_spec):
env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib)

View File

@ -40,5 +40,5 @@ def install(self, spec, prefix):
if os.path.isfile(file): if os.path.isfile(file):
install(file, prefix.bin) install(file, prefix.bin)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.prepend_path('PATH', self.spec.prefix) env.prepend_path('PATH', self.spec.prefix)

View File

@ -31,8 +31,8 @@ class Hybpiper(Package):
depends_on('bwa') depends_on('bwa')
depends_on('samtools') depends_on('samtools')
def setup_envionment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.set('HYBPIPER_HOME', prefix) env.set('HYBPIPER_HOME', self.prefix)
def install(self, spec, prefix): def install(self, spec, prefix):
mkdirp(prefix.bin) mkdirp(prefix.bin)

View File

@ -48,11 +48,11 @@ def home(self):
def libs(self): def libs(self):
return find_libraries(['libjvm'], root=self.home, recursive=True) return find_libraries(['libjvm'], root=self.home, recursive=True)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.set('JAVA_HOME', self.home) env.set('JAVA_HOME', self.home)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.set('JAVA_HOME', self.home) env.set('JAVA_HOME', self.home)
def setup_dependent_package(self, module, dependent_spec): def setup_dependent_package(self, module, dependent_spec):
self.spec.home = self.home self.spec.home = self.home

View File

@ -153,18 +153,18 @@ def configure_args(self):
] ]
return args return args
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
"""Set JAVA_HOME.""" """Set JAVA_HOME."""
run_env.set('JAVA_HOME', self.home) env.set('JAVA_HOME', self.home)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
"""Set JAVA_HOME and CLASSPATH. """Set JAVA_HOME and CLASSPATH.
CLASSPATH contains the installation prefix for the extension and any CLASSPATH contains the installation prefix for the extension and any
other Java extensions it depends on.""" other Java extensions it depends on."""
spack_env.set('JAVA_HOME', self.home) env.set('JAVA_HOME', self.home)
class_paths = [] class_paths = []
for d in dependent_spec.traverse(deptype=('build', 'run', 'test')): for d in dependent_spec.traverse(deptype=('build', 'run', 'test')):
@ -172,14 +172,19 @@ def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
class_paths.extend(find(d.prefix, '*.jar')) class_paths.extend(find(d.prefix, '*.jar'))
classpath = os.pathsep.join(class_paths) classpath = os.pathsep.join(class_paths)
spack_env.set('CLASSPATH', classpath) env.set('CLASSPATH', classpath)
def setup_dependent_run_environment(self, env, dependent_spec):
"""Set CLASSPATH.
CLASSPATH contains the installation prefix for the extension and any
other Java extensions it depends on."""
# For runtime environment set only the path for # For runtime environment set only the path for
# dependent_spec and prepend it to CLASSPATH # dependent_spec and prepend it to CLASSPATH
if dependent_spec.package.extends(self.spec): if dependent_spec.package.extends(self.spec):
class_paths = find(dependent_spec.prefix, '*.jar') class_paths = find(dependent_spec.prefix, '*.jar')
classpath = os.pathsep.join(class_paths) classpath = os.pathsep.join(class_paths)
run_env.prepend_path('CLASSPATH', classpath) env.prepend_path('CLASSPATH', classpath)
def setup_dependent_package(self, module, dependent_spec): def setup_dependent_package(self, module, dependent_spec):
"""Allows spec['java'].home to work.""" """Allows spec['java'].home to work."""

View File

@ -22,6 +22,6 @@ class Icet(CMakePackage):
def cmake_args(self): def cmake_args(self):
return ['-DICET_USE_OPENGL:BOOL=OFF'] return ['-DICET_USE_OPENGL:BOOL=OFF']
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
"""Work-around for ill-placed CMake modules""" """Work-around for ill-placed CMake modules"""
spack_env.prepend_path('CMAKE_PREFIX_PATH', self.prefix.lib) env.prepend_path('CMAKE_PREFIX_PATH', self.prefix.lib)

View File

@ -20,6 +20,6 @@ class Jmol(Package):
def install(self, spec, prefix): def install(self, spec, prefix):
install_tree('jmol-{0}'.format(self.version), prefix) install_tree('jmol-{0}'.format(self.version), prefix)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.prepend_path('PATH', self.prefix) env.prepend_path('PATH', self.prefix)
run_env.set('JMOL_HOME', self.prefix) env.set('JMOL_HOME', self.prefix)

View File

@ -33,10 +33,8 @@ class Jube(PythonPackage):
depends_on('py-setuptools', type='build') depends_on('py-setuptools', type='build')
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
if not self.spec.variants['resource_manager'].value == 'none': if not self.spec.variants['resource_manager'].value == 'none':
run_env.prepend_path( env.prepend_path('JUBE_INCLUDE_PATH', join_path(
'JUBE_INCLUDE_PATH', self.prefix.platform,
prefix + "/platform/" + self.spec.variants['resource_manager'].value))
self.spec.variants['resource_manager'].value
)

View File

@ -30,10 +30,6 @@ class Karma(Package):
destination='./' destination='./'
) )
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('LIBRARY_PATH', self.prefix.lib)
run_env.prepend_path('LD_LIBRARY_PATH', self.prefix.lib)
def install(self, spec, prefix): def install(self, spec, prefix):
install_tree('./karma-1.7.25/amd64_Linux_libc6.3/bin', prefix.bin) install_tree('./karma-1.7.25/amd64_Linux_libc6.3/bin', prefix.bin)
install_tree('./karma-1.7.25/amd64_Linux_libc6.3/lib', prefix.lib) install_tree('./karma-1.7.25/amd64_Linux_libc6.3/lib', prefix.lib)

View File

@ -28,9 +28,9 @@ class Launchmon(AutotoolsPackage):
patch('launchmon-char-conv.patch', when='@1.0.2') patch('launchmon-char-conv.patch', when='@1.0.2')
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
if self.spec.satisfies('@master'): if self.spec.satisfies('@master'):
# automake for launchmon requires the AM_PATH_LIBGCRYPT macro # automake for launchmon requires the AM_PATH_LIBGCRYPT macro
# which is defined in libgcrypt.m4 # which is defined in libgcrypt.m4
spack_env.prepend_path('ACLOCAL_PATH', env.prepend_path('ACLOCAL_PATH',
self.spec['libgcrypt'].prefix.share.aclocal) self.spec['libgcrypt'].prefix.share.aclocal)

View File

@ -31,14 +31,14 @@ class LdcBootstrap(CMakePackage):
depends_on('libedit') depends_on('libedit')
depends_on('binutils') depends_on('binutils')
def setup_dependent_environment(self, build_env, run_env, dep_spec): def setup_dependent_build_environment(self, env, dep_spec):
# The code below relies on this function being executed after the # The code below relies on this function being executed after the
# environment has been sanitized (because LD_LIBRARY_PATH is among # environment has been sanitized (because LD_LIBRARY_PATH is among
# the variables that get unset) # the variables that get unset)
# We need libphobos in LD_LIBRARY_PATH # We need libphobos in LD_LIBRARY_PATH
build_env.prepend_path('LD_LIBRARY_PATH', self.prefix.lib) env.prepend_path('LD_LIBRARY_PATH', self.prefix.lib)
def cmake_args(self): def cmake_args(self):
return [ return [

View File

@ -90,9 +90,9 @@ class Libfabric(AutotoolsPackage):
sha256='3b78d0ca1b223ff21b7f5b3627e67e358e3c18b700f86b017e2233fee7e88c2e', sha256='3b78d0ca1b223ff21b7f5b3627e67e358e3c18b700f86b017e2233fee7e88c2e',
placement='fabtests', when='@1.5.0') placement='fabtests', when='@1.5.0')
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
if self.run_tests: if self.run_tests:
spack_env.prepend_path('PATH', self.prefix.bin) env.prepend_path('PATH', self.prefix.bin)
@when('@develop') @when('@develop')
def autoreconf(self, spec, prefix): def autoreconf(self, spec, prefix):

View File

@ -81,15 +81,15 @@ def optflags(self):
return flags return flags
def setup_environment(self, build_env, run_env): def setup_build_environment(self, env):
# Set optimization flags # Set optimization flags
build_env.set('CFLAGS', self.optflags) env.set('CFLAGS', self.optflags)
build_env.set('CXXFLAGS', self.optflags) env.set('CXXFLAGS', self.optflags)
# Change AR to xiar if we compile with Intel and we # Change AR to xiar if we compile with Intel and we
# find the executable # find the executable
if '%intel' in self.spec and which('xiar'): if '%intel' in self.spec and which('xiar'):
build_env.set('AR', 'xiar') env.set('AR', 'xiar')
def configure_args(self): def configure_args(self):

View File

@ -245,5 +245,5 @@ def configure_args(self):
return options return options
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.append_flags('PERL', self.spec['perl'].command.path) env.append_flags('PERL', self.spec['perl'].command.path)

View File

@ -44,11 +44,13 @@ def url_for_version(self, version):
url += '{0}/libpeas-{1}.tar.xz' url += '{0}/libpeas-{1}.tar.xz'
return url.format(version.up_to(2), version) return url.format(version.up_to(2), version)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS", self.prefix.share) env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
run_env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_environment(self, spack_env, run_env): def setup_dependent_run_environment(self, env, dependent_spec):
env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
def setup_build_environment(self, env):
# Let # Let
# #
# python = self.spec['python'] # python = self.spec['python']
@ -76,10 +78,11 @@ def setup_environment(self, spack_env, run_env):
python_pc_file = os.path.join(python_prefix, 'python3.pc') python_pc_file = os.path.join(python_prefix, 'python3.pc')
python_ldflags = pkg_config('--libs', python_pc_file, output=str) python_ldflags = pkg_config('--libs', python_pc_file, output=str)
spack_env.append_path('LDFLAGS', env.append_path('LDFLAGS', python_ldflags)
python_ldflags) env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
spack_env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
run_env.prepend_path('XDG_DATA_DIRS', self.prefix.share) def setup_run_environment(self, env):
env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
def autoreconf(self, spec, prefix): def autoreconf(self, spec, prefix):
autoreconf_args = ['-ivf'] autoreconf_args = ['-ivf']

View File

@ -30,10 +30,14 @@ def url_for_version(self, version):
url += "{0}/librsvg-{1}.tar.xz" url += "{0}/librsvg-{1}.tar.xz"
return url.format(version.up_to(2), version) return url.format(version.up_to(2), version)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS", self.prefix.share) env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
run_env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_environment(self, spack_env, run_env): def setup_dependent_run_environment(self, env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS", self.prefix.share) env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
run_env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_build_environment(self, env):
env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
def setup_run_environment(self, env):
env.prepend_path('XDG_DATA_DIRS', self.prefix.share)

View File

@ -37,9 +37,8 @@ def autoreconf(self, spec, prefix):
def _make_executable(self, name): def _make_executable(self, name):
return Executable(join_path(self.prefix.bin, name)) return Executable(join_path(self.prefix.bin, name))
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.append_path('ACLOCAL_PATH', env.append_path('ACLOCAL_PATH', self.prefix.share.aclocal)
join_path(self.prefix.share, 'aclocal'))
def setup_dependent_package(self, module, dependent_spec): def setup_dependent_package(self, module, dependent_spec):
# Automake is very likely to be a build dependency, so we add # Automake is very likely to be a build dependency, so we add

View File

@ -27,9 +27,11 @@ class Libx11(AutotoolsPackage):
depends_on('util-macros', type='build') depends_on('util-macros', type='build')
depends_on('perl', type='build') depends_on('perl', type='build')
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.prepend_path('XLOCALEDIR', self.prefix.share.X11.locale) env.prepend_path('XLOCALEDIR', self.prefix.share.X11.locale)
run_env.prepend_path('XLOCALEDIR', self.prefix.share.X11.locale)
def setup_dependent_run_environment(self, env, dependent_spec):
env.prepend_path('XLOCALEDIR', self.prefix.share.X11.locale)
@property @property
def libs(self): def libs(self):

View File

@ -49,7 +49,7 @@ def libs(self):
libraries, root=self.prefix, shared=shared, recursive=True libraries, root=self.prefix, shared=shared, recursive=True
) )
def setup_build_environment(self, spack_env): def setup_build_environment(self, env):
optflags = '-O2' optflags = '-O2'
if self.compiler.name == 'intel': if self.compiler.name == 'intel':
# Optimizations for the Intel compiler, suggested by CP2K # Optimizations for the Intel compiler, suggested by CP2K
@ -76,10 +76,10 @@ def setup_build_environment(self, spack_env):
# #
optflags += ' -xSSE4.2 -axAVX,CORE-AVX2 -ipo' optflags += ' -xSSE4.2 -axAVX,CORE-AVX2 -ipo'
if which('xiar'): if which('xiar'):
spack_env.set('AR', 'xiar') env.set('AR', 'xiar')
spack_env.append_flags('CFLAGS', optflags) env.append_flags('CFLAGS', optflags)
spack_env.append_flags('FCFLAGS', optflags) env.append_flags('FCFLAGS', optflags)
def configure_args(self): def configure_args(self):
args = ['--enable-shared'] args = ['--enable-shared']

View File

@ -26,10 +26,10 @@ class Libxpm(AutotoolsPackage):
depends_on('pkgconfig', type='build') depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build') depends_on('util-macros', type='build')
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
# If libxpm is installed as an external package, gettext won't # If libxpm is installed as an external package, gettext won't
# be available in the spec. See # be available in the spec. See
# https://github.com/spack/spack/issues/9149 for details. # https://github.com/spack/spack/issues/9149 for details.
if 'gettext' in self.spec: if 'gettext' in self.spec:
spack_env.append_flags('LDFLAGS', '-L{0} -lintl'.format( env.append_flags('LDFLAGS', '-L{0} -lintl'.format(
self.spec['gettext'].prefix.lib)) self.spec['gettext'].prefix.lib))

View File

@ -16,11 +16,11 @@ class LinuxHeaders(Package):
version('4.9.10', sha256='bd6e05476fd8d9ea4945e11598d87bc97806bbc8d03556abbaaf809707661525') version('4.9.10', sha256='bd6e05476fd8d9ea4945e11598d87bc97806bbc8d03556abbaaf809707661525')
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
# This variable is used in the Makefile. If it is defined on the # This variable is used in the Makefile. If it is defined on the
# system, it can break the build if there is no build recipe for # system, it can break the build if there is no build recipe for
# that specific ARCH # that specific ARCH
spack_env.unset('ARCH') env.unset('ARCH')
def install(self, spec, prefix): def install(self, spec, prefix):
make('headers_install', 'INSTALL_HDR_PATH={0}'.format(prefix)) make('headers_install', 'INSTALL_HDR_PATH={0}'.format(prefix))

View File

@ -48,10 +48,10 @@ class Lmod(AutotoolsPackage):
parallel = False parallel = False
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
stage_lua_path = join_path( stage_lua_path = join_path(
self.stage.source_path, 'src', '?.lua') self.stage.source_path, 'src', '?.lua')
spack_env.append_path('LUA_PATH', stage_lua_path.format( env.append_path('LUA_PATH', stage_lua_path.format(
version=self.version), separator=';') version=self.version), separator=';')
def patch(self): def patch(self):

View File

@ -94,7 +94,7 @@ def append_paths(self, paths, cpaths, path):
paths.append(os.path.join(path, '?', 'init.lua')) paths.append(os.path.join(path, '?', 'init.lua'))
cpaths.append(os.path.join(path, '?.so')) cpaths.append(os.path.join(path, '?.so'))
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def _setup_dependent_env_helper(self, env, dependent_spec):
lua_paths = [] lua_paths = []
for d in dependent_spec.traverse( for d in dependent_spec.traverse(
deptypes=('build', 'run'), deptype_query='run'): deptypes=('build', 'run'), deptype_query='run'):
@ -115,38 +115,44 @@ def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
os.path.join(self.spec.prefix, self.lua_share_dir)): os.path.join(self.spec.prefix, self.lua_share_dir)):
self.append_paths(lua_patterns, lua_cpatterns, p) self.append_paths(lua_patterns, lua_cpatterns, p)
spack_env.set('LUA_PATH', ';'.join(lua_patterns), separator=';') return lua_patterns, lua_cpatterns
spack_env.set('LUA_CPATH', ';'.join(lua_cpatterns), separator=';')
# Add LUA to PATH for dependent packages def setup_dependent_build_environment(self, env, dependent_spec):
spack_env.prepend_path('PATH', self.prefix.bin) lua_patterns, lua_cpatterns = _setup_dependent_env_helper(
self, env, dependent_spec)
env.set('LUA_PATH', ';'.join(lua_patterns), separator=';')
env.set('LUA_CPATH', ';'.join(lua_cpatterns), separator=';')
def setup_dependent_run_environment(self, env, dependent_spec):
# For run time environment set only the path for dependent_spec and # For run time environment set only the path for dependent_spec and
# prepend it to LUAPATH # prepend it to LUAPATH
lua_patterns, lua_cpatterns = _setup_dependent_env_helper(
self, env, dependent_spec)
if dependent_spec.package.extends(self.spec): if dependent_spec.package.extends(self.spec):
run_env.prepend_path('LUA_PATH', ';'.join(lua_patterns), env.prepend_path('LUA_PATH', ';'.join(lua_patterns), separator=';')
separator=';') env.prepend_path('LUA_CPATH', ';'.join(lua_cpatterns),
run_env.prepend_path('LUA_CPATH', ';'.join(lua_cpatterns),
separator=';') separator=';')
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.prepend_path( env.prepend_path(
'LUA_PATH', 'LUA_PATH',
os.path.join(self.spec.prefix, self.lua_share_dir, '?.lua'), os.path.join(self.spec.prefix, self.lua_share_dir, '?.lua'),
separator=';') separator=';')
run_env.prepend_path( env.prepend_path(
'LUA_PATH', os.path.join(self.spec.prefix, self.lua_share_dir, '?', 'LUA_PATH', os.path.join(self.spec.prefix, self.lua_share_dir, '?',
'init.lua'), 'init.lua'),
separator=';') separator=';')
run_env.prepend_path( env.prepend_path(
'LUA_PATH', 'LUA_PATH',
os.path.join(self.spec.prefix, self.lua_lib_dir, '?.lua'), os.path.join(self.spec.prefix, self.lua_lib_dir, '?.lua'),
separator=';') separator=';')
run_env.prepend_path( env.prepend_path(
'LUA_PATH', 'LUA_PATH',
os.path.join(self.spec.prefix, self.lua_lib_dir, '?', 'init.lua'), os.path.join(self.spec.prefix, self.lua_lib_dir, '?', 'init.lua'),
separator=';') separator=';')
run_env.prepend_path( env.prepend_path(
'LUA_CPATH', 'LUA_CPATH',
os.path.join(self.spec.prefix, self.lua_lib_dir, '?.so'), os.path.join(self.spec.prefix, self.lua_lib_dir, '?.so'),
separator=';') separator=';')

View File

@ -21,11 +21,11 @@ class Mc(AutotoolsPackage):
depends_on('glib@2.14:') depends_on('glib@2.14:')
depends_on('libssh2@1.2.5:') depends_on('libssh2@1.2.5:')
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
# Fix compilation bug on macOS by pretending we don't have utimensat() # Fix compilation bug on macOS by pretending we don't have utimensat()
# https://github.com/MidnightCommander/mc/pull/130 # https://github.com/MidnightCommander/mc/pull/130
if 'darwin' in self.spec.architecture: if 'darwin' in self.spec.architecture:
env['ac_cv_func_utimensat'] = 'no' env.set('ac_cv_func_utimensat', 'no')
def configure_args(self): def configure_args(self):
args = [ args = [

View File

@ -23,5 +23,5 @@ class Mefit(Package):
def install(self, spec, prefix): def install(self, spec, prefix):
install_tree('.', prefix) install_tree('.', prefix)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.prepend_path('PATH', self.prefix) env.prepend_path('PATH', self.prefix)

View File

@ -41,8 +41,8 @@ class Memsurfer(PythonPackage):
depends_on('hdf5 +hl') depends_on('hdf5 +hl')
# memsurfer's setup needs path to these deps to build extension modules # memsurfer's setup needs path to these deps to build extension modules
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
spack_env.set('VTK_ROOT', self.spec['vtk'].prefix) env.set('VTK_ROOT', self.spec['vtk'].prefix)
spack_env.set('CGAL_ROOT', self.spec['cgal'].prefix) env.set('CGAL_ROOT', self.spec['cgal'].prefix)
spack_env.set('BOOST_ROOT', self.spec['boost'].prefix) env.set('BOOST_ROOT', self.spec['boost'].prefix)
spack_env.set('EIGEN_ROOT', self.spec['eigen'].prefix) env.set('EIGEN_ROOT', self.spec['eigen'].prefix)

View File

@ -28,6 +28,6 @@ def patch(self):
edit = FileFilter('CMakeLists.txt') edit = FileFilter('CMakeLists.txt')
edit.filter(r"-static-libstdc\+\+", "") edit.filter(r"-static-libstdc\+\+", "")
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.set('MERACULOUS_ROOT', self.prefix) env.set('MERACULOUS_ROOT', self.prefix)
run_env.prepend_path('PERL5LIB', self.prefix.lib) env.prepend_path('PERL5LIB', self.prefix.lib)

View File

@ -39,12 +39,12 @@ class Mercurial(PythonPackage):
depends_on('py-pygments', type=('build', 'run')) depends_on('py-pygments', type=('build', 'run'))
depends_on('py-certifi', type=('build', 'run')) depends_on('py-certifi', type=('build', 'run'))
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
# Python 3 support is still experimental, explicitly allow # Python 3 support is still experimental, explicitly allow
spack_env.set('HGALLOWPYTHON3', True) env.set('HGALLOWPYTHON3', True)
spack_env.set('HGPYTHON3', True) env.set('HGPYTHON3', True)
# Setuptools is still opt-in, explicitly enable # Setuptools is still opt-in, explicitly enable
spack_env.set('FORCE_SETUPTOOLS', True) env.set('FORCE_SETUPTOOLS', True)
@run_after('install') @run_after('install')
def post_install(self): def post_install(self):

View File

@ -27,8 +27,8 @@ def install(self, spec, prefix):
install_tree('RESOURCES', prefix.resources) install_tree('RESOURCES', prefix.resources)
install_tree('AmosCmp16Spipeline', prefix.AmosCmp16Spipeline) install_tree('AmosCmp16Spipeline', prefix.AmosCmp16Spipeline)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.prepend_path('PATH', self.prefix.ChimeraSlayer) env.prepend_path('PATH', self.prefix.ChimeraSlayer)
run_env.prepend_path('PATH', join_path(self.prefix, 'NAST-iEr')) env.prepend_path('PATH', join_path(self.prefix, 'NAST-iEr'))
run_env.prepend_path('PATH', self.prefix.TreeChopper) env.prepend_path('PATH', self.prefix.TreeChopper)
run_env.prepend_path('PATH', self.prefix.WigeoN) env.prepend_path('PATH', self.prefix.WigeoN)

View File

@ -21,5 +21,5 @@ class Mii(MakefilePackage):
version('1.0.3', sha256='9b5a0e4e0961cf848677ed61b4f6c03e6a443f8592ed668d1afea302314b47a8') version('1.0.3', sha256='9b5a0e4e0961cf848677ed61b4f6c03e6a443f8592ed668d1afea302314b47a8')
version('1.0.2', sha256='1c2c86ec37779ecd3821c30ce5b6dd19be4ec1813da41832d49ff3dcf615e22d') version('1.0.2', sha256='1c2c86ec37779ecd3821c30ce5b6dd19be4ec1813da41832d49ff3dcf615e22d')
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
spack_env.set('PREFIX', self.prefix) env.set('PREFIX', self.prefix)

View File

@ -44,6 +44,6 @@ def install(self, spec, prefix):
chmod = which('chmod') chmod = which('chmod')
chmod('+x', join_path(prefix, 'MitoFates.pl')) chmod('+x', join_path(prefix, 'MitoFates.pl'))
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
# We want the main MitoFates.pl script in the path # We want the main MitoFates.pl script in the path
run_env.prepend_path('PATH', self.prefix) env.prepend_path('PATH', self.prefix)

View File

@ -25,5 +25,5 @@ class Mixcr(Package):
def install(self, spec, prefix): def install(self, spec, prefix):
install_tree('.', prefix) install_tree('.', prefix)
def setup_environment(self, spack_env, run_env): def setup_run_environment(self, env):
run_env.prepend_path('PATH', self.prefix) env.prepend_path('PATH', self.prefix)

View File

@ -24,8 +24,8 @@ def install(self, spec, prefix):
mkdirp(prefix.bin) mkdirp(prefix.bin)
install('mpest', prefix.bin) install('mpest', prefix.bin)
def setup_environment(self, spack_env, run_env): def setup_build_environment(self, env):
if self.spec.satisfies('platform=darwin'): if self.spec.satisfies('platform=darwin'):
spack_env.set('ARCHITECTURE', 'mac') env.set('ARCHITECTURE', 'mac')
else: else:
spack_env.set('ARCHITECTURE', 'unix') env.set('ARCHITECTURE', 'unix')

Some files were not shown because too many files have changed in this diff Show More