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():
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
@ -1054,7 +1054,7 @@ def _setup_dependent_env_callback(
env.append_path('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 compilers_of_client:

View File

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

View File

@ -141,7 +141,6 @@ def invalid_sha256_digest(fetcher):
assert [] == errors
@pytest.mark.xfail
def test_api_for_build_and_run_environment():
"""Ensure that every package uses the correct API to set build and
run environment, and not the old one.
@ -154,7 +153,7 @@ def test_api_for_build_and_run_environment():
failing.append(pkg)
msg = ('there are {0} packages using the old API to set build '
'and run environment [{1}], for further information see'
'and run environment [{1}], for further information see '
'https://github.com/spack/spack/pull/11115')
assert not failing, msg.format(
len(failing), ','.join(x.name for x in failing)
@ -182,7 +181,9 @@ def test_prs_update_old_api():
if failed:
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(
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('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')
run_env.set('AMBERHOME', self.prefix)
run_env.prepend_path('PYTHONPATH', sp_dir)
env.set('AMBERHOME', self.prefix)
env.prepend_path('PYTHONPATH', sp_dir)
def install(self, spec, prefix):
# install AmberTools where it should be

View File

@ -173,16 +173,16 @@ def edit(self, spec, prefix):
with open('GNUmakefile', 'w') as file:
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
spack_env.unset('AMREX_HOME')
env.unset('AMREX_HOME')
# Help force Amrvis to not pick up random system compilers
if '+mpi' in self.spec:
spack_env.set('MPI_HOME', self.spec['mpi'].prefix)
spack_env.set('CC', self.spec['mpi'].mpicc)
spack_env.set('CXX', self.spec['mpi'].mpicxx)
spack_env.set('F77', self.spec['mpi'].mpif77)
spack_env.set('FC', self.spec['mpi'].mpifc)
env.set('MPI_HOME', self.spec['mpi'].prefix)
env.set('CC', self.spec['mpi'].mpicc)
env.set('CXX', self.spec['mpi'].mpicxx)
env.set('F77', self.spec['mpi'].mpif77)
env.set('FC', self.spec['mpi'].mpifc)
def install(self, spec, prefix):
# Install exe manually

View File

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

View File

@ -30,5 +30,5 @@ def install(self, spec, prefix):
make("install")
install_tree('Scripts', prefix.bin)
def setup_environment(self, spack_env, run_env):
run_env.set('ANTSPATH', self.prefix.bin)
def setup_run_environment(self, env):
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',
expand=False)
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('PATH', self.prefix.cli.bin)
def setup_run_environment(self, env):
env.prepend_path('PATH', self.prefix.cli.bin)
def install(self, spec, prefix):
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),
script, **kwargs)
def setup_environment(self, spack_env, run_env):
run_env.set('ASTRAL_HOME', self.prefix.tools)
def setup_run_environment(self, env):
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'
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
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'
return url + '/%s/atk-%s.tar.xz' % (version.up_to(2), version)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS",
self.prefix.share)
run_env.prepend_path("XDG_DATA_DIRS",
self.prefix.share)
def setup_dependent_build_environment(self, env, dependent_spec):
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):
with working_dir('spack-build', create=True):

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -30,8 +30,6 @@ class Breseq(AutotoolsPackage):
conflicts('%gcc@:4.8')
conflicts('%clang@:3.3')
def setup_environment(self, spack_env, run_env):
spack_env.set('LDFLAGS',
"-L{0}".format(self.spec['zlib'].prefix.lib))
spack_env.set('CFLAGS',
"-I{0}".format(self.spec['zlib'].prefix.include))
def setup_build_environment(self, env):
env.set('LDFLAGS', "-L{0}".format(self.spec['zlib'].prefix.lib))
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):
install_tree('.', prefix)
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('PATH', self.spec.prefix)
def setup_run_environment(self, env):
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,
self.stage.source_path))
def setup_environment(self, spack_env, run_env):
def setup_run_environment(self, env):
# paraview 5.5 and later
# - cmake under lib/cmake/paraview-5.5
# - libs under lib
@ -160,18 +160,18 @@ def setup_environment(self, spack_env, run_env):
if self.spec.version <= Version('5.4.1'):
lib_dir = join_path(lib_dir, paraview_subdir)
run_env.set('ParaView_DIR', self.prefix)
run_env.prepend_path('LIBRARY_PATH', lib_dir)
run_env.prepend_path('LD_LIBRARY_PATH', lib_dir)
env.set('ParaView_DIR', self.prefix)
env.prepend_path('LIBRARY_PATH', lib_dir)
env.prepend_path('LD_LIBRARY_PATH', lib_dir)
if '+python' in self.spec or '+python3' in self.spec:
python_version = self.spec['python'].version.up_to(2)
run_env.prepend_path('PYTHONPATH', join_path(lib_dir,
'python{0}'.format(python_version),
'site-packages'))
env.prepend_path('PYTHONPATH', join_path(lib_dir,
'python{0}'.format(python_version),
'site-packages'))
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.set('ParaView_DIR', self.prefix)
def setup_dependent_build_environment(self, env, dependent_spec):
env.set('ParaView_DIR', self.prefix)
@property
def root_cmakelists_dir(self):

View File

@ -31,27 +31,27 @@ class Cbench(MakefilePackage):
conflicts('%xl')
conflicts('%xl_r')
def setup_environment(self, build_env, run_env):
def setup_build_environment(self, env):
# 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
build_env.set('CBENCHTEST', self.prefix)
env.set('CBENCHTEST', self.prefix)
# 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.
# 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
build_env.set('BLASLIB', self.spec['blas'].libs.ld_flags)
build_env.set('LAPACKLIB', self.spec['lapack'].libs.ld_flags)
build_env.set('FFTWLIB', self.spec['fftw'].libs.ld_flags)
env.set('BLASLIB', self.spec['blas'].libs.ld_flags)
env.set('LAPACKLIB', self.spec['lapack'].libs.ld_flags)
env.set('FFTWLIB', self.spec['fftw'].libs.ld_flags)
# 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')
@on_package_attributes(run_tests=True)

View File

@ -31,5 +31,5 @@ def build(self, spec, prefix):
make_args.append('zlib=no')
make(*make_args)
def setup_environment(self, spack_env, run_env):
spack_env.set('PREFIX', prefix.bin)
def setup_build_environment(self, env):
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=LIBS backend={0}'.format(b))
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.set('MPICC', join_path(self.prefix.bin, 'ampicc'))
spack_env.set('MPICXX', join_path(self.prefix.bin, 'ampicxx'))
spack_env.set('MPIF77', join_path(self.prefix.bin, 'ampif77'))
spack_env.set('MPIF90', join_path(self.prefix.bin, 'ampif90'))
def setup_dependent_build_environment(self, env, dependent_spec):
env.set('MPICC', self.prefix.bin.ampicc)
env.set('MPICXX', self.prefix.bin.ampicxx)
env.set('MPIF77', self.prefix.bin.ampif77)
env.set('MPIF90', self.prefix.bin.ampif90)
def setup_dependent_package(self, module, dependent_spec):
self.spec.mpicc = join_path(self.prefix.bin, 'ampicc')
self.spec.mpicxx = join_path(self.prefix.bin, 'ampicxx')
self.spec.mpifc = join_path(self.prefix.bin, 'ampif90')
self.spec.mpif77 = join_path(self.prefix.bin, 'ampif77')
self.spec.mpicc = self.prefix.bin.ampicc
self.spec.mpicxx = self.prefix.bin.ampicxx
self.spec.mpifc = self.prefix.bin.ampif90
self.spec.mpif77 = self.prefix.bin.ampif77
depends_on("mpi", when="backend=mpi")
depends_on("papi", when="+papi")

View File

@ -35,22 +35,27 @@ def autoreconf(self, spec, prefix):
bash = which('bash')
bash('./bootstrap')
def setup_environment(self, spack_env, run_env):
def setup_build_environment(self, env):
rose_home = self.spec['rose'].prefix
boost_home = self.spec['boost'].prefix
iegen_home = self.spec['iegenlib'].prefix
spack_env.append_path('LD_LIBRARY_PATH', rose_home.lib)
spack_env.append_path('LD_LIBRARY_PATH', boost_home.lib)
spack_env.append_path('LD_LIBRARY_PATH', iegen_home.lib)
env.set('ROSEHOME', rose_home)
env.set('BOOSTHOME', boost_home)
env.set('IEGENHOME', iegen_home)
run_env.append_path('LD_LIBRARY_PATH', rose_home.lib)
run_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', rose_home.lib)
env.append_path('LD_LIBRARY_PATH', boost_home.lib)
env.append_path('LD_LIBRARY_PATH', iegen_home.lib)
spack_env.set('ROSEHOME', rose_home)
spack_env.set('BOOSTHOME', boost_home)
spack_env.set('IEGENHOME', iegen_home)
def setup_run_environment(self, env):
rose_home = self.spec['rose'].prefix
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):
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')
install_tree('.', prefix)
def setup_environment(self, spack_env, run_env):
run_env.set('CHLOROP', self.prefix)
def setup_run_environment(self, env):
env.set('CHLOROP', self.prefix)

View File

@ -23,6 +23,6 @@ def install(self, spec, prefix):
# (CMake) Header Only library so just copy
install_tree(self.stage.source_path, prefix)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.prepend_path('CMAKE_PREFIX_PATH', self.prefix)
spack_env.set('CINCH_SOURCE_DIR', self.prefix)
def setup_dependent_build_environment(self, env, dependent_spec):
env.prepend_path('CMAKE_PREFIX_PATH', 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('+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:
spack_env.set('HC_HOME', self.spec['hc'].prefix)
env.set('HC_HOME', self.spec['hc'].prefix)
def configure_args(self):
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'):
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_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,
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
cxxstdflag = '' if cxxstd == 'default' else \
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
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."""
spack_env.prepend_path('PATH', self.prefix.sbin)
run_env.prepend_path('PATH', self.prefix.sbin)
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('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
darshan_log_dir = '%s' % os.environ['HOME']
run_env.set('DARSHAN_LOG_DIR_PATH', darshan_log_dir)
darshan_log_dir = os.environ['HOME']
env.set('DARSHAN_LOG_DIR_PATH', darshan_log_dir)

View File

@ -17,5 +17,5 @@ class DealiiParameterGui(CMakePackage):
depends_on('qt')
def setup_environment(self, spack_env, run_env):
run_env.set('PARAMETER_GUI_DIR', self.prefix)
def setup_run_environment(self, env):
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, 'splitFasta.pl'))
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('PERL5LIB', prefix)
def setup_run_environment(self, env):
env.prepend_path('PERL5LIB', self.prefix)

View File

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

View File

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

View File

@ -26,10 +26,10 @@ def install(self, spec, prefix):
def catalog(self):
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
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
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):
mkdirp(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')
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('CPATH',
join_path(self.prefix, 'include', 'eigen3'))
def setup_run_environment(self, env):
env.prepend_path('CPATH', self.prefix.include.eigen3)
@property
def headers(self):

View File

@ -18,6 +18,3 @@ class EverytraceExample(CMakePackage):
# Currently the only MPI this everytrace works with.
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_FORTRAN=%s' % ('YES' if '+fortran' 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/'
'libbamtools.a', '%s' % self.spec['bamtools'].libs)
def setup_environment(self, spack_env, run_env):
spack_env.prepend_path('CPATH', self.spec[
'bamtools'].prefix.include.bamtools)
def setup_build_environment(self, env):
env.prepend_path('CPATH',
self.spec['bamtools'].prefix.include.bamtools)

