Add experimental support for stripping config prefixes from output paths. This applies to executor actions, not paths on the Blaze machine. For example: BEFORE: foo/bar bazel-out/x86-opt/bin/baz -o bazel-out/x86-opt/bin/out AFTER: foo/bar bazel-out/bin/baz -o bazel-out/bin/out This promises better caching for actions that don't depend on the CPU (or whatever else appears in the "/x86-opt/" path segment). This is a first-pass implementation that takes a heuristic approach by textually searching and removing config prefixes from command line strings. This logic is centralized in the new class PathStripper. A natural followup would be to explore if we can exploit CustomCommandLine, which stores paths as Artifacts until just before execution, to strip paths directly. This would be a more structured approach. ArtifactExpander may help. Care would be needed to only invoke this on supporting executors. For https://github.com/bazelbuild/bazel/issues/6526. PiperOrigin-RevId: 375804248
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md