toolchain::ToolchainBootstrapService
Lazy + async orchestration of every toolchain's component builds.
| Declared in | src/libs/libtoolchain/toolchain/ToolchainBootstrapService.hpp |
| Inherits | QObject |
| Group | toolchain |
Detailed description
Singleton accessed via `instance()`. Configure once with a root directory for the on-disk cache + manifest (default: `<userDataDir>/octomy-toolchain/`). `start()` triggers background bootstrap of every component referenced by every registered toolchain; `waitFor(tc, hook)` is the blocking accessor consumers call when they need a `SysrootHandle`.
Threading: `waitFor()` blocks the caller's thread (must not be the GUI thread) until all of the toolchain's components reach `Ready`. The hook is invoked on the caller's thread between waits, relaying progress events from the worker.
Crash recovery: on `configure()`, every `Building` entry whose `buildPid` is no longer alive transitions to `Stale` and gets rebuilt on next request.
Multi-process safety: file-locking through Manifest + per-component cache-dir lock files (held during recipe execution).
See also ToolchainRegistry, Component, Toolchain, SysrootHandle.