View File

@ -101,10 +101,10 @@ def install(self, spec, prefix):
else:
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
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
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
# 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
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):
mkdir('m4')
def setup_environment(self, spack_env, run_env):
def setup_build_environment(self, env):
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('+x', flang)
def setup_environment(self, spack_env, run_env):
def setup_build_environment(self, env):
# to find llvm's libc++.so
spack_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'))
run_env.set('F90', join_path(self.spec.prefix.bin, 'flang'))
env.set('LD_LIBRARY_PATH', self.spec['llvm'].prefix.lib)
def setup_run_environment(self, env):
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 -
#
def setup_environment(self, spack_env, run_env):
def setup_run_environment(self, env):
"""Add environment variables to the generated module file.
These environment variables come from running:
@ -126,13 +126,6 @@ def setup_environment(self, spack_env, run_env):
$ . $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')
minimal = True
if os.path.isfile(bashrc):
@ -173,7 +166,7 @@ def setup_environment(self, spack_env, run_env):
'PYTHON_BIN_DIR',
])
run_env.extend(mods)
env.extend(mods)
minimal = False
tty.info('foam-extend env: {0}'.format(bashrc))
except Exception:
@ -182,19 +175,19 @@ def setup_environment(self, spack_env, run_env):
if minimal:
# pre-build or minimal environment
tty.info('foam-extend minimal env {0}'.format(self.prefix))
run_env.set('FOAM_INST_DIR', os.path.dirname(self.projectdir)),
run_env.set('FOAM_PROJECT_DIR', self.projectdir)
run_env.set('WM_PROJECT_DIR', self.projectdir)
env.set('FOAM_INST_DIR', os.path.dirname(self.projectdir)),
env.set('FOAM_PROJECT_DIR', self.projectdir)
env.set('WM_PROJECT_DIR', self.projectdir)
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.
This is identical to the WM_PROJECT_DIR value, but we avoid that
variable since it would mask the normal OpenFOAM cleanup of
previous versions.
"""
spack_env.set('FOAM_PROJECT_DIR', self.projectdir)
env.set('FOAM_PROJECT_DIR', self.projectdir)
@property
def projectdir(self):

