| // Copyright (C) 2013 The Android Open Source Project |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // Default flags to be used throughout all libraries in inputflinger. |
| package { |
| // See: http://go/android-license-faq |
| // A large-scale-change added 'default_applicable_licenses' to import |
| // all of the 'license_kinds' from "frameworks_native_license" |
| // to get the below license kinds: |
| // SPDX-license-identifier-Apache-2.0 |
| default_applicable_licenses: ["frameworks_native_license"], |
| } |
| |
| inputflinger_tidy_checks = [ |
| "android-*", |
| ] |
| |
| cc_defaults { |
| name: "inputflinger_defaults", |
| host_supported: true, |
| cpp_std: "c++20", |
| cflags: [ |
| "-Wall", |
| "-Wextra", |
| "-Werror", |
| "-Wno-unused-parameter", |
| "-Wthread-safety", |
| "-Wshadow", |
| "-Wshadow-field-in-constructor-modified", |
| "-Wshadow-uncaptured-local", |
| "-DANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION", |
| ], |
| sanitize: { |
| misc_undefined: [ |
| "bounds", |
| ], |
| }, |
| tidy: true, |
| tidy_checks: [ |
| "-*", // Disable all checks not explicitly enabled for now |
| ] + inputflinger_tidy_checks, |
| tidy_checks_as_errors: inputflinger_tidy_checks, |
| target: { |
| host: { |
| sanitize: { |
| address: true, |
| }, |
| include_dirs: [ |
| "bionic/libc/kernel/android/uapi/", |
| "bionic/libc/kernel/uapi", |
| ], |
| cflags: [ |
| "-D__ANDROID_HOST__", |
| ], |
| }, |
| }, |
| } |
| |
| ///////////////////////////////////////////////// |
| // libinputflinger |
| ///////////////////////////////////////////////// |
| |
| filegroup { |
| name: "libinputflinger_sources", |
| srcs: [ |
| "InputCommonConverter.cpp", |
| "InputDeviceMetricsCollector.cpp", |
| "InputFilter.cpp", |
| "InputProcessor.cpp", |
| "PointerChoreographer.cpp", |
| "PreferStylusOverTouchBlocker.cpp", |
| "UnwantedInteractionBlocker.cpp", |
| ], |
| } |
| |
| cc_defaults { |
| name: "libinputflinger_defaults", |
| srcs: [":libinputflinger_sources"], |
| shared_libs: [ |
| "android.hardware.input.processor-V1-ndk", |
| "com.android.server.inputflinger-ndk", |
| "libbase", |
| "libbinder", |
| "libbinder_ndk", |
| "libchrome", |
| "libcrypto", |
| "libcutils", |
| "libhidlbase", |
| "libinput", |
| "libkll", |
| "liblog", |
| "libprotobuf-cpp-lite", |
| "libstatslog", |
| "libutils", |
| "server_configurable_flags", |
| ], |
| static_libs: [ |
| "libattestation", |
| "libpalmrejection", |
| "libui-types", |
| ], |
| generated_headers: [ |
| "cxx-bridge-header", |
| "inputflinger_rs_bootstrap_bridge_header", |
| ], |
| header_libs: ["inputflinger_rs_bootstrap_cxx_headers"], |
| generated_sources: ["inputflinger_rs_bootstrap_bridge_code"], |
| whole_static_libs: ["libinputflinger_rs"], |
| export_shared_lib_headers: ["com.android.server.inputflinger-ndk"], |
| target: { |
| android: { |
| shared_libs: [ |
| "libgui", |
| "libstatspull", |
| "libstatssocket", |
| ], |
| }, |
| host: { |
| static_libs: [ |
| "libstatspull", |
| "libstatssocket", |
| ], |
| }, |
| }, |
| } |
| |
| cc_library_shared { |
| name: "libinputflinger", |
| host_supported: true, |
| defaults: [ |
| "inputflinger_defaults", |
| "libinputflinger_defaults", |
| ], |
| srcs: [ |
| "InputManager.cpp", |
| // other sources are added via "defaults" |
| ], |
| cflags: [ |
| // TODO(b/23084678): Move inputflinger to its own process and mark it hidden |
| //-fvisibility=hidden |
| ], |
| shared_libs: [ |
| // This should consist only of dependencies from inputflinger. Other dependencies should be |
| // in cc_defaults so that they are included in the tests. |
| "libinputflinger_base", |
| "libinputreader", |
| "libinputreporter", |
| "libPlatformProperties", |
| ], |
| static_libs: [ |
| "libinputdispatcher", |
| ], |
| export_static_lib_headers: [ |
| "libinputdispatcher", |
| ], |
| export_include_dirs: [ |
| ".", |
| "include", |
| ], |
| } |
| |
| ///////////////////////////////////////////////// |
| // libinputflinger_base |
| ///////////////////////////////////////////////// |
| |
| cc_library_headers { |
| name: "libinputflinger_headers", |
| host_supported: true, |
| export_include_dirs: ["include"], |
| } |
| |
| filegroup { |
| name: "libinputflinger_base_sources", |
| srcs: [ |
| "InputDeviceMetricsSource.cpp", |
| "InputListener.cpp", |
| "InputReaderBase.cpp", |
| "InputThread.cpp", |
| "NotifyArgs.cpp", |
| "VibrationElement.cpp", |
| ], |
| } |
| |
| cc_defaults { |
| name: "libinputflinger_base_defaults", |
| srcs: [":libinputflinger_base_sources"], |
| shared_libs: [ |
| "libbase", |
| "libbinder", |
| "libcutils", |
| "libinput", |
| "liblog", |
| "libstatslog", |
| "libutils", |
| ], |
| header_libs: [ |
| "libinputflinger_headers", |
| ], |
| } |
| |
| cc_library_shared { |
| name: "libinputflinger_base", |
| host_supported: true, |
| defaults: [ |
| "inputflinger_defaults", |
| "libinputflinger_base_defaults", |
| ], |
| export_header_lib_headers: [ |
| "libinputflinger_headers", |
| ], |
| } |
| |
| // This target will build everything 'input-related'. This could be useful for |
| // large refactorings of the input code. This is similar to 'm checkbuild', but |
| // just for input code. |
| // Use 'm checkinput' to build, and then (optionally) use 'm installclean' to |
| // remove any of the installed artifacts that you may not want on your actual |
| // build. |
| phony { |
| name: "checkinput", |
| required: [ |
| // native targets |
| "libgui_test", |
| "libinput", |
| "libinputreader_static", |
| "libinputflinger", |
| "inputflinger_tests", |
| "inputflinger_benchmarks", |
| "libinput_tests", |
| "libpalmrejection_test", |
| "libandroid_runtime", |
| "libinputservice_test", |
| "Bug-115739809", |
| "StructLayout_test", |
| |
| // jni |
| "libservices.core", |
| |
| // rust targets |
| "libinput_rust_test", |
| |
| // native fuzzers |
| "inputflinger_latencytracker_fuzzer", |
| "inputflinger_cursor_input_fuzzer", |
| "inputflinger_keyboard_input_fuzzer", |
| "inputflinger_multitouch_input_fuzzer", |
| "inputflinger_switch_input_fuzzer", |
| "inputflinger_touchpad_input_fuzzer", |
| "inputflinger_input_reader_fuzzer", |
| "inputflinger_blocking_queue_fuzzer", |
| "inputflinger_input_classifier_fuzzer", |
| "inputflinger_input_dispatcher_fuzzer", |
| |
| // Java/Kotlin targets |
| "CtsWindowManagerDeviceWindow", |
| "InputTests", |
| "CtsHardwareTestCases", |
| "CtsInputTestCases", |
| "CtsViewTestCases", |
| "CtsWidgetTestCases", |
| "FrameworksCoreTests", |
| "FrameworksServicesTests", |
| "CtsSecurityTestCases", |
| "CtsSecurityBulletinHostTestCases", |
| ], |
| } |