diff options
author | Peter Scheibel <scheibel1@llnl.gov> | 2024-03-14 13:32:01 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-14 13:32:01 -0700 |
commit | ec517b40e98dabb5759553f1d2599e50f245018a (patch) | |
tree | e6bf9f099f9446970f68608c1bdb27fd2f057b64 /CHANGELOG.md | |
parent | 22cb3815fe2df7090eb735cc472a7d37c3beb8ac (diff) | |
download | spack-ec517b40e98dabb5759553f1d2599e50f245018a.tar.gz spack-ec517b40e98dabb5759553f1d2599e50f245018a.tar.bz2 spack-ec517b40e98dabb5759553f1d2599e50f245018a.tar.xz spack-ec517b40e98dabb5759553f1d2599e50f245018a.zip |
`spack develop`: stage build artifacts in same root as non-dev builds (#41373)
Currently (outside of this PR) when you `spack develop` a path, this path is treated as the staging
directory (this means that for example all build artifacts are placed in the develop path).
This PR creates a separate staging directory for all `spack develop`ed builds. It looks like
```
# the stage root
/the-stage-root-for-all-spack-builds/
spack-stage-<hash>
# Spack packages inheriting CMakePackage put their build artifacts here
spack-build-<hash>/
```
Unlike non-develop builds, there is no `spack-src` directory, `source_path` is the provided `dev_path`.
Instead, separately, in the `dev_path`, we have:
```
/dev/path/for/foo/
build-{arch}-<hash> -> /the-stage-root-for-all-spack-builds/spack-stage-<hash>/
```
The main benefit of this is that build artifacts for out-of-source builds that are relative to
`Stage.path` are easily identified (and you can delete them with `spack clean`).
Other behavior added here:
- [x] A symlink is made from the `dev_path` to the stage directory. This symlink name incorporates
spec details, so that multiple Spack environments that develop the same path will not conflict
with one another
- [x] `spack cd` and `spack location` have added a `-c` shorthand for `--source-dir`
Spack builds can still change the develop path (in particular to keep track of applied patches),
and for in-source builds, this doesn't change much (although logs would not be written into
the develop path). Packages inheriting from `CMakePackage` should get this benefit
automatically though.
Diffstat (limited to 'CHANGELOG.md')
0 files changed, 0 insertions, 0 deletions