blob: 3c46d9dd975bf1fc3add7d613500848bc00a733f [file] [log] [blame]
Ivan Lozano183a3212019-10-18 14:18:45 -07001package 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
Ivan Lozano183a3212019-10-18 14:18:45 -070014 OutputFile() android.OptionalPath
15
Ivan Lozanoe0833b12019-11-06 19:15:49 -080016 IncludeDirs() android.Paths
Ivan Lozano183a3212019-10-18 14:18:45 -070017 SetDepsInLinkOrder([]android.Path)
18 GetDepsInLinkOrder() []android.Path
19
20 HasStaticVariant() bool
21 GetStaticVariant() LinkableInterface
22
Ivan Lozano2b262972019-11-21 12:30:50 -080023 NonCcVariants() bool
24
Ivan Lozano183a3212019-10-18 14:18:45 -070025 StubsVersions() []string
Ivan Lozano52767be2019-10-18 14:49:46 -070026 BuildStubs() bool
Ivan Lozano183a3212019-10-18 14:18:45 -070027 SetBuildStubs()
28 SetStubsVersions(string)
Ivan Lozano52767be2019-10-18 14:49:46 -070029 HasStubsVariants() bool
30 SelectedStl() string
31 ApiLevel() string
Ivan Lozano183a3212019-10-18 14:18:45 -070032
33 BuildStaticVariant() bool
34 BuildSharedVariant() bool
35 SetStatic()
36 SetShared()
Ivan Lozano52767be2019-10-18 14:49:46 -070037 Static() bool
38 Shared() bool
39 Toc() android.OptionalPath
40
Yifan Hong1b3348d2020-01-21 15:53:22 -080041 InRamdisk() bool
42 OnlyInRamdisk() bool
43
Ivan Lozano52767be2019-10-18 14:49:46 -070044 InRecovery() bool
45 OnlyInRecovery() bool
46
47 UseVndk() bool
48 MustUseVendorVariant() bool
49 IsVndk() bool
50 HasVendorVariant() bool
51
52 SdkVersion() string
53
54 ToolchainLibrary() bool
55 NdkPrebuiltStl() bool
56 StubDecorator() bool
Jiyong Park83dc74b2020-01-14 18:38:44 +090057
58 AllStaticDeps() []string
Ivan Lozano183a3212019-10-18 14:18:45 -070059}
60
61type DependencyTag struct {
62 blueprint.BaseDependencyTag
63 Name string
64 Library bool
65 Shared bool
66
67 ReexportFlags bool
68
69 ExplicitlyVersioned bool
70}
71
72var (
73 SharedDepTag = DependencyTag{Name: "shared", Library: true, Shared: true}
74 StaticDepTag = DependencyTag{Name: "static", Library: true}
75
76 CrtBeginDepTag = DependencyTag{Name: "crtbegin"}
77 CrtEndDepTag = DependencyTag{Name: "crtend"}
78)