1//
2// Copyright (C) 2017 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8//      http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15
16package {
17    default_applicable_licenses: ["Android-Apache-2.0"],
18}
19
20filegroup {
21    name: "pixelatoms_proto",
22    srcs: [
23        "pixelatoms.proto",
24        ":libstats_shared_enum_protos",
25        ":libstats_atom_options_protos",
26        ":libprotobuf-internal-descriptor-proto",
27    ],
28}
29
30cc_library {
31    name: "pixelatoms-cpp",
32    vendor: true,
33    proto: {
34        type: "lite",
35        export_proto_headers: true,
36        include_dirs: [
37            "external/protobuf/src",
38            "frameworks/proto_logging/stats",
39        ],
40    },
41    srcs: [
42        "pixelatoms.proto",
43        ":libstats_shared_enum_protos",
44        ":libstats_atom_options_protos",
45        ":libprotobuf-internal-descriptor-proto",
46    ],
47}
48
49java_library {
50    name: "pixelatoms-java",
51    vendor: true,
52    proto: {
53        type: "lite",
54        include_dirs: [
55            "external/protobuf/src",
56            "frameworks/proto_logging/stats",
57        ],
58    },
59    srcs: [
60        "pixelatoms.proto",
61        ":libstats_shared_enum_protos",
62        ":libstats_atom_options_protos",
63        ":libprotobuf-internal-descriptor-proto",
64    ],
65    sdk_version: "current",
66}
67
68java_library_host {
69    name: "pixelatoms-java_host",
70    proto: {
71        type: "full",
72        include_dirs: [
73            "external/protobuf/src",
74            "frameworks/proto_logging/stats",
75        ],
76    },
77    srcs: [
78        "pixelatoms.proto",
79        ":libstats_shared_enum_protos",
80        ":libstats_atom_options_protos",
81    ],
82}
83
84genrule {
85    name: "pixelatoms_defs.h",
86    tools: ["stats-log-api-gen"],
87    cmd: "$(location stats-log-api-gen) --header $(out)" +
88        " --namespace hardware,google,pixel,PixelAtoms" +
89        " --vendor-proto hardware/google/pixel/pixelstats/pixelatoms.proto",
90    out: [
91        "pixelatoms_defs.h",
92    ],
93    srcs: [
94        ":pixelatoms_proto",
95    ],
96}
97
98cc_library {
99    name: "libpixelatoms_defs",
100    vendor: true,
101    generated_headers: ["pixelatoms_defs.h"],
102    export_generated_headers: ["pixelatoms_defs.h"],
103}
104
105genrule {
106    name: "pixelstatsatoms.h",
107    tools: ["stats-log-api-gen"],
108    cmd: "$(location stats-log-api-gen) --header $(out)" +
109        " --module pixelstats" +
110        " --namespace android,hardware,google,pixel,PixelAtoms" +
111        " --vendor-proto hardware/google/pixel/pixelstats/pixelatoms.proto",
112    out: [
113        "pixelstatsatoms.h",
114    ],
115    srcs: [
116        ":pixelatoms_proto",
117    ],
118}
119
120genrule {
121    name: "pixelstatsatoms.cpp",
122    tools: ["stats-log-api-gen"],
123    cmd: "$(location stats-log-api-gen) --cpp $(out)" +
124        " --module pixelstats" +
125        " --importHeader pixelstatsatoms.h" +
126        " --namespace android,hardware,google,pixel,PixelAtoms" +
127        " --vendor-proto hardware/google/pixel/pixelstats/pixelatoms.proto",
128    out: [
129        "pixelstatsatoms.cpp",
130    ],
131    srcs: [
132        ":pixelatoms_proto",
133    ],
134}
135
136cc_library_static {
137    name: "libpixelstatsatoms",
138    vendor: true,
139    generated_sources: ["pixelstatsatoms.cpp"],
140    generated_headers: ["pixelstatsatoms.h"],
141    export_generated_headers: ["pixelstatsatoms.h"],
142    shared_libs: [
143        "android.frameworks.stats-V2-ndk",
144    ],
145}
146
147cc_library {
148    name: "libpixelstats",
149    vendor: true,
150    export_include_dirs: ["include"],
151
152    tidy_disabled_srcs: [
153        "MmMetricsReporter.cpp", // b/215238264
154    ],
155    srcs: [
156        "BatteryCapacityReporter.cpp",
157        "BatteryEEPROMReporter.cpp",
158        "BatteryHealthReporter.cpp",
159        "BatteryFGReporter.cpp",
160        "BatteryTTFReporter.cpp",
161        "BrownoutDetectedReporter.cpp",
162        "ChargeStatsReporter.cpp",
163        "DisplayStatsReporter.cpp",
164        "DropDetect.cpp",
165        "MmMetricsReporter.cpp",
166        "MitigationStatsReporter.cpp",
167        "MitigationDurationReporter.cpp",
168        "PcaChargeStats.cpp",
169        "StatsHelper.cpp",
170        "SysfsCollector.cpp",
171        "ThermalStatsReporter.cpp",
172        "TempResidencyReporter.cpp",
173        "UeventListener.cpp",
174        "WaterEventReporter.cpp",
175        "WirelessChargeStats.cpp",
176    ],
177    cflags: [
178        "-Wall",
179        "-Werror",
180    ],
181    shared_libs: [
182        "android.frameworks.stats-V2-ndk",
183        "libbase",
184        "libbinder_ndk",
185        "libcutils",
186        "libhidlbase",
187        "liblog",
188        "libprotobuf-cpp-lite",
189        "libutils",
190        "libsensorndkbridge",
191        "pixelatoms-cpp",
192    ],
193    export_shared_lib_headers: [
194        "android.frameworks.stats-V2-ndk",
195        "pixelatoms-cpp",
196    ],
197    static_libs: [
198        "chre_client",
199        "libpixelstatsatoms",
200    ],
201    header_libs: ["chre_api"],
202}
203