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