View File

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

View File

@ -51,33 +51,33 @@ def install(self, spec, prefix):
install_tree('.', prefix)
def setup_environment(self, spack_env, run_env):
def setup_build_environment(self, env):
if not self.stage.source_path:
self.stage.fetch()
self.stage.expand_archive()
spack_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)
env.set('FSLDIR', self.stage.source_path)
# Below is for sourcing purposes during building
fslsetup = join_path(self.stage.source_path, 'etc', 'fslconf',
'fsl.sh')
if os.path.isfile(fslsetup):
spack_env.extend(EnvironmentModifications.from_sourcing_file(
fslsetup))
env.extend(EnvironmentModifications.from_sourcing_file(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.mpifc = self.prefix.bin.mpifrt
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.set('MPICC', self.prefix.bin.mpifcc)
spack_env.set('MPICXX', self.prefix.bin.mpiFCC)
spack_env.set('MPIF77', self.prefix.bin.mpifrt)
spack_env.set('MPIF90', self.prefix.bin.mpifrt)
def setup_dependent_build_environment(self, env, dependent_spec):
env.set('MPICC', self.prefix.bin.mpifcc)
env.set('MPICXX', self.prefix.bin.mpiFCC)
env.set('MPIF77', 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))
install_tree(self.stage.source_path, install_path)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
run_env.set('G4ENSDFSTATEDATA', join_path(prefix.share, 'data'))
def setup_dependent_run_environment(self, env, dependent_spec):
env.set('G4ENSDFSTATEDATA', self.prefix.share.data)
def url_for_version(self, version):
"""Handle version string."""

View File

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

View File

@ -87,7 +87,7 @@ def install(self, spec, prefix):
**kwargs
)
def setup_environment(self, spack_env, run_env):
run_env.prepend_path(
"GATK", join_path(self.prefix, "bin", "GenomeAnalysisTK.jar")
def setup_run_environment(self, env):
env.prepend_path(
"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,
filename), string='True')
def setup_environment(self, spack_env, run_env):
run_env.set('g09root', self.prefix)
run_env.set('GAUSSIANHOME', self.prefix)
run_env.set('GAUSS_EXEDIR', self.prefix.bin)
run_env.set('G09_BASIS', join_path(self.prefix.bin, 'basis'))
run_env.set('GAUSS_LEXEDIR', join_path(self.prefix.bin,
'linda-exe'))
run_env.set('GAUSS_ARCHDIR', join_path(self.prefix.bin, 'arch'))
run_env.set('GAUSS_BSDDIR', join_path(self.prefix.bin, 'bsd'))
run_env.prepend_path('LD_LIBRARY_PATH', join_path(self.prefix.bin,
'linda8.2/opteron-linux/lib'))
run_env.prepend_path('LD_LIBRARY_PATH', self.prefix.bin)
def setup_run_environment(self, env):
env.set('g09root', self.prefix)
env.set('GAUSSIANHOME', self.prefix)
env.set('GAUSS_EXEDIR', self.prefix.bin)
env.set('G09_BASIS', self.prefix.bin.basis)
env.set('GAUSS_LEXEDIR', join_path(self.prefix.bin, 'linda-exe'))
env.set('GAUSS_ARCHDIR', self.prefix.bin.arch)
env.set('GAUSS_BSDDIR', self.prefix.bin.bsd)
env.prepend_path('LD_LIBRARY_PATH', join_path(self.prefix.bin,
'linda8.2', 'opteron-linux', 'lib'))
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"
return url.format(version.up_to(2), version)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS",
self.prefix.share)
run_env.prepend_path("XDG_DATA_DIRS",
self.prefix.share)
def setup_dependent_build_environment(self, env, dependent_spec):
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):
with working_dir('spack-build', create=True):
@ -81,7 +81,7 @@ def install(self, spec, prefix):
if self.run_tests:
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,
# 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)
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
major = version[0]
minor = version[1]
@ -154,6 +154,5 @@ def setup_dependent_environment(self, spack_env, run_env, dep_spec):
else:
patch = 0
datadir = 'Geant4-%s.%s.%s' % (major, minor, patch)
spack_env.append_path('CMAKE_MODULE_PATH',
'{0}/{1}/Modules'.format(
self.prefix.lib64, datadir))
env.append_path('CMAKE_MODULE_PATH', join_path(
self.prefix.lib64, datadir, 'Modules'))

