diff options
author | Ivan Lozano <ivanlozano@google.com> | 2019-10-18 14:49:46 -0700 |
---|---|---|
committer | Ivan Lozano <ivanlozano@google.com> | 2019-10-28 22:09:01 -0700 |
commit | 52767be335c200dfbf2af3da802e24a1cc91f1bf (patch) | |
tree | e9501012123d5a37570c03646bff99a79d3d385e /rust/testing.go | |
parent | 183a3218e257b6d1dcd6636f136ede87411b13f4 (diff) |
Add support for Rust C libraries.
Adds the ability for rust modules to be compiled as C libraries, and
allows cc modules to depend on these rust-generated modules. This also
means that soong-rust should not have any dependencies on soong-cc aside
from what's required for testing.
There's a couple small fixes included as well:
- A bug in libNameFromFilePath that caused issues when library's had
"lib" in their name.
- VariantName is removed from rust library MutatedProperties since this
was unused.
Bug: 140726209
Test: Soong tests pass.
Test: Example cc_binary can include a rust shared library as a dep.
Test: m crosvm.experimental
Change-Id: Ia7deed1345d2423001089014cc65ce7934123da4
Diffstat (limited to 'rust/testing.go')
-rw-r--r-- | rust/testing.go | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/rust/testing.go b/rust/testing.go index 92347f1f3..cd6308434 100644 --- a/rust/testing.go +++ b/rust/testing.go @@ -174,18 +174,23 @@ func CreateTestContext(bp string) *android.TestContext { ctx.RegisterModuleType("rust_library_host_dylib", android.ModuleFactoryAdaptor(RustLibraryDylibHostFactory)) ctx.RegisterModuleType("rust_library_rlib", android.ModuleFactoryAdaptor(RustLibraryRlibFactory)) ctx.RegisterModuleType("rust_library_dylib", android.ModuleFactoryAdaptor(RustLibraryDylibFactory)) + ctx.RegisterModuleType("rust_library_shared", android.ModuleFactoryAdaptor(RustLibrarySharedFactory)) + ctx.RegisterModuleType("rust_library_static", android.ModuleFactoryAdaptor(RustLibraryStaticFactory)) + ctx.RegisterModuleType("rust_library_host_shared", android.ModuleFactoryAdaptor(RustLibrarySharedHostFactory)) + ctx.RegisterModuleType("rust_library_host_static", android.ModuleFactoryAdaptor(RustLibraryStaticHostFactory)) ctx.RegisterModuleType("rust_proc_macro", android.ModuleFactoryAdaptor(ProcMacroFactory)) ctx.RegisterModuleType("rust_prebuilt_dylib", android.ModuleFactoryAdaptor(PrebuiltDylibFactory)) ctx.RegisterModuleType("toolchain_library", android.ModuleFactoryAdaptor(cc.ToolchainLibraryFactory)) ctx.PreDepsMutators(func(ctx android.RegisterMutatorsContext) { - ctx.BottomUp("rust_libraries", LibraryMutator).Parallel() - + // cc mutators ctx.BottomUp("image", cc.ImageMutator).Parallel() ctx.BottomUp("link", cc.LinkageMutator).Parallel() ctx.BottomUp("version", cc.VersionMutator).Parallel() ctx.BottomUp("begin", cc.BeginMutator).Parallel() - }) + // rust mutators + ctx.BottomUp("rust_libraries", LibraryMutator).Parallel() + }) bp = bp + GatherRequiredDepsForTest() mockFS := map[string][]byte{ |