Split InputFlinger into multiple libraries
This is the InputFlinger FE/BE split as detailed in
go/arc++inputflinger-split.
We split libinputflinger into the following dynamic libraries:
- libinputflinger: Acts as the frontend for inputflinger and implements
InputDispatcher and InputManager.
- libinputreader: Acts as the backend for inputflinger and impliements
InputReader and EventHub, and adds a InputReaderFactory to create
the InputReader.
- libinputflinger_base: Contains the common logic that is shared
throughout InputFlinger, and contains the definitions for
InputReaderInterface (in InputReaderBase.h) and
InputListenerInterface (in InputListener.h).
Bug: 119264687
Test: manual: Build, run, and test input (touch, mouse)
Change-Id: I8567635f48de58ee8e5bdb0f8a17a73ea6fa37ef
diff --git a/services/inputflinger/Android.bp b/services/inputflinger/Android.bp
index 7812cb2..4a8b613 100644
--- a/services/inputflinger/Android.bp
+++ b/services/inputflinger/Android.bp
@@ -18,24 +18,20 @@
cpp_std: "c++17",
srcs: [
- "EventHub.cpp",
"InputDispatcher.cpp",
- "InputListener.cpp",
"InputManager.cpp",
- "InputReader.cpp",
],
shared_libs: [
+ "libinputflinger_base",
+ "libinputreader",
"libbase",
"libbinder",
- "libcrypto",
"libcutils",
"libinput",
"liblog",
"libutils",
"libui",
- "libhardware_legacy",
- "libutils"
],
cflags: [
@@ -47,7 +43,91 @@
//-fvisibility=hidden
],
- export_include_dirs: ["."],
+ export_include_dirs: [
+ ".",
+ "include",
+ ],
+
+}
+
+
+cc_library_headers {
+ name: "libinputflinger_headers",
+
+ export_include_dirs: ["include"],
+}
+
+cc_library_shared {
+ name: "libinputreader",
+
+ cpp_std: "c++17",
+
+ srcs: [
+ "EventHub.cpp",
+ "InputReader.cpp",
+ "InputReaderFactory.cpp",
+ ],
+
+ shared_libs: [
+ "libinputflinger_base",
+ "libbase",
+ "libcrypto",
+ "libcutils",
+ "libinput",
+ "liblog",
+ "libutils",
+ "libui",
+ "libhardware_legacy",
+ "libutils"
+ ],
+
+ header_libs: [
+ "libinputflinger_headers",
+ ],
+
+ export_header_lib_headers: [
+ "libinputflinger_headers",
+ ],
+
+ cflags: [
+ "-Wall",
+ "-Wextra",
+ "-Werror",
+ "-Wno-unused-parameter",
+ ],
+}
+
+cc_library_shared {
+ name: "libinputflinger_base",
+
+ cpp_std: "c++17",
+
+ srcs: [
+ "InputListener.cpp",
+ "InputReaderBase.cpp",
+ ],
+
+ shared_libs: [
+ "libbase",
+ "libinput",
+ "liblog",
+ "libutils",
+ ],
+
+ header_libs: [
+ "libinputflinger_headers",
+ ],
+
+ export_header_lib_headers: [
+ "libinputflinger_headers",
+ ],
+
+ cflags: [
+ "-Wall",
+ "-Wextra",
+ "-Werror",
+ "-Wno-unused-parameter",
+ ],
}
subdirs = [