From 4e5f07d27ba2e8ae460457a5a977478b9b2c96eb Mon Sep 17 00:00:00 2001 From: Ivan Lozano Date: Thu, 4 Nov 2021 14:09:38 -0400 Subject: 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 --- rust/rust.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'rust/rust.go') 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...) } -- cgit v1.2.3-59-g8ed1b