xref: /aosp_15_r20/frameworks/native/services/inputflinger/Android.bp (revision 38e8c45f13ce32b0dcecb25141ffecaf386fa17f)
1*38e8c45fSAndroid Build Coastguard Worker// Copyright (C) 2013 The Android Open Source Project
2*38e8c45fSAndroid Build Coastguard Worker//
3*38e8c45fSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*38e8c45fSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*38e8c45fSAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*38e8c45fSAndroid Build Coastguard Worker//
7*38e8c45fSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*38e8c45fSAndroid Build Coastguard Worker//
9*38e8c45fSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*38e8c45fSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*38e8c45fSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*38e8c45fSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*38e8c45fSAndroid Build Coastguard Worker// limitations under the License.
14*38e8c45fSAndroid Build Coastguard Worker
15*38e8c45fSAndroid Build Coastguard Worker// Default flags to be used throughout all libraries in inputflinger.
16*38e8c45fSAndroid Build Coastguard Workerpackage {
17*38e8c45fSAndroid Build Coastguard Worker    default_team: "trendy_team_input_framework",
18*38e8c45fSAndroid Build Coastguard Worker    // See: http://go/android-license-faq
19*38e8c45fSAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
20*38e8c45fSAndroid Build Coastguard Worker    // all of the 'license_kinds' from "frameworks_native_license"
21*38e8c45fSAndroid Build Coastguard Worker    // to get the below license kinds:
22*38e8c45fSAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
23*38e8c45fSAndroid Build Coastguard Worker    default_applicable_licenses: ["frameworks_native_license"],
24*38e8c45fSAndroid Build Coastguard Worker}
25*38e8c45fSAndroid Build Coastguard Worker
26*38e8c45fSAndroid Build Coastguard Workerinputflinger_tidy_checks = [
27*38e8c45fSAndroid Build Coastguard Worker    "android-*",
28*38e8c45fSAndroid Build Coastguard Worker]
29*38e8c45fSAndroid Build Coastguard Worker
30*38e8c45fSAndroid Build Coastguard Workercc_defaults {
31*38e8c45fSAndroid Build Coastguard Worker    name: "inputflinger_defaults",
32*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
33*38e8c45fSAndroid Build Coastguard Worker    cpp_std: "c++20",
34*38e8c45fSAndroid Build Coastguard Worker    cflags: [
35*38e8c45fSAndroid Build Coastguard Worker        "-Wall",
36*38e8c45fSAndroid Build Coastguard Worker        "-Wextra",
37*38e8c45fSAndroid Build Coastguard Worker        "-Werror",
38*38e8c45fSAndroid Build Coastguard Worker        "-Wno-unused-parameter",
39*38e8c45fSAndroid Build Coastguard Worker        "-Wthread-safety",
40*38e8c45fSAndroid Build Coastguard Worker        "-Wshadow",
41*38e8c45fSAndroid Build Coastguard Worker        "-Wshadow-field-in-constructor-modified",
42*38e8c45fSAndroid Build Coastguard Worker        "-Wshadow-uncaptured-local",
43*38e8c45fSAndroid Build Coastguard Worker        "-DANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION",
44*38e8c45fSAndroid Build Coastguard Worker    ],
45*38e8c45fSAndroid Build Coastguard Worker    sanitize: {
46*38e8c45fSAndroid Build Coastguard Worker        misc_undefined: [
47*38e8c45fSAndroid Build Coastguard Worker            "bounds",
48*38e8c45fSAndroid Build Coastguard Worker        ],
49*38e8c45fSAndroid Build Coastguard Worker    },
50*38e8c45fSAndroid Build Coastguard Worker    tidy: true,
51*38e8c45fSAndroid Build Coastguard Worker    tidy_checks: [
52*38e8c45fSAndroid Build Coastguard Worker        "-*", // Disable all checks not explicitly enabled for now
53*38e8c45fSAndroid Build Coastguard Worker    ] + inputflinger_tidy_checks,
54*38e8c45fSAndroid Build Coastguard Worker    tidy_checks_as_errors: inputflinger_tidy_checks,
55*38e8c45fSAndroid Build Coastguard Worker    target: {
56*38e8c45fSAndroid Build Coastguard Worker        host: {
57*38e8c45fSAndroid Build Coastguard Worker            sanitize: {
58*38e8c45fSAndroid Build Coastguard Worker                address: true,
59*38e8c45fSAndroid Build Coastguard Worker                diag: {
60*38e8c45fSAndroid Build Coastguard Worker                    cfi: true,
61*38e8c45fSAndroid Build Coastguard Worker                    integer_overflow: true,
62*38e8c45fSAndroid Build Coastguard Worker                    memtag_heap: true,
63*38e8c45fSAndroid Build Coastguard Worker                    undefined: true,
64*38e8c45fSAndroid Build Coastguard Worker                    misc_undefined: [
65*38e8c45fSAndroid Build Coastguard Worker                        "bounds",
66*38e8c45fSAndroid Build Coastguard Worker                        "all",
67*38e8c45fSAndroid Build Coastguard Worker                    ],
68*38e8c45fSAndroid Build Coastguard Worker                },
69*38e8c45fSAndroid Build Coastguard Worker            },
70*38e8c45fSAndroid Build Coastguard Worker            include_dirs: [
71*38e8c45fSAndroid Build Coastguard Worker                "bionic/libc/kernel/android/uapi/",
72*38e8c45fSAndroid Build Coastguard Worker                "bionic/libc/kernel/uapi",
73*38e8c45fSAndroid Build Coastguard Worker            ],
74*38e8c45fSAndroid Build Coastguard Worker            cflags: [
75*38e8c45fSAndroid Build Coastguard Worker                "-D__ANDROID_HOST__",
76*38e8c45fSAndroid Build Coastguard Worker            ],
77*38e8c45fSAndroid Build Coastguard Worker        },
78*38e8c45fSAndroid Build Coastguard Worker    },
79*38e8c45fSAndroid Build Coastguard Worker}
80*38e8c45fSAndroid Build Coastguard Worker
81*38e8c45fSAndroid Build Coastguard Worker/////////////////////////////////////////////////
82*38e8c45fSAndroid Build Coastguard Worker// libinputflinger
83*38e8c45fSAndroid Build Coastguard Worker/////////////////////////////////////////////////
84*38e8c45fSAndroid Build Coastguard Worker
85*38e8c45fSAndroid Build Coastguard Workerfilegroup {
86*38e8c45fSAndroid Build Coastguard Worker    name: "libinputflinger_sources",
87*38e8c45fSAndroid Build Coastguard Worker    srcs: [
88*38e8c45fSAndroid Build Coastguard Worker        "InputCommonConverter.cpp",
89*38e8c45fSAndroid Build Coastguard Worker        "InputDeviceMetricsCollector.cpp",
90*38e8c45fSAndroid Build Coastguard Worker        "InputFilter.cpp",
91*38e8c45fSAndroid Build Coastguard Worker        "InputFilterCallbacks.cpp",
92*38e8c45fSAndroid Build Coastguard Worker        "InputProcessor.cpp",
93*38e8c45fSAndroid Build Coastguard Worker        "PointerChoreographer.cpp",
94*38e8c45fSAndroid Build Coastguard Worker        "PreferStylusOverTouchBlocker.cpp",
95*38e8c45fSAndroid Build Coastguard Worker        "UnwantedInteractionBlocker.cpp",
96*38e8c45fSAndroid Build Coastguard Worker    ],
97*38e8c45fSAndroid Build Coastguard Worker}
98*38e8c45fSAndroid Build Coastguard Worker
99*38e8c45fSAndroid Build Coastguard Workercc_defaults {
100*38e8c45fSAndroid Build Coastguard Worker    name: "libinputflinger_defaults",
101*38e8c45fSAndroid Build Coastguard Worker    srcs: [":libinputflinger_sources"],
102*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
103*38e8c45fSAndroid Build Coastguard Worker        "android.hardware.input.processor-V1-ndk",
104*38e8c45fSAndroid Build Coastguard Worker        "com.android.server.inputflinger-ndk",
105*38e8c45fSAndroid Build Coastguard Worker        "libbase",
106*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
107*38e8c45fSAndroid Build Coastguard Worker        "libbinder_ndk",
108*38e8c45fSAndroid Build Coastguard Worker        "libchrome",
109*38e8c45fSAndroid Build Coastguard Worker        "libcrypto",
110*38e8c45fSAndroid Build Coastguard Worker        "libcutils",
111*38e8c45fSAndroid Build Coastguard Worker        "libhidlbase",
112*38e8c45fSAndroid Build Coastguard Worker        "libinput",
113*38e8c45fSAndroid Build Coastguard Worker        "libkll",
114*38e8c45fSAndroid Build Coastguard Worker        "liblog",
115*38e8c45fSAndroid Build Coastguard Worker        "libprotobuf-cpp-lite",
116*38e8c45fSAndroid Build Coastguard Worker        "libstatslog",
117*38e8c45fSAndroid Build Coastguard Worker        "libutils",
118*38e8c45fSAndroid Build Coastguard Worker        "libstatspull",
119*38e8c45fSAndroid Build Coastguard Worker        "libstatssocket",
120*38e8c45fSAndroid Build Coastguard Worker        "packagemanager_aidl-cpp",
121*38e8c45fSAndroid Build Coastguard Worker        "server_configurable_flags",
122*38e8c45fSAndroid Build Coastguard Worker    ],
123*38e8c45fSAndroid Build Coastguard Worker    static_libs: [
124*38e8c45fSAndroid Build Coastguard Worker        "libattestation",
125*38e8c45fSAndroid Build Coastguard Worker        "libperfetto_client_experimental",
126*38e8c45fSAndroid Build Coastguard Worker        "libpalmrejection",
127*38e8c45fSAndroid Build Coastguard Worker        "libui-types",
128*38e8c45fSAndroid Build Coastguard Worker    ],
129*38e8c45fSAndroid Build Coastguard Worker    generated_headers: [
130*38e8c45fSAndroid Build Coastguard Worker        "cxx-bridge-header",
131*38e8c45fSAndroid Build Coastguard Worker        "inputflinger_rs_bootstrap_bridge_header",
132*38e8c45fSAndroid Build Coastguard Worker    ],
133*38e8c45fSAndroid Build Coastguard Worker    header_libs: ["inputflinger_rs_bootstrap_cxx_headers"],
134*38e8c45fSAndroid Build Coastguard Worker    generated_sources: ["inputflinger_rs_bootstrap_bridge_code"],
135*38e8c45fSAndroid Build Coastguard Worker    whole_static_libs: ["libinputflinger_rs"],
136*38e8c45fSAndroid Build Coastguard Worker    export_shared_lib_headers: ["com.android.server.inputflinger-ndk"],
137*38e8c45fSAndroid Build Coastguard Worker    target: {
138*38e8c45fSAndroid Build Coastguard Worker        android: {
139*38e8c45fSAndroid Build Coastguard Worker            shared_libs: [
140*38e8c45fSAndroid Build Coastguard Worker                "libgui",
141*38e8c45fSAndroid Build Coastguard Worker            ],
142*38e8c45fSAndroid Build Coastguard Worker        },
143*38e8c45fSAndroid Build Coastguard Worker    },
144*38e8c45fSAndroid Build Coastguard Worker}
145*38e8c45fSAndroid Build Coastguard Worker
146*38e8c45fSAndroid Build Coastguard Workercc_library_shared {
147*38e8c45fSAndroid Build Coastguard Worker    name: "libinputflinger",
148*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
149*38e8c45fSAndroid Build Coastguard Worker    defaults: [
150*38e8c45fSAndroid Build Coastguard Worker        "inputflinger_defaults",
151*38e8c45fSAndroid Build Coastguard Worker        "libinputflinger_defaults",
152*38e8c45fSAndroid Build Coastguard Worker    ],
153*38e8c45fSAndroid Build Coastguard Worker    srcs: [
154*38e8c45fSAndroid Build Coastguard Worker        "InputManager.cpp",
155*38e8c45fSAndroid Build Coastguard Worker        // other sources are added via "defaults"
156*38e8c45fSAndroid Build Coastguard Worker    ],
157*38e8c45fSAndroid Build Coastguard Worker    cflags: [
158*38e8c45fSAndroid Build Coastguard Worker        // TODO(b/23084678): Move inputflinger to its own process and mark it hidden
159*38e8c45fSAndroid Build Coastguard Worker        //-fvisibility=hidden
160*38e8c45fSAndroid Build Coastguard Worker    ],
161*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
162*38e8c45fSAndroid Build Coastguard Worker        // This should consist only of dependencies from inputflinger. Other dependencies should be
163*38e8c45fSAndroid Build Coastguard Worker        // in cc_defaults so that they are included in the tests.
164*38e8c45fSAndroid Build Coastguard Worker        "libinputflinger_base",
165*38e8c45fSAndroid Build Coastguard Worker        "libinputreader",
166*38e8c45fSAndroid Build Coastguard Worker        "libinputreporter",
167*38e8c45fSAndroid Build Coastguard Worker        "libPlatformProperties",
168*38e8c45fSAndroid Build Coastguard Worker    ],
169*38e8c45fSAndroid Build Coastguard Worker    static_libs: [
170*38e8c45fSAndroid Build Coastguard Worker        "libinputdispatcher",
171*38e8c45fSAndroid Build Coastguard Worker    ],
172*38e8c45fSAndroid Build Coastguard Worker    export_static_lib_headers: [
173*38e8c45fSAndroid Build Coastguard Worker        "libinputdispatcher",
174*38e8c45fSAndroid Build Coastguard Worker    ],
175*38e8c45fSAndroid Build Coastguard Worker    export_shared_lib_headers: [
176*38e8c45fSAndroid Build Coastguard Worker        "libinputflinger_base",
177*38e8c45fSAndroid Build Coastguard Worker    ],
178*38e8c45fSAndroid Build Coastguard Worker}
179*38e8c45fSAndroid Build Coastguard Worker
180*38e8c45fSAndroid Build Coastguard Worker/////////////////////////////////////////////////
181*38e8c45fSAndroid Build Coastguard Worker// libinputflinger_base
182*38e8c45fSAndroid Build Coastguard Worker/////////////////////////////////////////////////
183*38e8c45fSAndroid Build Coastguard Worker
184*38e8c45fSAndroid Build Coastguard Workercc_library_headers {
185*38e8c45fSAndroid Build Coastguard Worker    name: "libinputflinger_headers",
186*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
187*38e8c45fSAndroid Build Coastguard Worker    export_include_dirs: [
188*38e8c45fSAndroid Build Coastguard Worker        "include",
189*38e8c45fSAndroid Build Coastguard Worker        ".",
190*38e8c45fSAndroid Build Coastguard Worker    ],
191*38e8c45fSAndroid Build Coastguard Worker    header_libs: [
192*38e8c45fSAndroid Build Coastguard Worker        "libchrome-gestures_headers",
193*38e8c45fSAndroid Build Coastguard Worker    ],
194*38e8c45fSAndroid Build Coastguard Worker    export_header_lib_headers: [
195*38e8c45fSAndroid Build Coastguard Worker        "libchrome-gestures_headers",
196*38e8c45fSAndroid Build Coastguard Worker    ],
197*38e8c45fSAndroid Build Coastguard Worker}
198*38e8c45fSAndroid Build Coastguard Worker
199*38e8c45fSAndroid Build Coastguard Workerfilegroup {
200*38e8c45fSAndroid Build Coastguard Worker    name: "libinputflinger_base_sources",
201*38e8c45fSAndroid Build Coastguard Worker    srcs: [
202*38e8c45fSAndroid Build Coastguard Worker        "InputDeviceMetricsSource.cpp",
203*38e8c45fSAndroid Build Coastguard Worker        "InputListener.cpp",
204*38e8c45fSAndroid Build Coastguard Worker        "InputReaderBase.cpp",
205*38e8c45fSAndroid Build Coastguard Worker        "InputThread.cpp",
206*38e8c45fSAndroid Build Coastguard Worker        "NotifyArgs.cpp",
207*38e8c45fSAndroid Build Coastguard Worker        "VibrationElement.cpp",
208*38e8c45fSAndroid Build Coastguard Worker    ],
209*38e8c45fSAndroid Build Coastguard Worker}
210*38e8c45fSAndroid Build Coastguard Worker
211*38e8c45fSAndroid Build Coastguard Workercc_defaults {
212*38e8c45fSAndroid Build Coastguard Worker    name: "libinputflinger_base_defaults",
213*38e8c45fSAndroid Build Coastguard Worker    srcs: [":libinputflinger_base_sources"],
214*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
215*38e8c45fSAndroid Build Coastguard Worker        "libbase",
216*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
217*38e8c45fSAndroid Build Coastguard Worker        "libcutils",
218*38e8c45fSAndroid Build Coastguard Worker        "libinput",
219*38e8c45fSAndroid Build Coastguard Worker        "liblog",
220*38e8c45fSAndroid Build Coastguard Worker        "libprocessgroup",
221*38e8c45fSAndroid Build Coastguard Worker        "libstatslog",
222*38e8c45fSAndroid Build Coastguard Worker        "libutils",
223*38e8c45fSAndroid Build Coastguard Worker    ],
224*38e8c45fSAndroid Build Coastguard Worker    header_libs: [
225*38e8c45fSAndroid Build Coastguard Worker        "libinputflinger_headers",
226*38e8c45fSAndroid Build Coastguard Worker    ],
227*38e8c45fSAndroid Build Coastguard Worker}
228*38e8c45fSAndroid Build Coastguard Worker
229*38e8c45fSAndroid Build Coastguard Workercc_library_shared {
230*38e8c45fSAndroid Build Coastguard Worker    name: "libinputflinger_base",
231*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
232*38e8c45fSAndroid Build Coastguard Worker    defaults: [
233*38e8c45fSAndroid Build Coastguard Worker        "inputflinger_defaults",
234*38e8c45fSAndroid Build Coastguard Worker        "libinputflinger_base_defaults",
235*38e8c45fSAndroid Build Coastguard Worker    ],
236*38e8c45fSAndroid Build Coastguard Worker    export_header_lib_headers: [
237*38e8c45fSAndroid Build Coastguard Worker        "libinputflinger_headers",
238*38e8c45fSAndroid Build Coastguard Worker    ],
239*38e8c45fSAndroid Build Coastguard Worker}
240*38e8c45fSAndroid Build Coastguard Worker
241*38e8c45fSAndroid Build Coastguard Worker// This target will build everything 'input-related'. This could be useful for
242*38e8c45fSAndroid Build Coastguard Worker// large refactorings of the input code. This is similar to 'm checkbuild', but
243*38e8c45fSAndroid Build Coastguard Worker// just for input code.
244*38e8c45fSAndroid Build Coastguard Worker// Use 'm checkinput' to build, and then (optionally) use 'm installclean' to
245*38e8c45fSAndroid Build Coastguard Worker// remove any of the installed artifacts that you may not want on your actual
246*38e8c45fSAndroid Build Coastguard Worker// build.
247*38e8c45fSAndroid Build Coastguard Workerphony {
248*38e8c45fSAndroid Build Coastguard Worker    name: "checkinput",
249*38e8c45fSAndroid Build Coastguard Worker    required: [
250*38e8c45fSAndroid Build Coastguard Worker        // native targets
251*38e8c45fSAndroid Build Coastguard Worker        "libgui_test",
252*38e8c45fSAndroid Build Coastguard Worker        "libinput",
253*38e8c45fSAndroid Build Coastguard Worker        "libinputreader_static",
254*38e8c45fSAndroid Build Coastguard Worker        "libinputflinger",
255*38e8c45fSAndroid Build Coastguard Worker        "inputflinger_tests",
256*38e8c45fSAndroid Build Coastguard Worker        "inputflinger_benchmarks",
257*38e8c45fSAndroid Build Coastguard Worker        "libinput_tests",
258*38e8c45fSAndroid Build Coastguard Worker        "libpalmrejection_test",
259*38e8c45fSAndroid Build Coastguard Worker        "libandroid_runtime",
260*38e8c45fSAndroid Build Coastguard Worker        "libinputservice_test",
261*38e8c45fSAndroid Build Coastguard Worker        "Bug-115739809",
262*38e8c45fSAndroid Build Coastguard Worker        "StructLayout_test",
263*38e8c45fSAndroid Build Coastguard Worker
264*38e8c45fSAndroid Build Coastguard Worker        // jni
265*38e8c45fSAndroid Build Coastguard Worker        "libservices.core",
266*38e8c45fSAndroid Build Coastguard Worker
267*38e8c45fSAndroid Build Coastguard Worker        // rust targets
268*38e8c45fSAndroid Build Coastguard Worker        "libinput_rust_test",
269*38e8c45fSAndroid Build Coastguard Worker
270*38e8c45fSAndroid Build Coastguard Worker        // native fuzzers
271*38e8c45fSAndroid Build Coastguard Worker        "inputflinger_latencytracker_fuzzer",
272*38e8c45fSAndroid Build Coastguard Worker        "inputflinger_cursor_input_fuzzer",
273*38e8c45fSAndroid Build Coastguard Worker        "inputflinger_keyboard_input_fuzzer",
274*38e8c45fSAndroid Build Coastguard Worker        "inputflinger_multitouch_input_fuzzer",
275*38e8c45fSAndroid Build Coastguard Worker        "inputflinger_switch_input_fuzzer",
276*38e8c45fSAndroid Build Coastguard Worker        "inputflinger_touchpad_input_fuzzer",
277*38e8c45fSAndroid Build Coastguard Worker        "inputflinger_input_reader_fuzzer",
278*38e8c45fSAndroid Build Coastguard Worker        "inputflinger_blocking_queue_fuzzer",
279*38e8c45fSAndroid Build Coastguard Worker        "inputflinger_input_classifier_fuzzer",
280*38e8c45fSAndroid Build Coastguard Worker        "inputflinger_input_dispatcher_fuzzer",
281*38e8c45fSAndroid Build Coastguard Worker
282*38e8c45fSAndroid Build Coastguard Worker        // Java/Kotlin targets
283*38e8c45fSAndroid Build Coastguard Worker        "CtsWindowManagerDeviceWindow",
284*38e8c45fSAndroid Build Coastguard Worker        "InputTests",
285*38e8c45fSAndroid Build Coastguard Worker        "CtsHardwareTestCases",
286*38e8c45fSAndroid Build Coastguard Worker        "CtsInputTestCases",
287*38e8c45fSAndroid Build Coastguard Worker        "CtsViewTestCases",
288*38e8c45fSAndroid Build Coastguard Worker        "CtsWidgetTestCases",
289*38e8c45fSAndroid Build Coastguard Worker        "FrameworksCoreTests",
290*38e8c45fSAndroid Build Coastguard Worker        "FrameworksServicesTests",
291*38e8c45fSAndroid Build Coastguard Worker        "CtsSecurityTestCases",
292*38e8c45fSAndroid Build Coastguard Worker        "CtsSecurityBulletinHostTestCases",
293*38e8c45fSAndroid Build Coastguard Worker        "monkey_test",
294*38e8c45fSAndroid Build Coastguard Worker    ],
295*38e8c45fSAndroid Build Coastguard Worker}
296