Zig Version
0.16.0
Steps to Reproduce and Observed Behavior
zig build --summary new # fresh build, builds all
cd src
zig build --summary new # fully cached, builds all anyway
( cd proj1 && zig build --summary new ) # fresh build, builds all
mv proj1 proj2
( cd proj2 && zig build --summary new ) # fully cached, builds all anyway
Cache contains absolute paths and cwd relative paths. This causes cache misses when
- path relative to project root from cwd is not the same as last build
- project directory has moved (when copied, no cache miss happens because the cache looks at the original directory)
- project directory is mounted to container which does not see the original directory
Expected Behavior
Build should remain cached even when changing cwd or moving project directory. In other words, there should not be cwd-relative nor absolute paths in the cache.
### Zig Version
0.16.0
### Steps to Reproduce and Observed Behavior
```sh
zig build --summary new # fresh build, builds all
cd src
zig build --summary new # fully cached, builds all anyway
```
```sh
( cd proj1 && zig build --summary new ) # fresh build, builds all
mv proj1 proj2
( cd proj2 && zig build --summary new ) # fully cached, builds all anyway
```
Cache contains absolute paths and cwd relative paths. This causes cache misses when
- path relative to project root from cwd is not the same as last build
- project directory has moved (when copied, no cache miss happens because the cache looks at the original directory)
- project directory is mounted to container which does not see the original directory
### Expected Behavior
Build should remain cached even when changing cwd or moving project directory. In other words, there should not be cwd-relative nor absolute paths in the cache.