1// Copyright (C) 2016 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 15// ========= 16// incidentd 17// ========= 18 19package { 20 // See: http://go/android-license-faq 21 // A large-scale-change added 'default_applicable_licenses' to import 22 // all of the 'license_kinds' from "frameworks_base_license" 23 // to get the below license kinds: 24 // SPDX-license-identifier-Apache-2.0 25 default_applicable_licenses: ["frameworks_base_license"], 26} 27 28cc_binary { 29 name: "incidentd", 30 31 srcs: [ 32 "src/**/*.cpp", 33 "src/**/*.proto", 34 ":incidentd_section_list", 35 ], 36 37 cflags: [ 38 "-Wall", 39 "-Werror", 40 "-Wno-missing-field-initializers", 41 "-Wno-unused-variable", 42 "-Wunused-parameter", 43 "-Wno-tautological-undefined-compare", 44 45 // Allow implicit fallthrough in IncidentService.cpp:85 until it is fixed. 46 "-Wno-error=implicit-fallthrough", 47 48 // optimize for size (protobuf glop can get big) 49 "-Os", 50 //"-g", 51 //"-O0", 52 ], 53 54 local_include_dirs: ["src"], 55 generated_headers: ["framework-cppstream-protos"], 56 57 proto: { 58 type: "lite", 59 }, 60 61 shared_libs: [ 62 "libbase", 63 "libbinder", 64 "libdebuggerd_client", 65 "libdumputils", 66 "libincidentpriv", 67 "liblog", 68 "libprotoutil", 69 "libservices", 70 "libutils", 71 "libprotobuf-cpp-lite", 72 ], 73 74 static_libs: [ 75 "libincidentcompanion", 76 "libplatformprotos", 77 ], 78 79 product_variables: { 80 debuggable: { 81 cflags: ["-DALLOW_RESTRICTED_SECTIONS=1"], 82 }, 83 }, 84 85 init_rc: ["incidentd.rc"], 86} 87 88cc_defaults { 89 name: "incidentd_test_defaults", 90 91 cflags: [ 92 "-Werror", 93 "-Wall", 94 "-Wno-unused-variable", 95 "-Wunused-parameter", 96 "-g", 97 "-Wno-tautological-undefined-compare", 98 99 // Allow implicit fallthrough in IncidentService.cpp:85 until it is fixed. 100 "-Wno-error=implicit-fallthrough", 101 ], 102 103 local_include_dirs: ["src"], 104 generated_headers: ["framework-cppstream-protos"], 105 106 srcs: [ 107 "src/FdBuffer.cpp", 108 "src/Privacy.cpp", 109 "src/PrivacyFilter.cpp", 110 "src/Reporter.cpp", 111 "src/Section.cpp", 112 "src/Throttler.cpp", 113 "src/WorkDirectory.cpp", 114 "src/incidentd_util.cpp", 115 "src/proto_util.cpp", 116 "src/report_directory.cpp", 117 "src/**/*.proto", 118 ], 119 120 static_libs: [ 121 "libincidentcompanion", 122 "libplatformprotos-test", 123 ], 124 125 shared_libs: [ 126 "libbase", 127 "libbinder", 128 "libdebuggerd_client", 129 "libdumputils", 130 "libincidentpriv", 131 "liblog", 132 "libprotobuf-cpp-full", 133 "libprotoutil", 134 "libservices", 135 "libutils", 136 ], 137} 138 139// ============== 140// incidentd_test 141// ============== 142cc_test { 143 name: "incidentd_test", 144 145 defaults: [ 146 "incidentd_test_defaults", 147 ], 148 149 test_suites: ["device-tests"], 150 151 srcs: [ 152 "tests/**/*.cpp", 153 "tests/**/*.proto", 154 ], 155 156 data: ["testdata/**/*"], 157 158 static_libs: [ 159 "libgmock", 160 ], 161 162 target: { 163 android: { 164 proto: { 165 type: "full", 166 }, 167 }, 168 }, 169} 170 171genrule { 172 name: "incidentd_section_list", 173 tools: ["incident-section-gen"], 174 out: ["section_list.cpp"], 175 cmd: "$(location incident-section-gen) incidentd > $(out)", 176} 177 178cc_fuzz { 179 name: "incidentd_service_fuzzer", 180 defaults: [ 181 "service_fuzzer_defaults", 182 "fuzzer_disable_leaks", 183 "incidentd_test_defaults", 184 ], 185 186 fuzz_config: { 187 cc: [ 188 "yaochen@google.com", 189 "yanmin@google.com", 190 ], 191 triage_assignee: "waghpawan@google.com", 192 }, 193 194 srcs: [ 195 "fuzzers/IncidentServiceFuzzer.cpp", 196 "src/IncidentService.cpp", 197 "src/Broadcaster.cpp", 198 ":incidentd_section_list", 199 ], 200} 201