• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2023 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//build/ohos.gni")
15
16mmi_path = "//foundation/multimodalinput/input"
17graphics_path = "//foundation/graphic/graphic_2d/rosen/modules"
18preferences_path = "//foundation/distributeddatamgr/preferences"
19ability_runtime_path = "//foundation/ability/ability_runtime"
20security_component_path = "//base/security"
21
22declare_args() {
23  resource_schedule_service_enabled = false
24  input_feature_product = "default"
25  input_feature_enable_pgo = false
26  input_feature_pgo_path = ""
27  input_feature_combination_key = true
28  input_feature_pointer_drawing = true
29  input_feature_interceptor = true
30  input_feature_monitor = true
31  input_feature_keyboard = true
32  input_feature_switch = false
33  input_feature_mouse = true
34  input_feature_joystick = true
35  input_feature_touchscreen = true
36  input_feature_input_device = true
37  input_feature_short_key = true
38  input_feature_coverage = false
39  input_ext_feature_anco = false
40  input_ext_feature_fingersense = false
41
42  if (defined(global_parts_info) &&
43      defined(global_parts_info.resourceschedule_resource_schedule_service)) {
44    resource_schedule_service_enabled = true
45  }
46
47  if (is_emulator) {
48    input_feature_pointer_drawing = false
49  }
50
51  uinput_inject_sources = [
52    "uinput/hdf_device_event_dispatch.cpp",
53    "uinput/hdf_device_event_manager.cpp",
54    "uinput/inject_thread.cpp",
55    "uinput/keyboard_inject.cpp",
56    "uinput/virtual_device.cpp",
57    "uinput/virtual_keyboard.cpp",
58    "uinput/virtual_touch_screen.cpp",
59  ]
60
61  libmmi_common_sources = [
62    "events/src/input_device.cpp",
63    "events/src/input_event.cpp",
64    "events/src/key_event.cpp",
65    "events/src/key_option.cpp",
66    "events/src/pointer_event.cpp",
67  ]
68
69  libmmi_client_sources = [
70    "event_handler/src/anr_handler.cpp",
71    "event_handler/src/bytrace_adapter.cpp",
72    "event_handler/src/client_msg_handler.cpp",
73    "event_handler/src/input_device_impl.cpp",
74    "event_handler/src/input_handler_manager.cpp",
75    "event_handler/src/input_manager_impl.cpp",
76    "event_handler/src/multimodal_event_handler.cpp",
77    "event_handler/src/scene_board_judgement.cpp",
78    "events/src/axis_event.cpp",
79    "events/src/input_manager.cpp",
80    "module_loader/src/mmi_client.cpp",
81    "module_loader/src/mmi_fd_listener.cpp",
82  ]
83
84  libmmi_service_sources = [
85    "$mmi_path/frameworks/proxy/event_handler/src/bytrace_adapter.cpp",
86    "$mmi_path/frameworks/proxy/event_handler/src/scene_board_judgement.cpp",
87    "app_state_manager/src/app_state_observer.cpp",
88    "delegate_task/src/delegate_tasks.cpp",
89    "device_config/src/device_config_file_parser.cpp",
90    "device_manager/src/input_device_manager.cpp",
91    "dfx/src/dfx_hisysevent.cpp",
92    "display_state_manager/src/display_event_monitor.cpp",
93    "event_dispatch/src/event_dispatch_handler.cpp",
94    "event_dump/src/event_dump.cpp",
95    "event_handler/src/anr_manager.cpp",
96    "event_handler/src/event_normalize_handler.cpp",
97    "event_handler/src/gesture_handler.cpp",
98    "event_handler/src/input_event_handler.cpp",
99    "event_handler/src/key_auto_repeat.cpp",
100    "event_handler/src/key_event_value_transformation.cpp",
101    "event_handler/src/key_map_manager.cpp",
102    "fingersense_wrapper/src/fingersense_wrapper.cpp",
103    "libinput_adapter/src/hotplug_detector.cpp",
104    "libinput_adapter/src/libinput_adapter.cpp",
105    "message_handle/src/server_msg_handler.cpp",
106    "module_loader/src/app_debug_listener.cpp",
107    "module_loader/src/mmi_service.cpp",
108    "module_loader/src/multimodal_input_preferences_manager.cpp",
109    "module_loader/src/uds_server.cpp",
110    "module_loader/src/watchdog_task.cpp",
111    "nap_process/src/nap_process.cpp",
112    "permission_helper/src/permission_helper.cpp",
113    "timer_manager/src/timer_manager.cpp",
114    "window_manager/src/input_display_bind_helper.cpp",
115    "window_manager/src/input_windows_manager.cpp",
116  ]
117
118  inputdevice_sources = [
119    "src/js_event_target.cpp",
120    "src/js_input_device_context.cpp",
121    "src/js_input_device_manager.cpp",
122    "src/js_util.cpp",
123    "src/native_register_module.cpp",
124  ]
125
126  inputmonitor_sources = [
127    "src/js_input_monitor.cpp",
128    "src/js_input_monitor_manager.cpp",
129    "src/js_input_monitor_module.cpp",
130  ]
131
132  patch_gen_libinput_third_mmi_sources = [
133    root_out_dir + "/diff_libinput_mmi/src/evdev-debounce.c",
134    root_out_dir + "/diff_libinput_mmi/src/evdev-fallback.c",
135    root_out_dir + "/diff_libinput_mmi/src/evdev-joystick.c",
136    root_out_dir + "/diff_libinput_mmi/src/evdev-middle-button.c",
137    root_out_dir + "/diff_libinput_mmi/src/evdev-mt-touchpad-buttons.c",
138    root_out_dir + "/diff_libinput_mmi/src/evdev-mt-touchpad-edge-scroll.c",
139    root_out_dir + "/diff_libinput_mmi/src/evdev-mt-touchpad-gestures.c",
140    root_out_dir + "/diff_libinput_mmi/src/evdev-mt-touchpad-tap.c",
141    root_out_dir + "/diff_libinput_mmi/src/evdev-mt-touchpad-thumb.c",
142    root_out_dir + "/diff_libinput_mmi/src/evdev-mt-touchpad.c",
143    root_out_dir + "/diff_libinput_mmi/src/evdev-tablet-pad-leds.c",
144    root_out_dir + "/diff_libinput_mmi/src/evdev-tablet-pad.c",
145    root_out_dir + "/diff_libinput_mmi/src/evdev-tablet.c",
146    root_out_dir + "/diff_libinput_mmi/src/evdev-totem.c",
147    root_out_dir + "/diff_libinput_mmi/src/evdev.c",
148    root_out_dir + "/diff_libinput_mmi/src/filter-flat.c",
149    root_out_dir + "/diff_libinput_mmi/src/filter-low-dpi.c",
150    root_out_dir + "/diff_libinput_mmi/src/filter-mouse.c",
151    root_out_dir + "/diff_libinput_mmi/src/filter-tablet.c",
152    root_out_dir + "/diff_libinput_mmi/src/filter-touchpad-flat.c",
153    root_out_dir + "/diff_libinput_mmi/src/filter-touchpad-x230.c",
154    root_out_dir + "/diff_libinput_mmi/src/filter-touchpad.c",
155    root_out_dir + "/diff_libinput_mmi/src/filter-trackpoint.c",
156    root_out_dir + "/diff_libinput_mmi/src/filter.c",
157    root_out_dir + "/diff_libinput_mmi/src/libinput-util.c",
158    root_out_dir + "/diff_libinput_mmi/src/libinput.c",
159    root_out_dir + "/diff_libinput_mmi/src/path-seat.c",
160    root_out_dir + "/diff_libinput_mmi/src/quirks.c",
161    root_out_dir + "/diff_libinput_mmi/src/timer.c",
162    root_out_dir + "/diff_libinput_mmi/src/util-list.c",
163    root_out_dir + "/diff_libinput_mmi/src/util-prop-parsers.c",
164    root_out_dir + "/diff_libinput_mmi/src/util-ratelimit.c",
165    root_out_dir + "/diff_libinput_mmi/src/util-strings.c",
166  ]
167
168  patch_gen_libmtdev_third_mmi_sources = [
169    root_out_dir + "/diff_libmtdev_mmi/src/caps.c",
170    root_out_dir + "/diff_libmtdev_mmi/src/core.c",
171    root_out_dir + "/diff_libmtdev_mmi/src/iobuf.c",
172    root_out_dir + "/diff_libmtdev_mmi/src/match.c",
173    root_out_dir + "/diff_libmtdev_mmi/src/match_four.c",
174  ]
175
176  event_injection_sources = [
177    "src/device_base.cpp",
178    "src/get_device_node.cpp",
179    "src/get_device_object.cpp",
180    "src/injection_event_dispatch.cpp",
181    "src/injection_tools_help_func.cpp",
182    "src/input_parse.cpp",
183    "src/manage_inject_device.cpp",
184    "src/processing_finger_device.cpp",
185    "src/processing_game_pad_device.cpp",
186    "src/processing_joystick_device.cpp",
187    "src/processing_keyboard_device.cpp",
188    "src/processing_mouse_device.cpp",
189    "src/processing_pad_device.cpp",
190    "src/processing_pen_device.cpp",
191    "src/processing_touch_screen_device.cpp",
192  ]
193
194  libmmi_virtual_device_sources = [
195    "src/virtual_device.cpp",
196    "src/virtual_finger.cpp",
197    "src/virtual_gamepad.cpp",
198    "src/virtual_joystick.cpp",
199    "src/virtual_keyboard.cpp",
200    "src/virtual_keyboard_consumer_ctrl.cpp",
201    "src/virtual_keyboard_ext.cpp",
202    "src/virtual_keyboard_sys_ctrl.cpp",
203    "src/virtual_knob.cpp",
204    "src/virtual_knob_consumer_ctrl.cpp",
205    "src/virtual_knob_mouse.cpp",
206    "src/virtual_knob_sys_ctrl.cpp",
207    "src/virtual_mouse.cpp",
208    "src/virtual_pen.cpp",
209    "src/virtual_pen_keyboard.cpp",
210    "src/virtual_pen_mouse.cpp",
211    "src/virtual_remote_control.cpp",
212    "src/virtual_single_finger.cpp",
213    "src/virtual_single_touchscreen.cpp",
214    "src/virtual_stylus.cpp",
215    "src/virtual_touchpad.cpp",
216    "src/virtual_touchscreen.cpp",
217    "src/virtual_trackball.cpp",
218    "src/virtual_trackpad.cpp",
219    "src/virtual_trackpad_mouse.cpp",
220    "src/virtual_trackpad_sys_ctrl.cpp",
221  ]
222
223  libmmi_util_sources = [
224    "common/src/input_event_data_transformation.cpp",
225    "common/src/key_event_napi.cpp",
226    "common/src/klog.cpp",
227    "common/src/util.cpp",
228    "common/src/util_napi.cpp",
229    "common/src/util_napi_error.cpp",
230    "common/src/util_napi_value.cpp",
231    "network/src/circle_stream_buffer.cpp",
232    "network/src/net_packet.cpp",
233    "network/src/stream_buffer.cpp",
234    "socket/src/uds_client.cpp",
235    "socket/src/uds_session.cpp",
236    "socket/src/uds_socket.cpp",
237  ]
238}
239
240if (input_feature_joystick) {
241  input_feature_mouse = true
242}
243
244print("input_feature_combination_key = ${input_feature_combination_key}")
245print("input_feature_pointer_drawing = ${input_feature_pointer_drawing}")
246print("input_feature_monitor = ${input_feature_monitor}")
247print("input_feature_interceptor = ${input_feature_interceptor}")
248print("input_feature_keyboard = ${input_feature_keyboard}")
249print("input_feature_switch = ${input_feature_switch}")
250print("input_feature_mouse = ${input_feature_mouse}")
251print("input_feature_joystick = ${input_feature_joystick}")
252print("input_feature_touchscreen = ${input_feature_touchscreen}")
253print("input_feature_input_device = ${input_feature_input_device}")
254print("input_feature_short_key = ${input_feature_short_key}")
255
256input_default_defines = []
257
258if (input_feature_pointer_drawing) {
259  input_default_defines += [ "OHOS_BUILD_ENABLE_POINTER_DRAWING" ]
260}
261
262if (input_feature_interceptor) {
263  input_default_defines += [ "OHOS_BUILD_ENABLE_INTERCEPTOR" ]
264}
265
266if (input_feature_keyboard) {
267  input_default_defines += [ "OHOS_BUILD_ENABLE_KEYBOARD" ]
268}
269
270if (input_feature_switch) {
271  input_default_defines += [ "OHOS_BUILD_ENABLE_SWITCH" ]
272}
273
274if (input_feature_monitor) {
275  input_default_defines += [ "OHOS_BUILD_ENABLE_MONITOR" ]
276}
277
278if (input_feature_touchscreen) {
279  input_default_defines += [ "OHOS_BUILD_ENABLE_TOUCH" ]
280}
281
282if (input_feature_mouse) {
283  input_default_defines += [ "OHOS_BUILD_ENABLE_POINTER" ]
284}
285
286if (input_feature_joystick) {
287  input_default_defines += [ "OHOS_BUILD_ENABLE_JOYSTICK" ]
288}
289
290if (input_feature_short_key) {
291  input_default_defines += [ "OHOS_BUILD_ENABLE_SHORT_KEY" ]
292}
293
294if (!defined(global_parts_info) ||
295    defined(global_parts_info.security_security_component_manager)) {
296  security_component_enable = true
297} else {
298  security_component_enable = false
299}
300
301if (security_component_enable) {
302  input_default_defines += [ "OHOS_BUILD_ENABLE_SECURITY_COMPONENT" ]
303}
304
305if (input_ext_feature_fingersense) {
306  input_default_defines += [ "OHOS_BUILD_ENABLE_FINGERSENSE_WRAPPER" ]
307}
308
309if (input_ext_feature_anco) {
310  mmi_ext_path = "//vendor/huawei/foundation/multimodalinput/input_ext"
311  input_default_defines += [ "OHOS_BUILD_ENABLE_ANCO" ]
312  libmmi_client_sources +=
313      [ "${mmi_ext_path}/anco_uds_manager/src/input_manager_ext.cpp" ]
314  libmmi_service_sources += [
315    "${mmi_ext_path}/anco_uds_manager/src/anco_uds_manager.cpp",
316    "${mmi_ext_path}/anco_uds_manager/src/input_windows_manager_ext.cpp",
317    "${mmi_ext_path}/anco_uds_manager/src/mmi_service_ext.cpp",
318  ]
319}
320