1c29fa5a6Sopenharmony_ci# Copyright (c) 2021-2024 Huawei Device Co., Ltd.
2c29fa5a6Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3c29fa5a6Sopenharmony_ci# you may not use this file except in compliance with the License.
4c29fa5a6Sopenharmony_ci# You may obtain a copy of the License at
5c29fa5a6Sopenharmony_ci#
6c29fa5a6Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7c29fa5a6Sopenharmony_ci#
8c29fa5a6Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9c29fa5a6Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10c29fa5a6Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11c29fa5a6Sopenharmony_ci# See the License for the specific language governing permissions and
12c29fa5a6Sopenharmony_ci# limitations under the License.
13c29fa5a6Sopenharmony_ci
14c29fa5a6Sopenharmony_ciimport("//build/ohos.gni")
15c29fa5a6Sopenharmony_ciimport("./multimodalinput_mini.gni")
16c29fa5a6Sopenharmony_ci
17c29fa5a6Sopenharmony_ciconfig("coverage_flags") {
18c29fa5a6Sopenharmony_ci  if (input_feature_coverage) {
19c29fa5a6Sopenharmony_ci    cflags = [ "--coverage" ]
20c29fa5a6Sopenharmony_ci    ldflags = [ "--coverage" ]
21c29fa5a6Sopenharmony_ci    cflags_cc = [ "--coverage" ]
22c29fa5a6Sopenharmony_ci  }
23c29fa5a6Sopenharmony_ci}
24c29fa5a6Sopenharmony_ci
25c29fa5a6Sopenharmony_ciohos_prebuilt_etc("mmi_uinput.rc") {
26c29fa5a6Sopenharmony_ci  source = "mmi_uinput.rc"
27c29fa5a6Sopenharmony_ci  relative_install_dir = "init"
28c29fa5a6Sopenharmony_ci  part_name = "input"
29c29fa5a6Sopenharmony_ci  subsystem_name = "multimodalinput"
30c29fa5a6Sopenharmony_ci}
31c29fa5a6Sopenharmony_ci
32c29fa5a6Sopenharmony_ciohos_prebuilt_etc("multimodalinput.rc") {
33c29fa5a6Sopenharmony_ci  source = "multimodalinput.cfg"
34c29fa5a6Sopenharmony_ci  relative_install_dir = "init"
35c29fa5a6Sopenharmony_ci  part_name = "input"
36c29fa5a6Sopenharmony_ci  subsystem_name = "multimodalinput"
37c29fa5a6Sopenharmony_ci}
38c29fa5a6Sopenharmony_ci
39c29fa5a6Sopenharmony_ciohos_executable("uinput_inject") {
40c29fa5a6Sopenharmony_ci  install_enable = true
41c29fa5a6Sopenharmony_ci
42c29fa5a6Sopenharmony_ci  sources = uinput_inject_sources
43c29fa5a6Sopenharmony_ci  branch_protector_ret = "pac_ret"
44c29fa5a6Sopenharmony_ci  sanitize = {
45c29fa5a6Sopenharmony_ci    cfi = true
46c29fa5a6Sopenharmony_ci    cfi_cross_dso = true
47c29fa5a6Sopenharmony_ci    debug = false
48c29fa5a6Sopenharmony_ci  }
49c29fa5a6Sopenharmony_ci
50c29fa5a6Sopenharmony_ci  include_dirs = [
51c29fa5a6Sopenharmony_ci    "${mmi_path}/service/nap_process/include",
52c29fa5a6Sopenharmony_ci    "${mmi_path}/util/common/include",
53c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/common/include",
54c29fa5a6Sopenharmony_ci  ]
55c29fa5a6Sopenharmony_ci
56c29fa5a6Sopenharmony_ci  external_deps = [
57c29fa5a6Sopenharmony_ci    "c_utils:utils",
58c29fa5a6Sopenharmony_ci    "drivers_interface_input:libinput_proxy_1.0",
59c29fa5a6Sopenharmony_ci    "hilog:libhilog",
60c29fa5a6Sopenharmony_ci  ]
61c29fa5a6Sopenharmony_ci
62c29fa5a6Sopenharmony_ci  defines = [ "MMI_DISABLE_LOG_TRACE" ]
63c29fa5a6Sopenharmony_ci
64c29fa5a6Sopenharmony_ci  cflags = [ "-fstack-protector-strong" ]
65c29fa5a6Sopenharmony_ci
66c29fa5a6Sopenharmony_ci  part_name = "input"
67c29fa5a6Sopenharmony_ci  subsystem_name = "multimodalinput"
68c29fa5a6Sopenharmony_ci}
69c29fa5a6Sopenharmony_ci
70c29fa5a6Sopenharmony_cigroup("multimodalinput_mmi_base") {
71c29fa5a6Sopenharmony_ci  deps = []
72c29fa5a6Sopenharmony_ci}
73c29fa5a6Sopenharmony_ci
74c29fa5a6Sopenharmony_cigroup("multimodalinput_mmi_frameworks") {
75c29fa5a6Sopenharmony_ci  deps = [ "frameworks/proxy:libmmi-client" ]
76c29fa5a6Sopenharmony_ci}
77c29fa5a6Sopenharmony_ci
78c29fa5a6Sopenharmony_cigroup("multimodalinput_mmi_service") {
79c29fa5a6Sopenharmony_ci  deps = [
80c29fa5a6Sopenharmony_ci    "service:libmmi-server",
81c29fa5a6Sopenharmony_ci    "tools/inject_event:uinput",
82c29fa5a6Sopenharmony_ci    "util/screen_capture:libmmi-screen_capture",
83c29fa5a6Sopenharmony_ci  ]
84c29fa5a6Sopenharmony_ci}
85c29fa5a6Sopenharmony_ci
86c29fa5a6Sopenharmony_cigroup("input-third-mmi") {
87c29fa5a6Sopenharmony_ci  external_deps = [
88c29fa5a6Sopenharmony_ci    "libevdev:libevdev",
89c29fa5a6Sopenharmony_ci    "libinput:libinput-third-mmi",
90c29fa5a6Sopenharmony_ci    "mtdev:libmtdev-third-mmi",
91c29fa5a6Sopenharmony_ci  ]
92c29fa5a6Sopenharmony_ci}
93c29fa5a6Sopenharmony_ci
94c29fa5a6Sopenharmony_cigroup("input_jsapi_group") {
95c29fa5a6Sopenharmony_ci  deps = []
96c29fa5a6Sopenharmony_ci  if (support_jsapi) {
97c29fa5a6Sopenharmony_ci    deps += [
98c29fa5a6Sopenharmony_ci      "frameworks/napi/gesture_event:gestureevent",
99c29fa5a6Sopenharmony_ci      "frameworks/napi/intention_code:intentioncode",
100c29fa5a6Sopenharmony_ci      "frameworks/napi/joystick_event:joystickevent",
101c29fa5a6Sopenharmony_ci      "frameworks/napi/key_code:keycode",
102c29fa5a6Sopenharmony_ci      "frameworks/napi/key_event:keyevent",
103c29fa5a6Sopenharmony_ci      "frameworks/napi/mouse_event:mouseevent",
104c29fa5a6Sopenharmony_ci      "frameworks/napi/touch_event:touchevent",
105c29fa5a6Sopenharmony_ci    ]
106c29fa5a6Sopenharmony_ci    if (input_feature_monitor) {
107c29fa5a6Sopenharmony_ci      deps += [ "frameworks/napi/input_monitor:inputmonitor" ]
108c29fa5a6Sopenharmony_ci    }
109c29fa5a6Sopenharmony_ci    if (input_feature_mouse) {
110c29fa5a6Sopenharmony_ci      deps += [ "frameworks/napi/pointer:pointer" ]
111c29fa5a6Sopenharmony_ci    }
112c29fa5a6Sopenharmony_ci    if (input_feature_keyboard) {
113c29fa5a6Sopenharmony_ci      deps += [
114c29fa5a6Sopenharmony_ci        "frameworks/napi/input_consumer:inputconsumer",
115c29fa5a6Sopenharmony_ci        "frameworks/napi/input_event_client:inputeventclient",
116c29fa5a6Sopenharmony_ci      ]
117c29fa5a6Sopenharmony_ci    }
118c29fa5a6Sopenharmony_ci    if (input_feature_input_device) {
119c29fa5a6Sopenharmony_ci      deps += [ "frameworks/napi/input_device:inputdevice" ]
120c29fa5a6Sopenharmony_ci    }
121c29fa5a6Sopenharmony_ci    if (input_feature_short_key) {
122c29fa5a6Sopenharmony_ci      deps += [ "frameworks/napi/short_key:shortkey" ]
123c29fa5a6Sopenharmony_ci    }
124c29fa5a6Sopenharmony_ci    deps += [ "frameworks/napi/infrared_emitter:infraredemitter" ]
125c29fa5a6Sopenharmony_ci  }
126c29fa5a6Sopenharmony_ci}
127c29fa5a6Sopenharmony_ci
128c29fa5a6Sopenharmony_cigroup("mmi_tests") {
129c29fa5a6Sopenharmony_ci  testonly = true
130c29fa5a6Sopenharmony_ci  deps = [
131c29fa5a6Sopenharmony_ci    "common/anco/comm:AncoChannelStubTest",
132c29fa5a6Sopenharmony_ci    "frameworks/native/input:OHInputManagerTest",
133c29fa5a6Sopenharmony_ci    "frameworks/proxy:InputHandlerManagerTest",
134c29fa5a6Sopenharmony_ci    "frameworks/proxy:InputManagerFilterManualTest",
135c29fa5a6Sopenharmony_ci    "frameworks/proxy:InputManagerImplTest",
136c29fa5a6Sopenharmony_ci    "frameworks/proxy:InputManagerInjectTest",
137c29fa5a6Sopenharmony_ci    "frameworks/proxy:InputManagerManualTest",
138c29fa5a6Sopenharmony_ci    "frameworks/proxy:InputManagerTest",
139c29fa5a6Sopenharmony_ci    "frameworks/proxy:KeyEventTest",
140c29fa5a6Sopenharmony_ci    "frameworks/proxy:PointerEventTest",
141c29fa5a6Sopenharmony_ci    "frameworks/proxy:ut-mmi-proxy-out",
142c29fa5a6Sopenharmony_ci    "libudev:test",
143c29fa5a6Sopenharmony_ci    "service:AccountManagerTest",
144c29fa5a6Sopenharmony_ci    "service:ApplicationStateObserverTest",
145c29fa5a6Sopenharmony_ci    "service:ConnectManagerEXTest",
146c29fa5a6Sopenharmony_ci    "service:ConnectManagerProxyEXTest",
147c29fa5a6Sopenharmony_ci    "service:ConnectManagerTest",
148c29fa5a6Sopenharmony_ci    "service:DelegateTaskTest",
149c29fa5a6Sopenharmony_ci    "service:DeviceConfigTest",
150c29fa5a6Sopenharmony_ci    "service:DeviceManagerTest",
151c29fa5a6Sopenharmony_ci    "service:DfxHisysEventTest",
152c29fa5a6Sopenharmony_ci    "service:DisplayStateManagerTest",
153c29fa5a6Sopenharmony_ci    "service:EventDispatchTest",
154c29fa5a6Sopenharmony_ci    "service:EventDumpTest",
155c29fa5a6Sopenharmony_ci    "service:EventFilterDeathRecipientTest",
156c29fa5a6Sopenharmony_ci    "service:EventFilterHandlerTest",
157c29fa5a6Sopenharmony_ci    "service:EventHandlerTest",
158c29fa5a6Sopenharmony_ci    "service:EventNormalizeHandlerTest",
159c29fa5a6Sopenharmony_ci    "service:InfraredEmitterTest",
160c29fa5a6Sopenharmony_ci    "service:InputDisplayBindHelperTest",
161c29fa5a6Sopenharmony_ci    "service:InputWindowsManagerEXTest",
162c29fa5a6Sopenharmony_ci    "service:InputWindowsManagerTest",
163c29fa5a6Sopenharmony_ci    "service:InterceptorExTest",
164c29fa5a6Sopenharmony_ci    "service:InterceptorTest",
165c29fa5a6Sopenharmony_ci    "service:KeyAutoRepeatExTest",
166c29fa5a6Sopenharmony_ci    "service:KeyCommandTest",
167c29fa5a6Sopenharmony_ci    "service:KeyEventNormalizeTest",
168c29fa5a6Sopenharmony_ci    "service:KeyEventValueTransformationTest",
169c29fa5a6Sopenharmony_ci    "service:KeyGestureManagerEXTest",
170c29fa5a6Sopenharmony_ci    "service:KnuckleDivergentPointTest",
171c29fa5a6Sopenharmony_ci    "service:KnuckleDrawingManagerTest",
172c29fa5a6Sopenharmony_ci    "service:KnuckleDynamicDrawingManagerTest",
173c29fa5a6Sopenharmony_ci    "service:KnuckleGlowPointTest",
174c29fa5a6Sopenharmony_ci    "service:KnuckleGlowTraceSystemTest",
175c29fa5a6Sopenharmony_ci    "service:LibinputAdapterTest",
176c29fa5a6Sopenharmony_ci    "service:ModuleLoaderTest",
177c29fa5a6Sopenharmony_ci    "service:MonitorTest",
178c29fa5a6Sopenharmony_ci    "service:NapProcessTest",
179c29fa5a6Sopenharmony_ci    "service:PointerDrawingManagerExTest",
180c29fa5a6Sopenharmony_ci    "service:PointerDrawingManagerTest",
181c29fa5a6Sopenharmony_ci    "service:ServerMsgHandlerTest",
182c29fa5a6Sopenharmony_ci    "service:StylusKeyTest",
183c29fa5a6Sopenharmony_ci    "service:StylusKeyTest",
184c29fa5a6Sopenharmony_ci    "service:SubscriberTest",
185c29fa5a6Sopenharmony_ci    "service:TimerManagerTest",
186c29fa5a6Sopenharmony_ci    "service:TouchDrawingManagerAiTest",
187c29fa5a6Sopenharmony_ci    "service:TouchDrawingManagerTest",
188c29fa5a6Sopenharmony_ci    "service:TwoFingerLongTouchTest",
189c29fa5a6Sopenharmony_ci    "service:event_resample_test",
190c29fa5a6Sopenharmony_ci    "service:mmi-service-tests",
191c29fa5a6Sopenharmony_ci    "service/crown_transform_processor/test:CrownTransformProcessorTest",
192c29fa5a6Sopenharmony_ci    "service/fingerprint_event_processor/test:FingerprintEventProcessorTest",
193c29fa5a6Sopenharmony_ci    "service/mouse_event_normalize/test:MouseEventNormalizeTest",
194c29fa5a6Sopenharmony_ci    "service/subscriber/test:mmi_subscriber_tests",
195c29fa5a6Sopenharmony_ci    "service/touch_event_normalize/test:TouchEventNormalizeTests",
196c29fa5a6Sopenharmony_ci    "service/touch_event_normalize/test:TouchGestureAdapterTest",
197c29fa5a6Sopenharmony_ci    "test/fuzztest:test",
198c29fa5a6Sopenharmony_ci    "test/unittest/interfaces:InputNativeHotkeyTest",
199c29fa5a6Sopenharmony_ci    "test/unittest/interfaces:InputNativeTest",
200c29fa5a6Sopenharmony_ci    "tools/inject_event:InjectEventTest",
201c29fa5a6Sopenharmony_ci    "util:UdsClientTest",
202c29fa5a6Sopenharmony_ci  ]
203c29fa5a6Sopenharmony_ci
204c29fa5a6Sopenharmony_ci  if (input_feature_switch) {
205c29fa5a6Sopenharmony_ci    deps += [ "frameworks/proxy:SwitchEventInputSubscribeManagerTest" ]
206c29fa5a6Sopenharmony_ci  }
207c29fa5a6Sopenharmony_ci
208c29fa5a6Sopenharmony_ci  if (!use_clang_coverage) {
209c29fa5a6Sopenharmony_ci    deps += [
210c29fa5a6Sopenharmony_ci      "service:rust_mmi_test",
211c29fa5a6Sopenharmony_ci      "util:rust_mmi_key_config_test",
212c29fa5a6Sopenharmony_ci      "util:ut-mmi-util-out",
213c29fa5a6Sopenharmony_ci    ]
214c29fa5a6Sopenharmony_ci  }
215c29fa5a6Sopenharmony_ci
216c29fa5a6Sopenharmony_ci  if (input_ext_feature_anco) {
217c29fa5a6Sopenharmony_ci    deps += [ "${mmi_path}/frameworks/proxy/events/test:InputManagerAncoTest" ]
218c29fa5a6Sopenharmony_ci  }
219c29fa5a6Sopenharmony_ci}
220c29fa5a6Sopenharmony_ci
221c29fa5a6Sopenharmony_cigroup("examples_group") {
222c29fa5a6Sopenharmony_ci  deps = [ "examples/input_device_display_bind:input_device_display_bind" ]
223c29fa5a6Sopenharmony_ci}
224