1package cc
2
3import (
4	"github.com/google/blueprint"
5
6	"android/soong/android"
7)
8
9type LinkableInterface interface {
10	Module() android.Module
11	CcLibrary() bool
12	CcLibraryInterface() bool
13
14	OutputFile() android.OptionalPath
15	CoverageFiles() android.Paths
16
17	IncludeDirs() android.Paths
18	SetDepsInLinkOrder([]android.Path)
19	GetDepsInLinkOrder() []android.Path
20
21	HasStaticVariant() bool
22	GetStaticVariant() LinkableInterface
23
24	NonCcVariants() bool
25
26	StubsVersions() []string
27	BuildStubs() bool
28	SetBuildStubs()
29	SetStubsVersions(string)
30	StubsVersion() string
31	HasStubsVariants() bool
32	SelectedStl() string
33	ApiLevel() string
34
35	BuildStaticVariant() bool
36	BuildSharedVariant() bool
37	SetStatic()
38	SetShared()
39	Static() bool
40	Shared() bool
41	Toc() android.OptionalPath
42
43	Host() bool
44
45	InRamdisk() bool
46	OnlyInRamdisk() bool
47
48	InRecovery() bool
49	OnlyInRecovery() bool
50
51	UseSdk() bool
52	UseVndk() bool
53	MustUseVendorVariant() bool
54	IsVndk() bool
55	HasVendorVariant() bool
56
57	SdkVersion() string
58	AlwaysSdk() bool
59	IsSdkVariant() bool
60
61	ToolchainLibrary() bool
62	NdkPrebuiltStl() bool
63	StubDecorator() bool
64}
65
66type DependencyTag struct {
67	blueprint.BaseDependencyTag
68	Name    string
69	Library bool
70	Shared  bool
71
72	ReexportFlags bool
73
74	ExplicitlyVersioned bool
75
76	FromStatic bool
77}
78
79var (
80	SharedDepTag = DependencyTag{Name: "shared", Library: true, Shared: true}
81	StaticDepTag = DependencyTag{Name: "static", Library: true}
82
83	// Same as SharedDepTag, but from a static lib
84	SharedFromStaticDepTag = DependencyTag{Name: "shared from static", Library: true, Shared: true, FromStatic: true}
85
86	CrtBeginDepTag = DependencyTag{Name: "crtbegin"}
87	CrtEndDepTag   = DependencyTag{Name: "crtend"}
88	CoverageDepTag = DependencyTag{Name: "coverage"}
89)
90