• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (C) 2020 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package {
16    default_applicable_licenses: ["Android-Apache-2.0"],
17}
18
19cc_defaults {
20    name: "carwatchdogd_defaults",
21    cflags: [
22        "-Wall",
23        "-Wno-missing-field-initializers",
24        "-Werror",
25        "-Wno-unused-variable",
26        "-Wunused-parameter",
27        "-Wno-error=deprecated",
28        "-DANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION",
29    ],
30    include_dirs: [
31        "system/libbase/include",
32    ],
33    shared_libs: [
34        "libbase",
35        "libbinder",
36        "liblog",
37        "libutils",
38        "packagemanager_aidl-cpp",
39    ],
40    static_libs: [
41        "android.automotive.watchdog.internal-V2-cpp",
42        "android.automotive.watchdog-V3-cpp",
43        "libvhalclient",
44    ],
45    header_libs: [
46        "libgtest_prod_headers",
47    ],
48    defaults: [
49        "vhalclient_defaults",
50    ],
51}
52
53cc_library {
54  name: "libwatchdog_package_info_resolver",
55  srcs: [
56      "src/PackageInfoResolver.cpp",
57  ],
58  defaults: [
59      "carwatchdogd_defaults",
60  ],
61  shared_libs: [
62      "android.hardware.automotive.vehicle@2.0",
63      "libcutils",
64  ],
65  export_include_dirs: [
66       "src",
67  ],
68}
69
70cc_defaults {
71    name: "libwatchdog_perf_service_defaults",
72    shared_libs: [
73        "libcutils",
74        "libprocessgroup",
75        "libtinyxml2",
76    ],
77}
78
79cc_library {
80    name: "libwatchdog_perf_service",
81    defaults: [
82        "carwatchdogd_defaults",
83        "libwatchdog_perf_service_defaults",
84    ],
85    srcs: [
86        "src/WatchdogPerfService.cpp",
87        "src/IoOveruseConfigs.cpp",
88        "src/IoOveruseMonitor.cpp",
89        "src/IoPerfCollection.cpp",
90        "src/LooperWrapper.cpp",
91        "src/OveruseConfigurationXmlHelper.cpp",
92        "src/ProcDiskStatsCollector.cpp",
93        "src/ProcStatCollector.cpp",
94        "src/UidCpuStatsCollector.cpp",
95        "src/UidIoStatsCollector.cpp",
96        "src/UidProcStatsCollector.cpp",
97        "src/UidStatsCollector.cpp",
98    ],
99    shared_libs: [
100        "android.hardware.automotive.vehicle@2.0",
101    ],
102    whole_static_libs: [
103        "libwatchdog_properties",
104        "libwatchdog_package_info_resolver",
105    ],
106    export_include_dirs: [
107        "src",
108    ],
109}
110
111filegroup {
112    name: "watchdog_test_xml_files",
113    srcs: [
114        "tests/data/*.xml",
115    ],
116}
117
118cc_test {
119    name: "libwatchdog_test",
120    defaults: [
121        "carwatchdogd_defaults",
122        "libwatchdog_perf_service_defaults",
123        "libwatchdog_process_service_defaults",
124        "libwatchdog_service_manager_defaults",
125    ],
126    test_suites: ["general-tests"],
127    tidy_disabled_srcs: [
128        // b/207508335
129        "tests/PackageInfoResolverTest.cpp",
130    ],
131    tidy_timeout_srcs: [
132        "tests/IoOveruseMonitorTest.cpp",
133        "tests/WatchdogServiceHelperTest.cpp",
134    ],
135    srcs: [
136        "tests/IoOveruseConfigsTest.cpp",
137        "tests/IoOveruseMonitorTest.cpp",
138        "tests/IoPerfCollectionTest.cpp",
139        "tests/LooperStub.cpp",
140        "tests/OveruseConfigurationTestUtils.cpp",
141        "tests/OveruseConfigurationXmlHelperTest.cpp",
142        "tests/PackageInfoResolverTest.cpp",
143        "tests/PackageInfoTestUtils.cpp",
144        "tests/ProcDiskStatsCollectorTest.cpp",
145        "tests/ProcPidDir.cpp",
146        "tests/ProcStatCollectorTest.cpp",
147        "tests/UidIoStatsCollectorTest.cpp",
148        "tests/UidProcStatsCollectorTest.cpp",
149        "tests/UidCpuStatsCollectorTest.cpp",
150        "tests/UidStatsCollectorTest.cpp",
151        "tests/WatchdogBinderMediatorTest.cpp",
152        "tests/WatchdogInternalHandlerTest.cpp",
153        "tests/WatchdogPerfServiceTest.cpp",
154        "tests/WatchdogProcessServiceTest.cpp",
155        "tests/WatchdogServiceHelperTest.cpp",
156    ],
157    static_libs: [
158        "android.hardware.automotive.vehicle@2.0",
159        "libgmock",
160        "libgtest",
161        "libwatchdog_binder_mediator",
162        "libwatchdog_perf_service",
163        "libwatchdog_process_service",
164        "libwatchdog_service_manager",
165    ],
166    whole_static_libs: [
167        "libwatchdog_package_info_resolver",
168    ],
169    data: [":watchdog_test_xml_files"],
170}
171
172cc_defaults {
173    name: "libwatchdog_process_service_defaults",
174    shared_libs: [
175        "libhidlbase",
176    ],
177}
178
179cc_library_static {
180    name: "libwatchdog_process_service",
181    srcs: [
182        "src/WatchdogProcessService.cpp",
183    ],
184    defaults: [
185        "carwatchdogd_defaults",
186        "libwatchdog_process_service_defaults",
187    ],
188    shared_libs: [
189        "android.hardware.automotive.vehicle@2.0",
190    ],
191}
192
193cc_library {
194    name: "libwatchdog_binder_mediator",
195    defaults: [
196        "carwatchdogd_defaults",
197        "libwatchdog_perf_service_defaults",
198        "libwatchdog_process_service_defaults",
199    ],
200    srcs: [
201        "src/ThreadPriorityController.cpp",
202        "src/WatchdogBinderMediator.cpp",
203        "src/WatchdogInternalHandler.cpp",
204        "src/WatchdogServiceHelper.cpp",
205    ],
206    shared_libs: [
207        "android.hardware.automotive.vehicle@2.0",
208    ],
209    static_libs: [
210        "libwatchdog_perf_service",
211        "libwatchdog_process_service",
212    ],
213    export_include_dirs: [
214        "src",
215    ],
216}
217
218cc_defaults {
219    name: "libwatchdog_service_manager_defaults",
220    defaults: [
221        "libwatchdog_perf_service_defaults",
222        "libwatchdog_process_service_defaults",
223    ],
224    static_libs: [
225        "libwatchdog_binder_mediator",
226        "libwatchdog_package_info_resolver",
227        "libwatchdog_perf_service",
228        "libwatchdog_process_service",
229    ],
230}
231
232cc_library {
233    name: "libwatchdog_service_manager",
234    defaults: [
235        "carwatchdogd_defaults",
236        "libwatchdog_service_manager_defaults",
237    ],
238    srcs: [
239        "src/ServiceManager.cpp",
240    ],
241}
242
243cc_binary {
244    name: "carwatchdogd",
245    defaults: [
246        "carwatchdogd_defaults",
247        "libwatchdog_service_manager_defaults",
248    ],
249    srcs: [
250        "src/main.cpp",
251    ],
252    init_rc: ["carwatchdogd.rc"],
253    shared_libs: [
254        "android.hardware.automotive.vehicle@2.0",
255    ],
256    static_libs: [
257        "libwatchdog_service_manager",
258    ],
259    vintf_fragments: ["carwatchdogd.xml"],
260    required: [
261        "system_resource_overuse_configuration.xml",
262        "third_party_resource_overuse_configuration.xml",
263    ],
264}
265
266prebuilt_etc {
267    name: "system_resource_overuse_configuration.xml",
268    src: "data/system_resource_overuse_configuration.xml",
269    sub_dir: "automotive/watchdog/",
270}
271
272prebuilt_etc {
273    name: "third_party_resource_overuse_configuration.xml",
274    src: "data/third_party_resource_overuse_configuration.xml",
275    sub_dir: "automotive/watchdog/",
276}
277