commit | 07e152e508d9926f1ec87cdf33c9970ee2f18a41 | [log] [tgz] |
---|---|---|
author | Ulf Adams <ulf@engflow.com> | Mon Sep 21 14:50:13 2020 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Mon Sep 21 14:51:41 2020 -0700 |
tree | ef441c26b8a0488371ba10c9cb1c374f408a094f | |
parent | 1511dd208acc5c82f56b340044b54f35e7f32c0e [diff] |
Fetching symlink inputs for top-level output Top-level output files can be symlinks to non-top-level output files, such as in the case of a cc_binary linking against a .so built in the same build. I reuse the existing mayInsensitivelyPropagateInputs() method, which was originally introduced for action rewinding, but seems to have exactly the intended semantics here as well. Unfortunately, this requires a small change to the BlazeModule API to pass in the full analysis result (so we can access the action graph, so we can read the aformentioned flag). I considered using execution-phase information on whether an output is a symlink. However, at that point it's too late! The current design only allows pulling an output file *when its generating action runs*. It would be better if this was changed to pull output files independently of action execution. That would avoid a lot of problems with the current design, such as #10902. Fixes #11532. Change-Id: Iaf1e48895311fcf52d9e1802d53598288788a921 Closes #11536. Change-Id: Ie1bf49a8d08f0b2422426ecd95fe79b3686f8427 PiperOrigin-RevId: 332939828
{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