99f35c3338
* initial work to make use of an 'upstream' spack installation: this uses the DB of the upstream installation to check if a package is installed * need to query upstream dbs when adding new record to local db * prevent reindexing upstream DBs * set prefix on specs read from DB based on path stored in install record * check that Spack does not install packages that are recorded as installed in an upstream db * externals do not add their path to install records - need to use 'external_path' to get path of upstream externals * views need to check for upstream installations when linking metadata * package and spec now calculate upstream installation properties on-demand themselves rather than depending on concretization to set these properties up-front. The added tests for upstream installations don't work with this new strategy so they need to be updated * only refresh modules for local specs (not those in upstream packages); optionally generate local module files for packages installed upstream * when a user tries to locate a module file for a package installed upstream, tell them to use the upstream spack instance to locate it * support recursive upstream databases (allow upstream databases to use their own upstream databases) * separate upstream config into separate file with its own schema; each entry now also includes a name * metadata_dir is no longer customizable on a per-instance basis for YamlDirectoryLayout * treat metadata_dir as an instance variable but dont set it from kwargs; this follows several other hardcoded variables which must be consistent between upstream and downstream DBs. Also update DirectoryLayout.metadata_path to work entirely with Spec.prefix, since Spec.prefix is set from the DB when available (so metadata_path was duplicating that logic)
40 lines
1.5 KiB
Tcsh
Executable file
40 lines
1.5 KiB
Tcsh
Executable file
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
|
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
|
#
|
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
|
|
|
|
#
|
|
# This file is part of Spack and sets up the spack environment for
|
|
# csh and tcsh. This includes dotkit support, module support, and
|
|
# it also puts spack in your path. Source it like this:
|
|
#
|
|
# setenv SPACK_ROOT /path/to/spack
|
|
# source $SPACK_ROOT/share/spack/setup-env.csh
|
|
#
|
|
if ($?SPACK_ROOT) then
|
|
set _spack_source_file = $SPACK_ROOT/share/spack/setup-env.csh
|
|
set _spack_share_dir = $SPACK_ROOT/share/spack
|
|
|
|
# Command aliases point at separate source files
|
|
alias spack 'set _sp_args = (\!*); source $_spack_share_dir/csh/spack.csh'
|
|
alias _spack_pathadd 'set _pa_args = (\!*) && source $_spack_share_dir/csh/pathadd.csh'
|
|
|
|
# Set variables needed by this script
|
|
_spack_pathadd PATH "$SPACK_ROOT/bin"
|
|
eval `spack --print-shell-vars csh`
|
|
|
|
# Set up modules and dotkit search paths in the user environment
|
|
set tcl_roots = `echo $_sp_tcl_roots:q | sed 's/:/ /g'`
|
|
foreach tcl_root ($tcl_roots:q)
|
|
_spack_pathadd MODULEPATH "$tcl_root/$_sp_sys_type"
|
|
end
|
|
|
|
set dotkit_roots = `echo $_sp_dotkit_roots:q | sed 's/:/ /g'`
|
|
foreach dotkit_root ($dotkit_roots)
|
|
_spack_pathadd DK_NODE "$dotkit_root/$_sp_sys_type"
|
|
end
|
|
else
|
|
echo "ERROR: Sourcing spack setup-env.csh requires setting SPACK_ROOT to "
|
|
echo " the root of your spack installation."
|
|
endif
|