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
diff --git a/cc/linkable.go b/cc/linkable.go
index 2c60337..cfbaffe 100644
--- a/cc/linkable.go
+++ b/cc/linkable.go
@@ -11,10 +11,9 @@
CcLibrary() bool
CcLibraryInterface() bool
- InRecovery() bool
OutputFile() android.OptionalPath
- IncludeDirs() android.Paths
+ IncludeDirs(ctx android.BaseModuleContext) android.Paths
SetDepsInLinkOrder([]android.Path)
GetDepsInLinkOrder() []android.Path
@@ -22,13 +21,34 @@
GetStaticVariant() LinkableInterface
StubsVersions() []string
+ BuildStubs() bool
SetBuildStubs()
SetStubsVersions(string)
+ HasStubsVariants() bool
+ SelectedStl() string
+ ApiLevel() string
BuildStaticVariant() bool
BuildSharedVariant() bool
SetStatic()
SetShared()
+ Static() bool
+ Shared() bool
+ Toc() android.OptionalPath
+
+ InRecovery() bool
+ OnlyInRecovery() bool
+
+ UseVndk() bool
+ MustUseVendorVariant() bool
+ IsVndk() bool
+ HasVendorVariant() bool
+
+ SdkVersion() string
+
+ ToolchainLibrary() bool
+ NdkPrebuiltStl() bool
+ StubDecorator() bool
}
type DependencyTag struct {