View File

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

View File

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

View File

@ -185,13 +185,13 @@ class Git(AutotoolsPackage):
depends_on('m4', type='build')
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):
filter_file(r'^EXTLIBS =$',
'#EXTLIBS =',
'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
# inserts the information into the proper place in the link commands
# (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
# have a gettext dependency.
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))
spack_env.append_flags('CFLAGS', '-I{0}'.format(
env.append_flags('CFLAGS', '-I{0}'.format(
self.spec['gettext'].prefix.include))
def configure_args(self):

View File

@ -4,7 +4,6 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
import os
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"
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
if '+guile' in spec:
build_env.set('GUILE', os.path.join(spec["guile"].prefix.bin,
'guile'))
env.set('GUILE', spec["guile"].prefix.bin.guile)
def configure_args(self):
spec = self.spec

View File

@ -55,8 +55,8 @@ def install(self, spec, prefix):
install_tree('.', prefix)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.set('GOROOT_BOOTSTRAP', self.spec.prefix)
def setup_dependent_build_environment(self, env, dependent_spec):
env.set('GOROOT_BOOTSTRAP', self.spec.prefix)
def setup_environment(self, spack_env, run_env):
spack_env.set('GOROOT_FINAL', self.spec.prefix)
def setup_build_environment(self, env):
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'
return url.format(version.up_to(2), version)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
run_env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_dependent_build_environment(self, env, dependent_spec):
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):
configure("--prefix=%s" % prefix)
@ -69,5 +71,5 @@ def install(self, spec, prefix):
make()
make("install")
def setup_environment(self, spack_env, run_env):
spack_env.set('SPACK_SBANG', "%s/bin/sbang" % spack_root)
def setup_build_environment(self, env):
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
# working directory. Create an environment variable that can be pointed to
# so that it can be copied or linked.
def setup_environment(self, spack_env, run_env):
run_env.set('COMPARE_PTX', join_path(self.prefix.share, 'compare.ptx'))
def setup_run_environment(self, env):
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('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',
'scala-2.11', 'GRNBoost.jar')
xgboost_version = self.spec['xgboost'].version.string
xgboost_jar = join_path(self.spec['xgboost'].prefix,
'xgboost4j-' + xgboost_version + '.jar')
run_env.set('GRNBOOST_JAR', grnboost_jar)
run_env.set('JAVA_HOME', self.spec['java'].prefix)
run_env.set('CLASSPATH', xgboost_jar)
run_env.set('XGBOOST_JAR', xgboost_jar)
env.set('GRNBOOST_JAR', grnboost_jar)
env.set('JAVA_HOME', self.spec['java'].prefix)
env.set('CLASSPATH', xgboost_jar)
env.set('XGBOOST_JAR', xgboost_jar)
def install(self, spec, prefix):
sbt = which('sbt')

View File

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

View File

@ -42,13 +42,17 @@ def url_for_version(self, version):
url += '{0}/gtksourceview-{1}.tar.xz'
return url.format(version.up_to(2), version)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
run_env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_dependent_build_environment(self, env, dependent_spec):
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_environment(self, spack_env, run_env):
spack_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 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
# method is unnecessary.

View File

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

View File

@ -183,10 +183,14 @@ def check_install(self, spec):
raise RuntimeError("HDF5 Blosc plugin check failed")
shutil.rmtree(checkdir)
def setup_environment(self, spack_env, run_env):
spack_env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib)
run_env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib)
def setup_build_environment(self, env):
env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib)
run_env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib)
def setup_run_environment(self, env):
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):
install(file, prefix.bin)
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('PATH', self.spec.prefix)
def setup_run_environment(self, env):
env.prepend_path('PATH', self.spec.prefix)

