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