blob: 74510374e861117fc96e040cb21e5b95993f87c4 [file] [log] [blame]
Colin Cross45a1b9c2017-04-19 16:56:46 -07001// Copyright (C) 2013 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
Prabir Pradhan9244aea2020-02-05 20:31:40 -080015// Default flags to be used throughout all libraries in inputflinger.
Bob Badour3306e492021-02-25 15:35:37 -080016package {
17 // See: http://go/android-license-faq
18 // A large-scale-change added 'default_applicable_licenses' to import
19 // all of the 'license_kinds' from "frameworks_native_license"
20 // to get the below license kinds:
21 // SPDX-license-identifier-Apache-2.0
22 default_applicable_licenses: ["frameworks_native_license"],
23}
24
Michael Wright8e9a8562022-02-09 13:44:29 +000025inputflinger_tidy_checks = [
26 "android-*",
27]
28
Siarhei Vishniakou61291d42019-02-11 18:13:20 -080029cc_defaults {
30 name: "inputflinger_defaults",
Siarhei Vishniakou4c155eb2023-06-30 11:47:12 -070031 host_supported: true,
Siarhei Vishniakouf47c339e2021-12-30 11:22:26 -080032 cpp_std: "c++20",
Siarhei Vishniakou61291d42019-02-11 18:13:20 -080033 cflags: [
34 "-Wall",
35 "-Wextra",
36 "-Werror",
37 "-Wno-unused-parameter",
38 "-Wthread-safety",
Siarhei Vishniakoub4d960d2019-10-03 15:38:44 -050039 "-Wshadow",
Siarhei Vishniakou3cab9b62020-08-05 11:45:47 -050040 "-Wshadow-field-in-constructor-modified",
41 "-Wshadow-uncaptured-local",
Siarhei Vishniakouaed7ad02022-08-03 15:04:33 -070042 "-DANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION",
Siarhei Vishniakou61291d42019-02-11 18:13:20 -080043 ],
Siarhei Vishniakoud549b252020-08-11 11:25:26 -050044 sanitize: {
Siarhei Vishniakou31977182022-09-30 08:51:23 -070045 misc_undefined: [
46 "bounds",
47 ],
Siarhei Vishniakoud549b252020-08-11 11:25:26 -050048 },
Michael Wright8e9a8562022-02-09 13:44:29 +000049 tidy: true,
50 tidy_checks: [
51 "-*", // Disable all checks not explicitly enabled for now
52 ] + inputflinger_tidy_checks,
53 tidy_checks_as_errors: inputflinger_tidy_checks,
Siarhei Vishniakou4c155eb2023-06-30 11:47:12 -070054 target: {
55 host: {
56 sanitize: {
57 address: true,
58 },
59 include_dirs: [
60 "bionic/libc/kernel/android/uapi/",
61 "bionic/libc/kernel/uapi",
62 ],
63 cflags: [
64 "-D__ANDROID_HOST__",
65 ],
66 },
67 },
Siarhei Vishniakou61291d42019-02-11 18:13:20 -080068}
69
Prabir Pradhan9244aea2020-02-05 20:31:40 -080070/////////////////////////////////////////////////
71// libinputflinger
72/////////////////////////////////////////////////
Colin Cross45a1b9c2017-04-19 16:56:46 -070073
Prabir Pradhan9244aea2020-02-05 20:31:40 -080074filegroup {
75 name: "libinputflinger_sources",
Colin Cross45a1b9c2017-04-19 16:56:46 -070076 srcs: [
Siarhei Vishniakou34d6fef2022-02-01 19:03:45 -080077 "InputCommonConverter.cpp",
Prabir Pradhanaddf8e92023-04-06 00:28:48 +000078 "InputDeviceMetricsCollector.cpp",
Siarhei Vishniakou31977182022-09-30 08:51:23 -070079 "InputProcessor.cpp",
Prabir Pradhanb56e92c2023-06-09 23:40:37 +000080 "PointerChoreographer.cpp",
Siarhei Vishniakoua3c8e512022-02-10 19:46:34 -080081 "PreferStylusOverTouchBlocker.cpp",
Siarhei Vishniakouba0a8752021-09-14 14:43:25 -070082 "UnwantedInteractionBlocker.cpp",
Colin Cross45a1b9c2017-04-19 16:56:46 -070083 ],
Prabir Pradhan9244aea2020-02-05 20:31:40 -080084}
Colin Cross45a1b9c2017-04-19 16:56:46 -070085
Prabir Pradhan9244aea2020-02-05 20:31:40 -080086cc_defaults {
87 name: "libinputflinger_defaults",
88 srcs: [":libinputflinger_sources"],
Colin Cross45a1b9c2017-04-19 16:56:46 -070089 shared_libs: [
Harry Cuttsd1f18fa2022-12-08 14:28:02 +000090 "android.hardware.input.processor-V1-ndk",
Prabir Pradhan44e6e832023-06-06 00:03:25 +000091 "com.android.server.inputflinger-ndk",
Siarhei Vishniakou61291d42019-02-11 18:13:20 -080092 "libbase",
Colin Cross45a1b9c2017-04-19 16:56:46 -070093 "libbinder",
Siarhei Vishniakou34d6fef2022-02-01 19:03:45 -080094 "libbinder_ndk",
Siarhei Vishniakouba0a8752021-09-14 14:43:25 -070095 "libchrome",
Gang Wang342c9272020-01-13 13:15:04 -050096 "libcrypto",
Colin Cross45a1b9c2017-04-19 16:56:46 -070097 "libcutils",
Siarhei Vishniakou473174e2017-12-27 16:44:42 -080098 "libhidlbase",
Prabir Pradhan89f71192023-06-15 22:14:15 +000099 "libinput",
Siarhei Vishniakou99b9d382021-04-01 08:03:41 +0000100 "libkll",
Colin Cross45a1b9c2017-04-19 16:56:46 -0700101 "liblog",
Siarhei Vishniakou99b9d382021-04-01 08:03:41 +0000102 "libprotobuf-cpp-lite",
Siarhei Vishniakoude4bf152019-08-16 11:12:52 -0500103 "libstatslog",
Colin Cross45a1b9c2017-04-19 16:56:46 -0700104 "libutils",
Siarhei Vishniakoua04181f2021-03-26 05:56:49 +0000105 "server_configurable_flags",
Colin Cross45a1b9c2017-04-19 16:56:46 -0700106 ],
chaviw09c8d2d2020-08-24 15:48:26 -0700107 static_libs: [
108 "libattestation",
Siarhei Vishniakouba0a8752021-09-14 14:43:25 -0700109 "libpalmrejection",
Siarhei Vishniakou862ae212022-09-28 15:17:28 -0700110 "libui-types",
chaviw09c8d2d2020-08-24 15:48:26 -0700111 ],
Prabir Pradhan44e6e832023-06-06 00:03:25 +0000112 generated_headers: [
113 "cxx-bridge-header",
114 "inputflinger_rs_bootstrap_bridge_header",
115 ],
116 header_libs: ["inputflinger_rs_bootstrap_cxx_headers"],
117 generated_sources: ["inputflinger_rs_bootstrap_bridge_code"],
118 whole_static_libs: ["libinputflinger_rs"],
119 export_shared_lib_headers: ["com.android.server.inputflinger-ndk"],
Siarhei Vishniakou31977182022-09-30 08:51:23 -0700120 target: {
121 android: {
122 shared_libs: [
123 "libgui",
Siarhei Vishniakou31977182022-09-30 08:51:23 -0700124 "libstatspull",
125 "libstatssocket",
126 ],
127 },
128 host: {
129 static_libs: [
Siarhei Vishniakou31977182022-09-30 08:51:23 -0700130 "libstatspull",
131 "libstatssocket",
132 ],
133 },
134 },
Prabir Pradhan9244aea2020-02-05 20:31:40 -0800135}
Colin Cross45a1b9c2017-04-19 16:56:46 -0700136
Prabir Pradhan9244aea2020-02-05 20:31:40 -0800137cc_library_shared {
138 name: "libinputflinger",
Siarhei Vishniakoucac84272023-06-28 14:43:25 -0700139 host_supported: true,
Prabir Pradhan9244aea2020-02-05 20:31:40 -0800140 defaults: [
141 "inputflinger_defaults",
142 "libinputflinger_defaults",
Garfield Tane84e6f92019-08-29 17:28:41 -0700143 ],
Siarhei Vishniakou45b703e2022-11-18 15:33:27 -0800144 srcs: [
145 "InputManager.cpp",
146 // other sources are added via "defaults"
147 ],
Colin Cross45a1b9c2017-04-19 16:56:46 -0700148 cflags: [
Siarhei Vishniakou473174e2017-12-27 16:44:42 -0800149 // TODO(b/23084678): Move inputflinger to its own process and mark it hidden
Colin Cross45a1b9c2017-04-19 16:56:46 -0700150 //-fvisibility=hidden
151 ],
Prabir Pradhan9244aea2020-02-05 20:31:40 -0800152 shared_libs: [
153 // This should consist only of dependencies from inputflinger. Other dependencies should be
154 // in cc_defaults so that they are included in the tests.
155 "libinputflinger_base",
Prabir Pradhan9244aea2020-02-05 20:31:40 -0800156 "libinputreader",
Siarhei Vishniakou31977182022-09-30 08:51:23 -0700157 "libinputreporter",
Prabir Pradhanaddf8e92023-04-06 00:28:48 +0000158 "libPlatformProperties",
Prabir Pradhan9244aea2020-02-05 20:31:40 -0800159 ],
160 static_libs: [
161 "libinputdispatcher",
162 ],
163 export_static_lib_headers: [
164 "libinputdispatcher",
165 ],
Prabir Pradhan29c95332018-11-14 20:14:11 -0800166 export_include_dirs: [
167 ".",
168 "include",
169 ],
Prabir Pradhan29c95332018-11-14 20:14:11 -0800170}
171
Prabir Pradhan9244aea2020-02-05 20:31:40 -0800172/////////////////////////////////////////////////
173// libinputflinger_base
174/////////////////////////////////////////////////
175
Prabir Pradhan29c95332018-11-14 20:14:11 -0800176cc_library_headers {
Siarhei Vishniakou61291d42019-02-11 18:13:20 -0800177 name: "libinputflinger_headers",
Siarhei Vishniakou31977182022-09-30 08:51:23 -0700178 host_supported: true,
Siarhei Vishniakou61291d42019-02-11 18:13:20 -0800179 export_include_dirs: ["include"],
Prabir Pradhan29c95332018-11-14 20:14:11 -0800180}
181
Prabir Pradhan9244aea2020-02-05 20:31:40 -0800182filegroup {
183 name: "libinputflinger_base_sources",
Prabir Pradhan29c95332018-11-14 20:14:11 -0800184 srcs: [
185 "InputListener.cpp",
186 "InputReaderBase.cpp",
Prabir Pradhan5a57cff2019-10-31 18:40:33 -0700187 "InputThread.cpp",
Siarhei Vishniakou78513032022-09-15 18:42:05 -0700188 "NotifyArgs.cpp",
Prabir Pradhan8b89c2f2021-07-29 16:30:14 +0000189 "VibrationElement.cpp",
Prabir Pradhan29c95332018-11-14 20:14:11 -0800190 ],
Prabir Pradhan9244aea2020-02-05 20:31:40 -0800191}
Prabir Pradhan29c95332018-11-14 20:14:11 -0800192
Prabir Pradhan9244aea2020-02-05 20:31:40 -0800193cc_defaults {
194 name: "libinputflinger_base_defaults",
195 srcs: [":libinputflinger_base_sources"],
Prabir Pradhan29c95332018-11-14 20:14:11 -0800196 shared_libs: [
197 "libbase",
Zim23457d02022-08-17 12:57:41 +0100198 "libbinder",
Garfield Tanff1f1bb2020-01-28 13:24:04 -0800199 "libcutils",
Prabir Pradhan89f71192023-06-15 22:14:15 +0000200 "libinput",
Prabir Pradhan29c95332018-11-14 20:14:11 -0800201 "liblog",
202 "libutils",
203 ],
Prabir Pradhan29c95332018-11-14 20:14:11 -0800204 header_libs: [
205 "libinputflinger_headers",
206 ],
Colin Cross45a1b9c2017-04-19 16:56:46 -0700207}
208
Prabir Pradhan9244aea2020-02-05 20:31:40 -0800209cc_library_shared {
210 name: "libinputflinger_base",
Siarhei Vishniakou31977182022-09-30 08:51:23 -0700211 host_supported: true,
Prabir Pradhan9244aea2020-02-05 20:31:40 -0800212 defaults: [
213 "inputflinger_defaults",
214 "libinputflinger_base_defaults",
215 ],
216 export_header_lib_headers: [
217 "libinputflinger_headers",
218 ],
219}
Siarhei Vishniakouce555312022-07-21 17:52:02 -0700220
221// This target will build everything 'input-related'. This could be useful for
222// large refactorings of the input code. This is similar to 'm checkbuild', but
223// just for input code.
224// Use 'm checkinput' to build, and then (optionally) use 'm installclean' to
225// remove any of the installed artifacts that you may not want on your actual
226// build.
227phony {
228 name: "checkinput",
229 required: [
230 // native targets
Siarhei Vishniakou63b63612023-04-12 11:00:23 -0700231 "libgui_test",
Siarhei Vishniakouce555312022-07-21 17:52:02 -0700232 "libinput",
Siarhei Vishniakou4c155eb2023-06-30 11:47:12 -0700233 "libinputreader_static",
Siarhei Vishniakouce555312022-07-21 17:52:02 -0700234 "libinputflinger",
235 "inputflinger_tests",
236 "inputflinger_benchmarks",
237 "libinput_tests",
238 "libpalmrejection_test",
239 "libandroid_runtime",
240 "libinputservice_test",
241 "Bug-115739809",
242 "StructLayout_test",
Siarhei Vishniakou2a916c42023-04-17 10:37:05 -0700243 // currently unused, but still must build correctly
244 "inputflinger",
245 "libinputflingerhost",
Siarhei Vishniakou007713d2022-09-16 14:40:11 -0700246
Siarhei Vishniakou5c02a712023-05-15 15:45:02 -0700247 // rust targets
248 "libinput_rust_test",
249
Siarhei Vishniakou007713d2022-09-16 14:40:11 -0700250 // native fuzzers
Siarhei Vishniakou400294a2022-08-03 17:58:57 -0700251 "inputflinger_latencytracker_fuzzer",
Siarhei Vishniakou007713d2022-09-16 14:40:11 -0700252 "inputflinger_cursor_input_fuzzer",
253 "inputflinger_keyboard_input_fuzzer",
254 "inputflinger_multitouch_input_fuzzer",
255 "inputflinger_switch_input_fuzzer",
Harry Cuttsccb75e82023-06-23 14:08:06 +0000256 "inputflinger_touchpad_input_fuzzer",
Siarhei Vishniakou007713d2022-09-16 14:40:11 -0700257 "inputflinger_input_reader_fuzzer",
258 "inputflinger_blocking_queue_fuzzer",
259 "inputflinger_input_classifier_fuzzer",
Siarhei Vishniakouce555312022-07-21 17:52:02 -0700260
261 // Java/Kotlin targets
Nataniel Borges45f243d2023-07-25 14:50:20 +0000262 "CtsWindowManagerDeviceWindow",
Siarhei Vishniakouce555312022-07-21 17:52:02 -0700263 "InputTests",
264 "CtsHardwareTestCases",
265 "CtsInputTestCases",
266 "CtsViewTestCases",
267 "CtsWidgetTestCases",
268 "FrameworksCoreTests",
269 "FrameworksServicesTests",
270 "CtsSecurityTestCases",
271 "CtsSecurityBulletinHostTestCases",
272 ],
273}