Create Bazel symlink forest in a separate process.
This helps with incrementality a lot: the symlink forest must depend on almost every directory in the source tree so that if a new file is added or removed from *anywhere*, it is regenerated. Previously, we couldn't do this without invoking bp2build, which is quite wasteful because bp2build takes way more time than the symlink forest creation, even though we do the latter in a very suboptimal way at the moment. This means that if a source file is added or removed (which does not affect globs), we don't pay the cost of bp2build anymore. Also refactored symlink_forest.go on the side. Too much state was being passed around in arguments. This change reimplements aosp/2263423 ; the semantics of not touching an output file is the exact same as order-only inputs and the latter is a bit fewer lines of code. Test: Presubmits. Change-Id: I565c580df8a01bacf175d56747c3f50743d4a4d4
This commit is contained in:
@@ -69,6 +69,7 @@ func AddNeverAllowRules(rules ...Rule) {
|
||||
func createBp2BuildRule() Rule {
|
||||
return NeverAllow().
|
||||
With("bazel_module.bp2build_available", "true").
|
||||
NotIn("soong_tests"). // only used in tests
|
||||
Because("setting bp2build_available in Android.bp is not " +
|
||||
"supported for custom conversion, use allowlists.go instead.")
|
||||
}
|
||||
|
Reference in New Issue
Block a user