| package cc | 
 |  | 
 | import ( | 
 | 	"android/soong/android" | 
 |  | 
 | 	"github.com/google/blueprint" | 
 | ) | 
 |  | 
 | type LinkableInterface interface { | 
 | 	Module() android.Module | 
 | 	CcLibrary() bool | 
 | 	CcLibraryInterface() bool | 
 |  | 
 | 	OutputFile() android.OptionalPath | 
 | 	CoverageFiles() android.Paths | 
 |  | 
 | 	NonCcVariants() bool | 
 |  | 
 | 	SelectedStl() string | 
 |  | 
 | 	BuildStaticVariant() bool | 
 | 	BuildSharedVariant() bool | 
 | 	SetStatic() | 
 | 	SetShared() | 
 | 	Static() bool | 
 | 	Shared() bool | 
 | 	Toc() android.OptionalPath | 
 |  | 
 | 	Host() bool | 
 |  | 
 | 	InRamdisk() bool | 
 | 	OnlyInRamdisk() bool | 
 |  | 
 | 	InVendorRamdisk() bool | 
 | 	OnlyInVendorRamdisk() bool | 
 |  | 
 | 	InRecovery() bool | 
 | 	OnlyInRecovery() bool | 
 |  | 
 | 	UseSdk() bool | 
 | 	UseVndk() bool | 
 | 	MustUseVendorVariant() bool | 
 | 	IsVndk() bool | 
 | 	HasVendorVariant() bool | 
 |  | 
 | 	SdkVersion() string | 
 | 	AlwaysSdk() bool | 
 | 	IsSdkVariant() bool | 
 |  | 
 | 	SplitPerApiLevel() bool | 
 | } | 
 |  | 
 | var ( | 
 | 	CrtBeginDepTag = dependencyTag{name: "crtbegin"} | 
 | 	CrtEndDepTag   = dependencyTag{name: "crtend"} | 
 | 	CoverageDepTag = dependencyTag{name: "coverage"} | 
 | ) | 
 |  | 
 | func SharedDepTag() blueprint.DependencyTag { | 
 | 	return libraryDependencyTag{Kind: sharedLibraryDependency} | 
 | } | 
 |  | 
 | func StaticDepTag() blueprint.DependencyTag { | 
 | 	return libraryDependencyTag{Kind: staticLibraryDependency} | 
 | } | 
 |  | 
 | func HeaderDepTag() blueprint.DependencyTag { | 
 | 	return libraryDependencyTag{Kind: headerLibraryDependency} | 
 | } | 
 |  | 
 | type SharedLibraryInfo struct { | 
 | 	SharedLibrary           android.Path | 
 | 	UnstrippedSharedLibrary android.Path | 
 |  | 
 | 	TableOfContents       android.OptionalPath | 
 | 	CoverageSharedLibrary android.OptionalPath | 
 |  | 
 | 	StaticAnalogue *StaticLibraryInfo | 
 | } | 
 |  | 
 | var SharedLibraryInfoProvider = blueprint.NewProvider(SharedLibraryInfo{}) | 
 |  | 
 | type SharedLibraryImplementationStubsInfo struct { | 
 | 	SharedLibraryStubsInfos []SharedLibraryStubsInfo | 
 |  | 
 | 	IsLLNDK bool | 
 | } | 
 |  | 
 | var SharedLibraryImplementationStubsInfoProvider = blueprint.NewProvider(SharedLibraryImplementationStubsInfo{}) | 
 |  | 
 | type SharedLibraryStubsInfo struct { | 
 | 	Version           string | 
 | 	SharedLibraryInfo SharedLibraryInfo | 
 | 	FlagExporterInfo  FlagExporterInfo | 
 | } | 
 |  | 
 | var SharedLibraryStubsInfoProvider = blueprint.NewProvider(SharedLibraryStubsInfo{}) | 
 |  | 
 | type StaticLibraryInfo struct { | 
 | 	StaticLibrary android.Path | 
 | 	Objects       Objects | 
 | 	ReuseObjects  Objects | 
 |  | 
 | 	// This isn't the actual transitive DepSet, shared library dependencies have been | 
 | 	// converted into static library analogues.  It is only used to order the static | 
 | 	// library dependencies that were specified for the current module. | 
 | 	TransitiveStaticLibrariesForOrdering *android.DepSet | 
 | } | 
 |  | 
 | var StaticLibraryInfoProvider = blueprint.NewProvider(StaticLibraryInfo{}) | 
 |  | 
 | type FlagExporterInfo struct { | 
 | 	IncludeDirs       android.Paths | 
 | 	SystemIncludeDirs android.Paths | 
 | 	Flags             []string | 
 | 	Deps              android.Paths | 
 | 	GeneratedHeaders  android.Paths | 
 | } | 
 |  | 
 | var FlagExporterInfoProvider = blueprint.NewProvider(FlagExporterInfo{}) |