View File

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

View File

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

View File

@ -153,18 +153,18 @@ def configure_args(self):
]
return args
def setup_environment(self, spack_env, run_env):
def setup_run_environment(self, env):
"""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.
CLASSPATH contains the installation prefix for the extension and any
other Java extensions it depends on."""
spack_env.set('JAVA_HOME', self.home)
env.set('JAVA_HOME', self.home)
class_paths = []
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'))
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
# dependent_spec and prepend it to CLASSPATH
if dependent_spec.package.extends(self.spec):
class_paths = find(dependent_spec.prefix, '*.jar')
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):
"""Allows spec['java'].home to work."""

View File

@ -22,6 +22,6 @@ class Icet(CMakePackage):
def cmake_args(self):
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"""
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):
install_tree('jmol-{0}'.format(self.version), prefix)
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('PATH', self.prefix)
run_env.set('JMOL_HOME', self.prefix)
def setup_run_environment(self, env):
env.prepend_path('PATH', self.prefix)
env.set('JMOL_HOME', self.prefix)

View File

@ -33,10 +33,8 @@ class Jube(PythonPackage):
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':
run_env.prepend_path(
'JUBE_INCLUDE_PATH',
prefix + "/platform/" +
self.spec.variants['resource_manager'].value
)
env.prepend_path('JUBE_INCLUDE_PATH', join_path(
self.prefix.platform,
self.spec.variants['resource_manager'].value))

View File

@ -24,15 +24,11 @@ class Karma(Package):
phases = ['install']
resource(
name='karma-linux',
url='ftp://ftp.atnf.csiro.au/pub/software/karma/karma-1.7.25-amd64_Linux_libc6.3.tar.bz2',
sha256='effc3ed61c28b966b357147d90357d03c22d743c6af6edb49a863c6eb625a441',
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)
name='karma-linux',
url='ftp://ftp.atnf.csiro.au/pub/software/karma/karma-1.7.25-amd64_Linux_libc6.3.tar.bz2',
sha256='effc3ed61c28b966b357147d90357d03c22d743c6af6edb49a863c6eb625a441',
destination='./'
)
def install(self, spec, prefix):
install_tree('./karma-1.7.25/amd64_Linux_libc6.3/bin', prefix.bin)

View File

@ -28,9 +28,9 @@ class Launchmon(AutotoolsPackage):
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'):
# automake for launchmon requires the AM_PATH_LIBGCRYPT macro
# which is defined in libgcrypt.m4
spack_env.prepend_path('ACLOCAL_PATH',
self.spec['libgcrypt'].prefix.share.aclocal)
env.prepend_path('ACLOCAL_PATH',
self.spec['libgcrypt'].prefix.share.aclocal)

View File

@ -31,14 +31,14 @@ class LdcBootstrap(CMakePackage):
depends_on('libedit')
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
# environment has been sanitized (because LD_LIBRARY_PATH is among
# the variables that get unset)
# 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):
return [

View File

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

View File

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

View File

@ -245,5 +245,5 @@ def configure_args(self):
return options
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.append_flags('PERL', self.spec['perl'].command.path)
def setup_dependent_build_environment(self, env, dependent_spec):
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'
return url.format(version.up_to(2), version)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
run_env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_dependent_build_environment(self, env, dependent_spec):
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
#
# 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_ldflags = pkg_config('--libs', python_pc_file, output=str)
spack_env.append_path('LDFLAGS',
python_ldflags)
spack_env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
run_env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
env.append_path('LDFLAGS', python_ldflags)
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):
autoreconf_args = ['-ivf']

View File

@ -30,10 +30,14 @@ def url_for_version(self, version):
url += "{0}/librsvg-{1}.tar.xz"
return url.format(version.up_to(2), version)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
run_env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_dependent_build_environment(self, env, dependent_spec):
env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
def setup_environment(self, spack_env, run_env):
spack_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 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):
return Executable(join_path(self.prefix.bin, name))
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.append_path('ACLOCAL_PATH',
join_path(self.prefix.share, 'aclocal'))
def setup_dependent_build_environment(self, env, dependent_spec):
env.append_path('ACLOCAL_PATH', self.prefix.share.aclocal)
def setup_dependent_package(self, module, dependent_spec):
# 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('perl', type='build')
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.prepend_path('XLOCALEDIR', self.prefix.share.X11.locale)
run_env.prepend_path('XLOCALEDIR', self.prefix.share.X11.locale)
def setup_dependent_build_environment(self, env, dependent_spec):
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
def libs(self):

View File

@ -49,7 +49,7 @@ def libs(self):
libraries, root=self.prefix, shared=shared, recursive=True
)
def setup_build_environment(self, spack_env):
def setup_build_environment(self, env):
optflags = '-O2'
if self.compiler.name == 'intel':
# 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'
if which('xiar'):
spack_env.set('AR', 'xiar')
env.set('AR', 'xiar')
spack_env.append_flags('CFLAGS', optflags)
spack_env.append_flags('FCFLAGS', optflags)
env.append_flags('CFLAGS', optflags)
env.append_flags('FCFLAGS', optflags)
def configure_args(self):
args = ['--enable-shared']

View File

@ -26,10 +26,10 @@ class Libxpm(AutotoolsPackage):
depends_on('pkgconfig', 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
# be available in the spec. See
# https://github.com/spack/spack/issues/9149 for details.
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))

View File

@ -16,11 +16,11 @@ class LinuxHeaders(Package):
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
# system, it can break the build if there is no build recipe for
# that specific ARCH
spack_env.unset('ARCH')
env.unset('ARCH')
def install(self, spec, prefix):
make('headers_install', 'INSTALL_HDR_PATH={0}'.format(prefix))

View File

@ -48,10 +48,10 @@ class Lmod(AutotoolsPackage):
parallel = False
def setup_environment(self, spack_env, run_env):
def setup_build_environment(self, env):
stage_lua_path = join_path(
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=';')
def patch(self):

View File

@ -94,7 +94,7 @@ def append_paths(self, paths, cpaths, path):
paths.append(os.path.join(path, '?', 'init.lua'))
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 = []
for d in dependent_spec.traverse(
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)):
self.append_paths(lua_patterns, lua_cpatterns, p)
spack_env.set('LUA_PATH', ';'.join(lua_patterns), separator=';')
spack_env.set('LUA_CPATH', ';'.join(lua_cpatterns), separator=';')
return lua_patterns, lua_cpatterns
# Add LUA to PATH for dependent packages
spack_env.prepend_path('PATH', self.prefix.bin)
def setup_dependent_build_environment(self, env, dependent_spec):
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
# prepend it to LUAPATH
if dependent_spec.package.extends(self.spec):
run_env.prepend_path('LUA_PATH', ';'.join(lua_patterns),
separator=';')
run_env.prepend_path('LUA_CPATH', ';'.join(lua_cpatterns),
separator=';')
lua_patterns, lua_cpatterns = _setup_dependent_env_helper(
self, env, dependent_spec)
def setup_environment(self, spack_env, run_env):
run_env.prepend_path(
if dependent_spec.package.extends(self.spec):
env.prepend_path('LUA_PATH', ';'.join(lua_patterns), separator=';')
env.prepend_path('LUA_CPATH', ';'.join(lua_cpatterns),
separator=';')
def setup_run_environment(self, env):
env.prepend_path(
'LUA_PATH',
os.path.join(self.spec.prefix, self.lua_share_dir, '?.lua'),
separator=';')
run_env.prepend_path(
env.prepend_path(
'LUA_PATH', os.path.join(self.spec.prefix, self.lua_share_dir, '?',
'init.lua'),
separator=';')
run_env.prepend_path(
env.prepend_path(
'LUA_PATH',
os.path.join(self.spec.prefix, self.lua_lib_dir, '?.lua'),
separator=';')
run_env.prepend_path(
env.prepend_path(
'LUA_PATH',
os.path.join(self.spec.prefix, self.lua_lib_dir, '?', 'init.lua'),
separator=';')
run_env.prepend_path(
env.prepend_path(
'LUA_CPATH',
os.path.join(self.spec.prefix, self.lua_lib_dir, '?.so'),
separator=';')

View File

@ -21,11 +21,11 @@ class Mc(AutotoolsPackage):
depends_on('glib@2.14:')
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()
# https://github.com/MidnightCommander/mc/pull/130
if 'darwin' in self.spec.architecture:
env['ac_cv_func_utimensat'] = 'no'
env.set('ac_cv_func_utimensat', 'no')
def configure_args(self):
args = [

View File

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

View File

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

View File

@ -28,6 +28,6 @@ def patch(self):
edit = FileFilter('CMakeLists.txt')
edit.filter(r"-static-libstdc\+\+", "")
def setup_environment(self, spack_env, run_env):
run_env.set('MERACULOUS_ROOT', self.prefix)
run_env.prepend_path('PERL5LIB', self.prefix.lib)
def setup_run_environment(self, env):
env.set('MERACULOUS_ROOT', self.prefix)
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-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
spack_env.set('HGALLOWPYTHON3', True)
spack_env.set('HGPYTHON3', True)
env.set('HGALLOWPYTHON3', True)
env.set('HGPYTHON3', True)
# Setuptools is still opt-in, explicitly enable
spack_env.set('FORCE_SETUPTOOLS', True)
env.set('FORCE_SETUPTOOLS', True)
@run_after('install')
def post_install(self):

View File

@ -27,8 +27,8 @@ def install(self, spec, prefix):
install_tree('RESOURCES', prefix.resources)
install_tree('AmosCmp16Spipeline', prefix.AmosCmp16Spipeline)
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('PATH', self.prefix.ChimeraSlayer)
run_env.prepend_path('PATH', join_path(self.prefix, 'NAST-iEr'))
run_env.prepend_path('PATH', self.prefix.TreeChopper)
run_env.prepend_path('PATH', self.prefix.WigeoN)
def setup_run_environment(self, env):
env.prepend_path('PATH', self.prefix.ChimeraSlayer)
env.prepend_path('PATH', join_path(self.prefix, 'NAST-iEr'))
env.prepend_path('PATH', self.prefix.TreeChopper)
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.2', sha256='1c2c86ec37779ecd3821c30ce5b6dd19be4ec1813da41832d49ff3dcf615e22d')
def setup_environment(self, spack_env, run_env):
spack_env.set('PREFIX', self.prefix)
def setup_build_environment(self, env):
env.set('PREFIX', self.prefix)

View File

@ -44,6 +44,6 @@ def install(self, spec, prefix):
chmod = which('chmod')
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
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):
install_tree('.', prefix)
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('PATH', self.prefix)
def setup_run_environment(self, env):
env.prepend_path('PATH', self.prefix)

View File

@ -24,8 +24,8 @@ def install(self, spec, prefix):
mkdirp(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'):
spack_env.set('ARCHITECTURE', 'mac')
env.set('ARCHITECTURE', 'mac')
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