blob: a67cd4e4c7938a5ef7f645846240ca3893d75569 [file] [log] [blame]
Ivan Lozano183a3212019-10-18 14:18:45 -07001package cc
2
3import (
Ivan Lozano183a3212019-10-18 14:18:45 -07004 "android/soong/android"
Colin Cross6e511a92020-07-27 21:26:48 -07005
6 "github.com/google/blueprint"
Ivan Lozano183a3212019-10-18 14:18:45 -07007)
8
9type LinkableInterface interface {
10 Module() android.Module
11 CcLibrary() bool
12 CcLibraryInterface() bool
13
Ivan Lozano183a3212019-10-18 14:18:45 -070014 OutputFile() android.OptionalPath
Ivan Lozanoa0cd8f92020-04-09 09:56:02 -040015 CoverageFiles() android.Paths
Ivan Lozano183a3212019-10-18 14:18:45 -070016
Ivan Lozanoe0833b12019-11-06 19:15:49 -080017 IncludeDirs() android.Paths
Ivan Lozano183a3212019-10-18 14:18:45 -070018 SetDepsInLinkOrder([]android.Path)
19 GetDepsInLinkOrder() []android.Path
20
21 HasStaticVariant() bool
22 GetStaticVariant() LinkableInterface
23
Ivan Lozano2b262972019-11-21 12:30:50 -080024 NonCcVariants() bool
25
Ivan Lozano183a3212019-10-18 14:18:45 -070026 StubsVersions() []string
Ivan Lozano52767be2019-10-18 14:49:46 -070027 BuildStubs() bool
Ivan Lozano183a3212019-10-18 14:18:45 -070028 SetBuildStubs()
Colin Crossd1f898e2020-08-18 18:35:15 -070029 SetStubsVersion(string)
Jooyung Han03b51852020-02-26 22:45:42 +090030 StubsVersion() string
Colin Crossd1f898e2020-08-18 18:35:15 -070031 SetAllStubsVersions([]string)
32 AllStubsVersions() []string
Ivan Lozano52767be2019-10-18 14:49:46 -070033 HasStubsVariants() bool
34 SelectedStl() string
35 ApiLevel() string
Ivan Lozano183a3212019-10-18 14:18:45 -070036
37 BuildStaticVariant() bool
38 BuildSharedVariant() bool
39 SetStatic()
40 SetShared()
Ivan Lozano52767be2019-10-18 14:49:46 -070041 Static() bool
42 Shared() bool
43 Toc() android.OptionalPath
44
Jooyung Han624d35c2020-04-10 12:57:24 +090045 Host() bool
46
Yifan Hong1b3348d2020-01-21 15:53:22 -080047 InRamdisk() bool
48 OnlyInRamdisk() bool
49
Ivan Lozano52767be2019-10-18 14:49:46 -070050 InRecovery() bool
51 OnlyInRecovery() bool
52
Colin Crossc511bc52020-04-07 16:50:32 +000053 UseSdk() bool
Ivan Lozano52767be2019-10-18 14:49:46 -070054 UseVndk() bool
55 MustUseVendorVariant() bool
56 IsVndk() bool
57 HasVendorVariant() bool
58
59 SdkVersion() string
Colin Crossc511bc52020-04-07 16:50:32 +000060 AlwaysSdk() bool
Jiyong Park2286afd2020-06-16 21:58:53 +090061 IsSdkVariant() bool
Ivan Lozano52767be2019-10-18 14:49:46 -070062
63 ToolchainLibrary() bool
64 NdkPrebuiltStl() bool
65 StubDecorator() bool
Colin Cross1348ce32020-10-01 13:37:16 -070066
67 SplitPerApiLevel() bool
Ivan Lozano183a3212019-10-18 14:18:45 -070068}
69
Colin Cross6e511a92020-07-27 21:26:48 -070070var (
71 CrtBeginDepTag = dependencyTag{name: "crtbegin"}
72 CrtEndDepTag = dependencyTag{name: "crtend"}
73 CoverageDepTag = dependencyTag{name: "coverage"}
74)
Ivan Lozano183a3212019-10-18 14:18:45 -070075
Colin Cross6e511a92020-07-27 21:26:48 -070076func SharedDepTag() blueprint.DependencyTag {
77 return libraryDependencyTag{Kind: sharedLibraryDependency}
Ivan Lozano183a3212019-10-18 14:18:45 -070078}
79
Colin Cross6e511a92020-07-27 21:26:48 -070080func StaticDepTag() blueprint.DependencyTag {
81 return libraryDependencyTag{Kind: staticLibraryDependency}
82}