1# Copyright (c) 2021-2024 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")
15import("//build/test.gni")
16import("../../multimodalinput_mini.gni")
17
18defines = input_default_defines
19
20module_output_path = "multimodalinput/mmi_unit_out"
21
22config("libmmi_client_config") {
23  visibility = [ ":*" ]
24
25  include_dirs = [
26    "${mmi_path}/interfaces/kits/c/input",
27    "${mmi_path}/interfaces/native/innerkits/common/include",
28    "${mmi_path}/util/common/include",
29    "${mmi_path}/interfaces/native/innerkits/event/include",
30    "event_handler/include",
31    "events/include",
32    "module_loader/include",
33  ]
34}
35
36config("libmmi_public_client_config") {
37  include_dirs = [
38    "${mmi_path}/common/anco/comm/include",
39    "${mmi_path}/interfaces/native/innerkits",
40    "${mmi_path}/interfaces/native/innerkits/event/include",
41    "${mmi_path}/interfaces/native/innerkits/proxy/include",
42    "${mmi_path}/util/common/include",
43  ]
44
45  if (input_ext_feature_anco) {
46    include_dirs += [ "${mmi_ext_path}/anco_uds_manager/include" ]
47  }
48}
49
50config("libmmi_test_util") {
51  include_dirs = [
52    "${mmi_path}/frameworks/proxy/event_handler/include",
53    "${mmi_path}/frameworks/proxy/module_loader/include",
54    "${mmi_path}/interfaces/native/innerkits/common/include",
55    "${mmi_path}/interfaces/native/innerkits/proxy/include",
56    "${mmi_path}/test/unittest/common/include",
57    "${mmi_path}/util/network/include",
58    "${mmi_path}/util/socket/include",
59  ]
60}
61
62ohos_source_set("libmmi-common") {
63  sources = libmmi_common_sources
64  public_configs = [ ":libmmi_client_config" ]
65  visibility = [ "${mmi_path}/*" ]
66  branch_protector_ret = "pac_ret"
67  external_deps = [
68    "c_utils:utils",
69    "ffrt:libffrt",
70    "hilog:libhilog",
71    "init:libbegetutil",
72  ]
73
74  part_name = "input"
75  subsystem_name = "multimodalinput"
76}
77
78if (is_arkui_x) {
79  ohos_source_set("libmmi-client-crossplatform") {
80    sources = libmmi_common_sources
81    public_configs = [ ":libmmi_public_client_config" ]
82    include_dirs = [
83      "${c_utils_root}/base/include",
84      "${mmi_path}/frameworks/proxy/events/include",
85    ]
86
87    if (target_os == "android") {
88      defines += [ "ANDROID_PLATFORM" ]
89    } else if (target_os == "ios") {
90      defines += [ "IOS_PLATFORM" ]
91    }
92
93    deps = [ "${hilog_root}/interfaces/native/innerkits:libhilog_${target_os}" ]
94
95    part_name = "input"
96    subsystem_name = "multimodalinput"
97  }
98}
99
100ohos_shared_library("libmmi-client") {
101  sources = libmmi_client_sources
102  version_script = "${mmi_path}/interfaces/native/innerkits/libmmi-client-map"
103  innerapi_tags = [ "platformsdk" ]
104  branch_protector_ret = "pac_ret"
105
106  if (input_feature_interceptor) {
107    sources += [ "event_handler/src/input_interceptor_manager.cpp" ]
108  }
109
110  if (input_feature_monitor) {
111    sources += [ "event_handler/src/input_monitor_manager.cpp" ]
112  }
113
114  if (input_feature_keyboard) {
115    sources += [ "event_handler/src/key_event_input_subscribe_manager.cpp" ]
116  }
117
118  if (input_feature_switch) {
119    sources += [ "event_handler/src/switch_event_input_subscribe_manager.cpp" ]
120  }
121
122  configs = [
123    "${mmi_path}:coverage_flags",
124    ":libmmi_client_config",
125    "${mmi_path}/util:libmmi_util_public_config",
126    "${mmi_path}/service/filter:mmi_event_filter_config",
127    "${mmi_path}/service/connect_manager:mmi_connect_manager_config",
128  ]
129
130  public_configs = [ ":libmmi_public_client_config" ]
131
132  deps = [
133    ":libmmi-common",
134    "${mmi_path}/service/connect_manager:mmi_connect_manager_proxy",
135    "${mmi_path}/service/filter:mmi_event_filter_service",
136    "${mmi_path}/util:libmmi-util",
137  ]
138
139  if (input_ext_feature_anco) {
140    deps += [ "${mmi_path}/common/anco/comm:mmi_anco_channel_stub" ]
141  }
142
143  part_name = "input"
144  subsystem_name = "multimodalinput"
145  external_deps = [
146    "c_utils:utils",
147    "eventhandler:libeventhandler",
148    "ffrt:libffrt",
149    "graphic_2d:2d_graphics",
150    "hilog:libhilog",
151    "image_framework:image_native",
152    "init:libbegetutil",
153    "ipc:ipc_single",
154    "qos_manager:qos",
155    "samgr:samgr_proxy",
156  ]
157
158  if (hitrace_enabled) {
159    external_deps += [ "hitrace:hitrace_meter" ]
160  }
161}
162
163ohos_unittest("ut-mmi-proxy-out") {
164  module_out_path = module_output_path
165  include_dirs = [ "$root_out_dir/diff_libinput_mmi/export_include" ]
166
167  sources = [ "module_loader/test/mmi_client_test.cpp" ]
168
169  configs = [
170    "${mmi_path}:coverage_flags",
171    ":libmmi_test_util",
172  ]
173
174  deps = [
175    "${mmi_path}/frameworks/proxy:libmmi-client",
176    "${mmi_path}/util:libmmi-util",
177  ]
178  external_deps = [
179    "c_utils:utils",
180    "eventhandler:libeventhandler",
181    "googletest:gmock_main",
182    "googletest:gtest_main",
183    "hilog:libhilog",
184    "ipc:ipc_single",
185  ]
186}
187
188ohos_unittest("KeyEventTest") {
189  module_out_path = module_output_path
190  include_dirs = [ "$root_out_dir/diff_libinput_mmi/export_include" ]
191
192  sources = [
193    "${mmi_path}/test/unittest/common/src/event_util_test.cpp",
194    "${mmi_path}/test/unittest/common/src/window_utils_test.cpp",
195    "events/test/key_event_test.cpp",
196  ]
197
198  configs = [
199    "${mmi_path}:coverage_flags",
200    ":libmmi_test_util",
201  ]
202
203  deps = [
204    "${mmi_path}/frameworks/proxy:libmmi-client",
205    "${mmi_path}/util:libmmi-util",
206  ]
207  external_deps = [
208    "ability_runtime:abilitykit_native",
209    "access_token:libaccesstoken_sdk",
210    "access_token:libnativetoken_shared",
211    "access_token:libtokensetproc_shared",
212    "c_utils:utils",
213    "eventhandler:libeventhandler",
214    "googletest:gmock_main",
215    "googletest:gtest_main",
216    "hilog:libhilog",
217    "ipc:ipc_single",
218    "window_manager:libwm",
219    "window_manager:libwsutils",
220  ]
221}
222
223ohos_unittest("InputHandlerManagerTest") {
224  module_out_path = module_output_path
225
226  include_dirs = []
227
228  configs = [
229    "${mmi_path}:coverage_flags",
230    ":libmmi_client_config",
231    "${mmi_path}/service:libmmi_server_config",
232  ]
233
234  cflags = [
235    "-Dprivate=public",
236    "-Dprotected=public",
237  ]
238
239  sources = [
240    "event_handler/src/anr_handler.cpp",
241    "event_handler/src/input_handler_manager.cpp",
242    "event_handler/test/input_handler_manager_test.cpp",
243    "event_handler/test/scene_board_judgement_test.cpp",
244  ]
245
246  deps = [
247    "${mmi_path}/frameworks/proxy:libmmi-client",
248    "${mmi_path}/service:libmmi-server",
249    "${mmi_path}/service/connect_manager:mmi_connect_manager_proxy",
250    "${mmi_path}/util:libmmi-util",
251  ]
252
253  external_deps = [
254    "call_manager:tel_call_manager_api",
255    "common_event_service:cesfwk_innerkits",
256    "config_policy:configpolicy_util",
257    "data_share:datashare_consumer",
258    "drivers_interface_display:libdisplay_composer_hdi_impl_1.2",
259    "drivers_interface_display:libdisplay_composer_proxy_1.0",
260    "eventhandler:libeventhandler",
261    "faultloggerd:libbacktrace_local",
262    "ffrt:libffrt",
263    "googletest:gtest_main",
264    "graphic_2d:2d_graphics",
265    "graphic_2d:libcomposer",
266    "graphic_2d:librender_service_client",
267    "graphic_2d:window_animation",
268    "hdf_core:libhdi",
269    "hicollie:libhicollie",
270    "hilog:libhilog",
271    "hisysevent:libhisysevent",
272    "image_framework:image_native",
273    "init:libbeget_proxy",
274    "init:libbegetutil",
275    "ipc:ipc_single",
276    "napi:ace_napi",
277    "preferences:native_preferences",
278    "safwk:system_ability_fwk",
279    "samgr:samgr_proxy",
280    "window_manager:libwm_lite",
281    "window_manager:libwsutils",
282  ]
283
284  if (hitrace_enabled) {
285    external_deps += [ "hitrace:hitrace_meter" ]
286  }
287}
288
289ohos_unittest("SwitchEventInputSubscribeManagerTest") {
290  module_out_path = module_output_path
291  include_dirs = [
292    "$root_out_dir/diff_libinput_mmi/export_include",
293    "${mmi_path}/service/filter/include",
294    "${mmi_path}/service/nap_process/include",
295    "${mmi_path}/service/module_loader//include",
296    "${mmi_path}/service/connect_manager/include",
297  ]
298
299  sources = [
300    "event_handler/src/switch_event_input_subscribe_manager.cpp",
301    "event_handler/test/switch_event_input_subscribe_manager_test.cpp",
302  ]
303
304  configs = [
305    "${mmi_path}:coverage_flags",
306    ":libmmi_test_util",
307  ]
308
309  cflags = [
310    "-Dprivate=public",
311    "-Dprotected=public",
312  ]
313
314  deps = [
315    "${mmi_path}/frameworks/proxy:libmmi-client",
316    "${mmi_path}/util:libmmi-util",
317  ]
318  external_deps = [
319    "ability_runtime:abilitykit_native",
320    "access_token:libaccesstoken_sdk",
321    "access_token:libnativetoken_shared",
322    "access_token:libtokensetproc_shared",
323    "c_utils:utils",
324    "eventhandler:libeventhandler",
325    "googletest:gmock_main",
326    "googletest:gtest_main",
327    "hilog:libhilog",
328    "init:libbegetutil",
329    "ipc:ipc_single",
330    "window_manager:libwm",
331    "window_manager:libwsutils",
332  ]
333}
334
335ohos_unittest("InputManagerImplTest") {
336  module_out_path = module_output_path
337  include_dirs = [
338    "${mmi_path}/common/anco/comm/include",
339    "${mmi_path}/service/connect_manager/include",
340    "${mmi_path}/service/filter/include",
341    "${mmi_path}/service/module_loader/include",
342    "${mmi_path}/service/nap_process/include",
343    "${mmi_path}/frameworks/proxy/event_handler/include",
344  ]
345
346  sources = [
347    "${mmi_path}/common/anco/comm/src/anco_channel.cpp",
348    "${mmi_path}/common/anco/comm/src/anco_channel_stub.cpp",
349    "${mmi_path}/frameworks/proxy/events/src/i_anco_consumer.cpp",
350    "${mmi_path}/service/connect_manager/src/input_binder_client_server.cpp",
351    "${mmi_path}/service/connect_manager/src/input_binder_client_stub.cpp",
352    "${mmi_path}/service/connect_manager/src/multimodal_input_connect_death_recipient.cpp",
353    "${mmi_path}/service/connect_manager/src/multimodal_input_connect_manager.cpp",
354    "${mmi_path}/service/filter/src/event_filter_service.cpp",
355    "${mmi_path}/service/filter/src/event_filter_stub.cpp",
356    "event_handler/src/anr_handler.cpp",
357    "event_handler/src/bytrace_adapter.cpp",
358    "event_handler/src/input_handler_manager.cpp",
359    "event_handler/src/input_manager_impl.cpp",
360    "event_handler/src/key_event_input_subscribe_manager.cpp",
361    "event_handler/src/multimodal_event_handler.cpp",
362    "event_handler/src/switch_event_input_subscribe_manager.cpp",
363    "event_handler/test/input_manager_impl_test.cpp",
364  ]
365
366  configs = [
367    "${mmi_path}:coverage_flags",
368    ":libmmi_test_util",
369  ]
370
371  cflags = [
372    "-Dprivate=public",
373    "-Dprotected=public",
374  ]
375
376  deps = [
377    "${mmi_path}/service:libmmi-server",
378    "${mmi_path}/util:libmmi-util",
379  ]
380
381  external_deps = [
382    "ability_runtime:abilitykit_native",
383    "c_utils:utils",
384    "eventhandler:libeventhandler",
385    "ffrt:libffrt",
386    "googletest:gmock_main",
387    "googletest:gtest_main",
388    "hilog:libhilog",
389    "init:libbegetutil",
390    "ipc:ipc_single",
391    "samgr:samgr_proxy",
392    "window_manager:libwm",
393    "window_manager:libwsutils",
394  ]
395
396  if (hitrace_enabled) {
397    external_deps += [ "hitrace:hitrace_meter" ]
398  }
399}
400
401ohos_unittest("InputManagerTest") {
402  module_out_path = module_output_path
403  include_dirs = [
404    "${mmi_path}/frameworks/proxy/events/test",
405    "${mmi_path}/frameworks/proxy/event_handler/include",
406    "$root_out_dir/diff_libinput_mmi/export_include",
407    "${mmi_path}/service/filter/include",
408  ]
409
410  sources = [
411    "${mmi_path}/test/unittest/common/src/event_util_test.cpp",
412    "${mmi_path}/test/unittest/common/src/system_info.cpp",
413    "${mmi_path}/test/unittest/common/src/window_utils_test.cpp",
414    "events/src/input_manager_util.cpp",
415    "events/test/input_manager_simulate_test.cpp",
416    "events/test/input_manager_test.cpp",
417    "events/test/input_manager_update_display_info_test.cpp",
418    "events/test/virtual_input_device_test.cpp",
419  ]
420
421  configs = [
422    "${mmi_path}:coverage_flags",
423    ":libmmi_test_util",
424  ]
425
426  deps = [
427    "${mmi_path}/frameworks/proxy:libmmi-client",
428    "${mmi_path}/util:libmmi-util",
429  ]
430  external_deps = [
431    "ability_runtime:abilitykit_native",
432    "access_token:libaccesstoken_sdk",
433    "access_token:libnativetoken_shared",
434    "access_token:libtokensetproc_shared",
435    "c_utils:utils",
436    "eventhandler:libeventhandler",
437    "googletest:gmock_main",
438    "googletest:gtest_main",
439    "hilog:libhilog",
440    "image_framework:image_native",
441    "init:libbegetutil",
442    "ipc:ipc_single",
443    "window_manager:libwm",
444    "window_manager:libwsutils",
445  ]
446}
447
448ohos_unittest("InputManagerInjectTest") {
449  module_out_path = module_output_path
450  include_dirs = [
451    "${mmi_path}/frameworks/proxy/events/test",
452    "${mmi_path}/frameworks/proxy/event_handler/include",
453    "$root_out_dir/diff_libinput_mmi/export_include",
454    "${mmi_path}/service/filter/include",
455  ]
456
457  sources = [
458    "${mmi_path}/test/unittest/common/src/event_util_test.cpp",
459    "${mmi_path}/test/unittest/common/src/system_info.cpp",
460    "${mmi_path}/test/unittest/common/src/window_utils_test.cpp",
461    "events/src/input_manager_util.cpp",
462    "events/test/input_manager_inject_test.cpp",
463  ]
464
465  configs = [
466    "${mmi_path}:coverage_flags",
467    ":libmmi_test_util",
468  ]
469
470  deps = [
471    "${mmi_path}/frameworks/proxy:libmmi-client",
472    "${mmi_path}/util:libmmi-util",
473  ]
474  external_deps = [
475    "ability_runtime:abilitykit_native",
476    "access_token:libaccesstoken_sdk",
477    "access_token:libnativetoken_shared",
478    "access_token:libtokensetproc_shared",
479    "c_utils:utils",
480    "eventhandler:libeventhandler",
481    "googletest:gmock_main",
482    "googletest:gtest_main",
483    "hilog:libhilog",
484    "image_framework:image_native",
485    "init:libbegetutil",
486    "ipc:ipc_single",
487    "window_manager:libwm",
488    "window_manager:libwsutils",
489  ]
490}
491
492ohos_unittest("InputManagerManualTest") {
493  module_out_path = module_output_path
494
495  sources = [ "events/test/input_manager_manual_test.cpp" ]
496
497  configs = [
498    "${mmi_path}:coverage_flags",
499    ":libmmi_test_util",
500  ]
501
502  deps = [
503    "${mmi_path}/frameworks/proxy:libmmi-client",
504    "${mmi_path}/util:libmmi-util",
505  ]
506  external_deps = [
507    "access_token:libaccesstoken_sdk",
508    "access_token:libnativetoken_shared",
509    "access_token:libtokensetproc_shared",
510    "c_utils:utils",
511    "eventhandler:libeventhandler",
512    "googletest:gmock_main",
513    "googletest:gtest_main",
514    "hilog:libhilog",
515    "ipc:ipc_single",
516  ]
517}
518
519ohos_unittest("InputManagerFilterManualTest") {
520  module_out_path = module_output_path
521
522  sources = [ "events/test/input_manager_filter_manual_test.cpp" ]
523
524  configs = [
525    "${mmi_path}:coverage_flags",
526    ":libmmi_test_util",
527  ]
528
529  deps = [
530    "${mmi_path}/frameworks/proxy:libmmi-client",
531    "${mmi_path}/util:libmmi-util",
532  ]
533  external_deps = [
534    "access_token:libaccesstoken_sdk",
535    "access_token:libnativetoken_shared",
536    "access_token:libtokensetproc_shared",
537    "c_utils:utils",
538    "eventhandler:libeventhandler",
539    "googletest:gmock_main",
540    "googletest:gtest_main",
541    "hilog:libhilog",
542    "ipc:ipc_single",
543  ]
544}
545
546ohos_unittest("PointerEventTest") {
547  module_out_path = module_output_path
548  include_dirs = [ "$root_out_dir/diff_libinput_mmi/export_include" ]
549
550  sources = [
551    "${mmi_path}/test/unittest/common/src/event_util_test.cpp",
552    "${mmi_path}/test/unittest/common/src/window_utils_test.cpp",
553    "events/test/pointer_event_test.cpp",
554  ]
555
556  configs = [
557    "${mmi_path}:coverage_flags",
558    ":libmmi_test_util",
559  ]
560
561  cflags = [
562    "-Dprivate=public",
563    "-Dprotected=public",
564  ]
565
566  deps = [
567    "${mmi_path}/frameworks/proxy:libmmi-client",
568    "${mmi_path}/util:libmmi-util",
569  ]
570  external_deps = [
571    "ability_runtime:abilitykit_native",
572    "access_token:libaccesstoken_sdk",
573    "access_token:libnativetoken_shared",
574    "access_token:libtokensetproc_shared",
575    "c_utils:utils",
576    "eventhandler:libeventhandler",
577    "googletest:gmock_main",
578    "googletest:gtest_main",
579    "hilog:libhilog",
580    "image_framework:image_native",
581    "ipc:ipc_single",
582    "window_manager:libwm",
583    "window_manager:libwsutils",
584  ]
585}
586