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