summaryrefslogtreecommitdiff
path: root/rust/rust.go
diff options
context:
space:
mode:
author Ivan Lozano <ivanlozano@google.com> 2021-11-04 14:09:38 -0400
committer Ivan Lozano <ivanlozano@google.com> 2021-11-15 17:18:42 -0500
commit4e5f07d27ba2e8ae460457a5a977478b9b2c96eb (patch)
treebc60672c4224d020a36995bf8d641ac84602af2c /rust/rust.go
parent8d10fc39afdda6a9c3f27f3ed0999db9c8c2199a (diff)
rust: Add data_libs and data_bins to rust_test
Allows defining data binaries and libraries that should be installed alongside a rust_test module, similar to cc_test. This refactors cc_test as well so it can define rust_ffi_shared and rust_binary modules as data. Bug: 171710847 Test: New Soong tests pass. Test: Example module installs data appropriately. Change-Id: I0b56098fb475ec54f9b7a761220d260fe68cbee1
Diffstat (limited to 'rust/rust.go')
-rw-r--r--rust/rust.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/rust/rust.go b/rust/rust.go
index 7c8e80b5a..a97fc91cd 100644
--- a/rust/rust.go
+++ b/rust/rust.go
@@ -390,6 +390,10 @@ type Deps struct {
WholeStaticLibs []string
HeaderLibs []string
+ // Used for data dependencies adjacent to tests
+ DataLibs []string
+ DataBins []string
+
CrtBegin, CrtEnd string
}
@@ -975,6 +979,8 @@ var (
procMacroDepTag = dependencyTag{name: "procMacro", procMacro: true}
testPerSrcDepTag = dependencyTag{name: "rust_unit_tests"}
sourceDepTag = dependencyTag{name: "source"}
+ dataLibDepTag = dependencyTag{name: "data lib"}
+ dataBinDepTag = dependencyTag{name: "data bin"}
)
func IsDylibDepTag(depTag blueprint.DependencyTag) bool {
@@ -1400,6 +1406,12 @@ func (mod *Module) DepsMutator(actx android.BottomUpMutatorContext) {
}
}
+ actx.AddVariationDependencies([]blueprint.Variation{
+ {Mutator: "link", Variation: "shared"},
+ }, dataLibDepTag, deps.DataLibs...)
+
+ actx.AddVariationDependencies(nil, dataBinDepTag, deps.DataBins...)
+
// proc_macros are compiler plugins, and so we need the host arch variant as a dependendcy.
actx.AddFarVariationDependencies(ctx.Config().BuildOSTarget.Variations(), procMacroDepTag, deps.ProcMacros...)
}