1c29fa5a6Sopenharmony_ci# Copyright (c) 2021-2022 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("//build/test.gni")
16c29fa5a6Sopenharmony_ciimport("../../multimodalinput_mini.gni")
17c29fa5a6Sopenharmony_cimodule_output_path = "multimodalinput/mmi_unit_out"
18c29fa5a6Sopenharmony_ci
19c29fa5a6Sopenharmony_ciconfig("event_injection_config") {
20c29fa5a6Sopenharmony_ci  visibility = [ ":*" ]
21c29fa5a6Sopenharmony_ci
22c29fa5a6Sopenharmony_ci  include_dirs = [
23c29fa5a6Sopenharmony_ci    "include",
24c29fa5a6Sopenharmony_ci    "${mmi_path}/util/common/include",
25c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/common/include",
26c29fa5a6Sopenharmony_ci  ]
27c29fa5a6Sopenharmony_ci}
28c29fa5a6Sopenharmony_ci
29c29fa5a6Sopenharmony_ciconfig("event_injection_public_config") {
30c29fa5a6Sopenharmony_ci  include_dirs = [
31c29fa5a6Sopenharmony_ci    "include",
32c29fa5a6Sopenharmony_ci    "${mmi_path}/util/common/include",
33c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/common/include",
34c29fa5a6Sopenharmony_ci    "//third_party/FreeBSD/sys/dev/evdev",
35c29fa5a6Sopenharmony_ci  ]
36c29fa5a6Sopenharmony_ci}
37c29fa5a6Sopenharmony_ci
38c29fa5a6Sopenharmony_ciohos_source_set("event-injection") {
39c29fa5a6Sopenharmony_ci  sources = event_injection_sources
40c29fa5a6Sopenharmony_ci  branch_protector_ret = "pac_ret"
41c29fa5a6Sopenharmony_ci  sanitize = {
42c29fa5a6Sopenharmony_ci    cfi = true
43c29fa5a6Sopenharmony_ci    cfi_cross_dso = true
44c29fa5a6Sopenharmony_ci    debug = false
45c29fa5a6Sopenharmony_ci  }
46c29fa5a6Sopenharmony_ci  configs = [
47c29fa5a6Sopenharmony_ci    ":event_injection_config",
48c29fa5a6Sopenharmony_ci    ":event_injection_public_config",
49c29fa5a6Sopenharmony_ci  ]
50c29fa5a6Sopenharmony_ci
51c29fa5a6Sopenharmony_ci  deps = [
52c29fa5a6Sopenharmony_ci    "${mmi_path}/service/connect_manager:mmi_connect_manager_proxy",
53c29fa5a6Sopenharmony_ci    "${mmi_path}/service/filter:mmi_event_filter_service",
54c29fa5a6Sopenharmony_ci    "${mmi_path}/util:libmmi-util",
55c29fa5a6Sopenharmony_ci  ]
56c29fa5a6Sopenharmony_ci
57c29fa5a6Sopenharmony_ci  external_deps = [
58c29fa5a6Sopenharmony_ci    "cJSON:cjson",
59c29fa5a6Sopenharmony_ci    "c_utils:utils",
60c29fa5a6Sopenharmony_ci    "ipc:ipc_single",
61c29fa5a6Sopenharmony_ci    "libinput:libinput-third-mmi",
62c29fa5a6Sopenharmony_ci  ]
63c29fa5a6Sopenharmony_ci
64c29fa5a6Sopenharmony_ci  part_name = "input"
65c29fa5a6Sopenharmony_ci  subsystem_name = "multimodalinput"
66c29fa5a6Sopenharmony_ci}
67c29fa5a6Sopenharmony_ci
68c29fa5a6Sopenharmony_ciohos_unittest("ut-event-injection-out") {
69c29fa5a6Sopenharmony_ci  module_out_path = module_output_path
70c29fa5a6Sopenharmony_ci
71c29fa5a6Sopenharmony_ci  configs = [ "${mmi_path}:coverage_flags" ]
72c29fa5a6Sopenharmony_ci
73c29fa5a6Sopenharmony_ci  cflags = [
74c29fa5a6Sopenharmony_ci    "-Dprivate=public",
75c29fa5a6Sopenharmony_ci    "-Dprotected=public",
76c29fa5a6Sopenharmony_ci  ]
77c29fa5a6Sopenharmony_ci
78c29fa5a6Sopenharmony_ci  include_dirs = [
79c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/event_handler",
80c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/event_handler/include",
81c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/module_loader",
82c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/module_loader/include",
83c29fa5a6Sopenharmony_ci    "${mmi_path}/util/common",
84c29fa5a6Sopenharmony_ci    "${mmi_path}/util/common/include",
85c29fa5a6Sopenharmony_ci    "${mmi_path}/util/network",
86c29fa5a6Sopenharmony_ci    "${mmi_path}/util/network/include",
87c29fa5a6Sopenharmony_ci    "${mmi_path}/util/socket",
88c29fa5a6Sopenharmony_ci    "${mmi_path}/util/socket/include",
89c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/event_handle",
90c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/event_handle/include",
91c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/module_loader",
92c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/module_loader/include",
93c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/common/include",
94c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/proxy/include",
95c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/event/include",
96c29fa5a6Sopenharmony_ci    "${mmi_path}/service/include",
97c29fa5a6Sopenharmony_ci    "${mmi_path}/service/device_scalability/include",
98c29fa5a6Sopenharmony_ci    "${mmi_path}/service/event_dispatch/include",
99c29fa5a6Sopenharmony_ci    "${mmi_path}/service/event_handler/include",
100c29fa5a6Sopenharmony_ci    "${mmi_path}/service/event_standard/include",
101c29fa5a6Sopenharmony_ci    "${mmi_path}/service/libinput_adapter/include",
102c29fa5a6Sopenharmony_ci    "${mmi_path}/service/message_handle/include",
103c29fa5a6Sopenharmony_ci    "${mmi_path}/service/module_loader/include",
104c29fa5a6Sopenharmony_ci    "${mmi_path}/service/window_manager/include",
105c29fa5a6Sopenharmony_ci    "${mmi_path}/tools/event_inject/include",
106c29fa5a6Sopenharmony_ci    "${mmi_path}/uinput",
107c29fa5a6Sopenharmony_ci    "$root_out_dir/diff_libinput_mmi/export_include",
108c29fa5a6Sopenharmony_ci  ]
109c29fa5a6Sopenharmony_ci
110c29fa5a6Sopenharmony_ci  sources = [
111c29fa5a6Sopenharmony_ci    "test/device_base_test.cpp",
112c29fa5a6Sopenharmony_ci    "test/get_device_node_test.cpp",
113c29fa5a6Sopenharmony_ci    "test/get_device_object_test.cpp",
114c29fa5a6Sopenharmony_ci    "test/injection_tools_help_func_test.cpp",
115c29fa5a6Sopenharmony_ci    "test/processing_finger_device_test.cpp",
116c29fa5a6Sopenharmony_ci    "test/processing_game_pad_device_test.cpp",
117c29fa5a6Sopenharmony_ci    "test/processing_joystick_device_test.cpp",
118c29fa5a6Sopenharmony_ci    "test/processing_keyboard_device_test.cpp",
119c29fa5a6Sopenharmony_ci    "test/processing_mouse_device_test.cpp",
120c29fa5a6Sopenharmony_ci    "test/processing_pad_device_test.cpp",
121c29fa5a6Sopenharmony_ci    "test/processing_pen_device_test.cpp",
122c29fa5a6Sopenharmony_ci    "test/processing_touch_screen_device_test.cpp",
123c29fa5a6Sopenharmony_ci  ]
124c29fa5a6Sopenharmony_ci
125c29fa5a6Sopenharmony_ci  deps = [
126c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy:libmmi-client",
127c29fa5a6Sopenharmony_ci    "${mmi_path}/service:libmmi-server",
128c29fa5a6Sopenharmony_ci    "${mmi_path}/tools/event_inject:event-injection",
129c29fa5a6Sopenharmony_ci    "${mmi_path}/util:libmmi-util",
130c29fa5a6Sopenharmony_ci  ]
131c29fa5a6Sopenharmony_ci
132c29fa5a6Sopenharmony_ci  external_deps = [
133c29fa5a6Sopenharmony_ci    "cJSON:cjson",
134c29fa5a6Sopenharmony_ci    "c_utils:utils",
135c29fa5a6Sopenharmony_ci    "googletest:gmock_main",
136c29fa5a6Sopenharmony_ci    "googletest:gtest_main",
137c29fa5a6Sopenharmony_ci    "hilog:libhilog",
138c29fa5a6Sopenharmony_ci    "image_framework:image_native",
139c29fa5a6Sopenharmony_ci    "ipc:ipc_single",
140c29fa5a6Sopenharmony_ci    "libinput:libinput-third-mmi",
141c29fa5a6Sopenharmony_ci  ]
142c29fa5a6Sopenharmony_ci}
143c29fa5a6Sopenharmony_ci
144c29fa5a6Sopenharmony_ciohos_executable("mmi-event-injection") {
145c29fa5a6Sopenharmony_ci  sources = [ "src/mmi_event_simulate_main.cpp" ]
146c29fa5a6Sopenharmony_ci  branch_protector_ret = "pac_ret"
147c29fa5a6Sopenharmony_ci  sanitize = {
148c29fa5a6Sopenharmony_ci    cfi = true
149c29fa5a6Sopenharmony_ci    cfi_cross_dso = true
150c29fa5a6Sopenharmony_ci    debug = false
151c29fa5a6Sopenharmony_ci  }
152c29fa5a6Sopenharmony_ci  configs = [ ":event_injection_public_config" ]
153c29fa5a6Sopenharmony_ci
154c29fa5a6Sopenharmony_ci  deps = [
155c29fa5a6Sopenharmony_ci    "${mmi_path}/tools/event_inject:event-injection",
156c29fa5a6Sopenharmony_ci    "${mmi_path}/util:libmmi-util",
157c29fa5a6Sopenharmony_ci  ]
158c29fa5a6Sopenharmony_ci  external_deps = [
159c29fa5a6Sopenharmony_ci    "cJSON:cjson",
160c29fa5a6Sopenharmony_ci    "c_utils:utils",
161c29fa5a6Sopenharmony_ci    "libinput:libinput-third-mmi",
162c29fa5a6Sopenharmony_ci  ]
163c29fa5a6Sopenharmony_ci  install_enable = true
164c29fa5a6Sopenharmony_ci  part_name = "input"
165c29fa5a6Sopenharmony_ci  subsystem_name = "multimodalinput"
166c29fa5a6Sopenharmony_ci}
167