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