• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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