diff options
-rw-r--r-- | CHANGELOG.md | 3 | ||||
-rw-r--r-- | src/buildtool/execution_api/local/local_action.cpp | 2 | ||||
-rw-r--r-- | src/buildtool/storage/config.hpp | 7 |
3 files changed, 11 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b9306a8..ddd7638b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ A feature release on top of `1.1.0`, backwards compatible. - `just-import-git` now supports an option `--plain` to import a repository without dependencies. +- Minor changes to the layout of the local build root; in particular, + left-over execution directories will eventually get cleaned up + by garbage collection. ## Release `1.1.0` (2023-05-19) diff --git a/src/buildtool/execution_api/local/local_action.cpp b/src/buildtool/execution_api/local/local_action.cpp index 764c00aa..e2fe1199 100644 --- a/src/buildtool/execution_api/local/local_action.cpp +++ b/src/buildtool/execution_api/local/local_action.cpp @@ -115,7 +115,7 @@ auto LocalAction::Execute(Logger const* logger) noexcept auto LocalAction::Run(bazel_re::Digest const& action_id) const noexcept -> std::optional<Output> { auto exec_path = - CreateUniquePath(StorageConfig::BuildRoot() / "exec_root" / + CreateUniquePath(StorageConfig::ExecutionRoot() / NativeSupport::Unprefix(action_id.hash())); if (not exec_path) { diff --git a/src/buildtool/storage/config.hpp b/src/buildtool/storage/config.hpp index d231f06a..dd569c46 100644 --- a/src/buildtool/storage/config.hpp +++ b/src/buildtool/storage/config.hpp @@ -155,6 +155,13 @@ class StorageConfig { } } + /// \brief Root directory for local action executions; individual actions + /// create a working directory below this root. + [[nodiscard]] static auto ExecutionRoot() noexcept + -> std::filesystem::path { + return GenerationCacheRoot(0) / "exec_root"; + } + private: [[nodiscard]] static auto Data() noexcept -> ConfigData& { static ConfigData instance{}; |