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 ], 29 include_dirs: [ 30 "system/libbase/include", 31 ], 32 shared_libs: [ 33 "libbase", 34 "libbinder", 35 "liblog", 36 "libutils", 37 ], 38 static_libs: [ 39 "android.automotive.watchdog.internal-cpp", 40 "android.automotive.watchdog-V3-cpp", 41 ], 42 header_libs: [ 43 "libgtest_prod_headers", 44 ], 45} 46 47cc_library { 48 name: "libwatchdog_package_info_resolver", 49 srcs: [ 50 "src/PackageInfoResolver.cpp", 51 ], 52 defaults: [ 53 "carwatchdogd_defaults", 54 ], 55 shared_libs: [ 56 "android.hardware.automotive.vehicle@2.0", 57 "libcutils", 58 ], 59 export_include_dirs: [ 60 "src", 61 ], 62} 63 64cc_defaults { 65 name: "libwatchdog_perf_service_defaults", 66 shared_libs: [ 67 "libcutils", 68 "libprocessgroup", 69 "libtinyxml2", 70 ], 71} 72 73cc_library { 74 name: "libwatchdog_perf_service", 75 defaults: [ 76 "carwatchdogd_defaults", 77 "libwatchdog_perf_service_defaults", 78 ], 79 srcs: [ 80 "src/WatchdogPerfService.cpp", 81 "src/IoOveruseConfigs.cpp", 82 "src/IoOveruseMonitor.cpp", 83 "src/IoPerfCollection.cpp", 84 "src/LooperWrapper.cpp", 85 "src/OveruseConfigurationXmlHelper.cpp", 86 "src/ProcDiskStats.cpp", 87 "src/ProcStat.cpp", 88 "src/UidIoStatsCollector.cpp", 89 "src/UidProcStatsCollector.cpp", 90 "src/UidStatsCollector.cpp", 91 ], 92 shared_libs: [ 93 "android.hardware.automotive.vehicle@2.0", 94 ], 95 whole_static_libs: [ 96 "libwatchdog_properties", 97 "libwatchdog_package_info_resolver", 98 ], 99 export_include_dirs: [ 100 "src", 101 ], 102} 103 104filegroup { 105 name: "watchdog_test_xml_files", 106 srcs: [ 107 "tests/data/*.xml", 108 ], 109} 110 111cc_test { 112 name: "libwatchdog_test", 113 defaults: [ 114 "carwatchdogd_defaults", 115 "libwatchdog_perf_service_defaults", 116 "libwatchdog_process_service_defaults", 117 ], 118 test_suites: ["general-tests"], 119 srcs: [ 120 "tests/IoOveruseConfigsTest.cpp", 121 "tests/IoOveruseMonitorTest.cpp", 122 "tests/IoPerfCollectionTest.cpp", 123 "tests/LooperStub.cpp", 124 "tests/OveruseConfigurationTestUtils.cpp", 125 "tests/OveruseConfigurationXmlHelperTest.cpp", 126 "tests/PackageInfoResolverTest.cpp", 127 "tests/PackageInfoTestUtils.cpp", 128 "tests/ProcDiskStatsTest.cpp", 129 "tests/ProcPidDir.cpp", 130 "tests/ProcStatTest.cpp", 131 "tests/UidIoStatsCollectorTest.cpp", 132 "tests/UidProcStatsCollectorTest.cpp", 133 "tests/UidStatsCollectorTest.cpp", 134 "tests/WatchdogBinderMediatorTest.cpp", 135 "tests/WatchdogInternalHandlerTest.cpp", 136 "tests/WatchdogPerfServiceTest.cpp", 137 "tests/WatchdogProcessServiceTest.cpp", 138 "tests/WatchdogServiceHelperTest.cpp", 139 ], 140 static_libs: [ 141 "libgmock", 142 "libgtest", 143 "libwatchdog_binder_mediator", 144 "libwatchdog_perf_service", 145 "libwatchdog_process_service", 146 ], 147 whole_static_libs: [ 148 "libwatchdog_package_info_resolver", 149 "android.hardware.automotive.vehicle@2.0", 150 ], 151 data: [":watchdog_test_xml_files"], 152} 153 154cc_defaults { 155 name: "libwatchdog_process_service_defaults", 156 shared_libs: [ 157 "libhidlbase", 158 ], 159} 160 161cc_library { 162 name: "libwatchdog_process_service", 163 srcs: [ 164 "src/WatchdogProcessService.cpp", 165 ], 166 defaults: [ 167 "carwatchdogd_defaults", 168 "libwatchdog_process_service_defaults" 169 ], 170 shared_libs: [ 171 "android.hardware.automotive.vehicle@2.0", 172 ], 173} 174 175cc_library { 176 name: "libwatchdog_binder_mediator", 177 defaults: [ 178 "carwatchdogd_defaults", 179 "libwatchdog_perf_service_defaults", 180 "libwatchdog_process_service_defaults", 181 ], 182 srcs: [ 183 "src/WatchdogBinderMediator.cpp", 184 "src/WatchdogInternalHandler.cpp", 185 "src/WatchdogServiceHelper.cpp", 186 ], 187 shared_libs: [ 188 "android.hardware.automotive.vehicle@2.0", 189 ], 190 static_libs: [ 191 "libwatchdog_perf_service", 192 "libwatchdog_process_service", 193 ], 194 export_include_dirs: [ 195 "src", 196 ], 197} 198 199cc_binary { 200 name: "carwatchdogd", 201 defaults: [ 202 "carwatchdogd_defaults", 203 "libwatchdog_perf_service_defaults", 204 "libwatchdog_process_service_defaults", 205 ], 206 srcs: [ 207 "src/main.cpp", 208 "src/ServiceManager.cpp", 209 ], 210 init_rc: ["carwatchdogd.rc"], 211 shared_libs: [ 212 "android.hardware.automotive.vehicle@2.0", 213 ], 214 static_libs: [ 215 "libwatchdog_binder_mediator", 216 "libwatchdog_perf_service", 217 "libwatchdog_process_service", 218 ], 219 whole_static_libs: [ 220 "libwatchdog_package_info_resolver", 221 ], 222 vintf_fragments: ["carwatchdogd.xml"], 223 required: [ 224 "system_resource_overuse_configuration.xml", 225 "third_party_resource_overuse_configuration.xml", 226 ], 227} 228 229prebuilt_etc { 230 name: "system_resource_overuse_configuration.xml", 231 src: "data/system_resource_overuse_configuration.xml", 232 sub_dir: "automotive/watchdog/", 233} 234 235prebuilt_etc { 236 name: "third_party_resource_overuse_configuration.xml", 237 src: "data/third_party_resource_overuse_configuration.xml", 238 sub_dir: "automotive/watchdog/", 239} 240