52767be335
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
71 lines
1.3 KiB
Go
71 lines
1.3 KiB
Go
package cc
|
|
|
|
import (
|
|
"github.com/google/blueprint"
|
|
|
|
"android/soong/android"
|
|
)
|
|
|
|
type LinkableInterface interface {
|
|
Module() android.Module
|
|
CcLibrary() bool
|
|
CcLibraryInterface() bool
|
|
|
|
OutputFile() android.OptionalPath
|
|
|
|
IncludeDirs(ctx android.BaseModuleContext) android.Paths
|
|
SetDepsInLinkOrder([]android.Path)
|
|
GetDepsInLinkOrder() []android.Path
|
|
|
|
HasStaticVariant() bool
|
|
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 {
|
|
blueprint.BaseDependencyTag
|
|
Name string
|
|
Library bool
|
|
Shared bool
|
|
|
|
ReexportFlags bool
|
|
|
|
ExplicitlyVersioned bool
|
|
}
|
|
|
|
var (
|
|
SharedDepTag = DependencyTag{Name: "shared", Library: true, Shared: true}
|
|
StaticDepTag = DependencyTag{Name: "static", Library: true}
|
|
|
|
CrtBeginDepTag = DependencyTag{Name: "crtbegin"}
|
|
CrtEndDepTag = DependencyTag{Name: "crtend"}
|
|
)
|