diff options
author | 2021-06-01 15:09:53 -0400 | |
---|---|---|
committer | 2021-06-03 08:36:09 -0400 | |
commit | 3149e6ed1882786fc9e1defd0b5540c0147a0209 (patch) | |
tree | edee79e9487fdbc90116eb3d71f9f867746ac28a /rust/rust.go | |
parent | d1dec54988630cabaf15b2353e55460f79c05b0c (diff) |
Rust rlib vendor snapshot support.
Adds support for snapshotting Rust rlibs. This allows us
vendor-specific code that uses rlib-only linkage until dylib
snapshot support is added.
Bug: 184042776
Test: m nothing # new Soong tests pass
Test: Example test Rust vendor module builds
Test: m dist vendor-snapshot # includes rlibs
Change-Id: I4976d3e1efec0ee778cc97730d45be471dffb678
Diffstat (limited to 'rust/rust.go')
-rw-r--r-- | rust/rust.go | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/rust/rust.go b/rust/rust.go index 7a8687c8b..b8c8be5a2 100644 --- a/rust/rust.go +++ b/rust/rust.go @@ -1209,10 +1209,14 @@ func (mod *Module) DepsMutator(actx android.BottomUpMutatorContext) { } // rlibs - actx.AddVariationDependencies( - append(rlibDepVariations, []blueprint.Variation{ - {Mutator: "rust_libraries", Variation: rlibVariation}}...), - rlibDepTag, deps.Rlibs...) + for _, lib := range deps.Rlibs { + depTag := rlibDepTag + lib = cc.RewriteSnapshotLib(lib, cc.GetSnapshot(mod, &snapshotInfo, actx).Rlibs) + + actx.AddVariationDependencies(append(rlibDepVariations, []blueprint.Variation{ + {Mutator: "rust_libraries", Variation: rlibVariation}, + }...), depTag, lib) + } // dylibs actx.AddVariationDependencies( @@ -1224,9 +1228,13 @@ func (mod *Module) DepsMutator(actx android.BottomUpMutatorContext) { if deps.Rustlibs != nil && !mod.compiler.Disabled() { autoDep := mod.compiler.(autoDeppable).autoDep(ctx) if autoDep.depTag == rlibDepTag { - actx.AddVariationDependencies( - append(rlibDepVariations, blueprint.Variation{Mutator: "rust_libraries", Variation: autoDep.variation}), - autoDep.depTag, deps.Rustlibs...) + for _, lib := range deps.Rustlibs { + depTag := autoDep.depTag + lib = cc.RewriteSnapshotLib(lib, cc.GetSnapshot(mod, &snapshotInfo, actx).Rlibs) + actx.AddVariationDependencies(append(rlibDepVariations, []blueprint.Variation{ + {Mutator: "rust_libraries", Variation: autoDep.variation}, + }...), depTag, lib) + } } else { actx.AddVariationDependencies( append(commonDepVariations, blueprint.Variation{Mutator: "rust_libraries", Variation: autoDep.variation}), @@ -1237,9 +1245,13 @@ func (mod *Module) DepsMutator(actx android.BottomUpMutatorContext) { // stdlibs if deps.Stdlibs != nil { if mod.compiler.stdLinkage(ctx) == RlibLinkage { - actx.AddVariationDependencies( - append(commonDepVariations, []blueprint.Variation{{Mutator: "rust_libraries", Variation: "rlib"}}...), - rlibDepTag, deps.Stdlibs...) + for _, lib := range deps.Stdlibs { + depTag := rlibDepTag + lib = cc.RewriteSnapshotLib(lib, cc.GetSnapshot(mod, &snapshotInfo, actx).Rlibs) + + actx.AddVariationDependencies(append(commonDepVariations, []blueprint.Variation{{Mutator: "rust_libraries", Variation: "rlib"}}...), + depTag, lib) + } } else { actx.AddVariationDependencies( append(commonDepVariations, blueprint.Variation{Mutator: "rust_libraries", Variation: "dylib"}), |