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_ci
18c29fa5a6Sopenharmony_cidefines = input_default_defines
19c29fa5a6Sopenharmony_ci
20c29fa5a6Sopenharmony_cimodule_output_path = "multimodalinput/mmi_unit_out"
21c29fa5a6Sopenharmony_ci
22c29fa5a6Sopenharmony_ciconfig("libmmi_util_public_config") {
23c29fa5a6Sopenharmony_ci  include_dirs = [
24c29fa5a6Sopenharmony_ci    "common/include",
25c29fa5a6Sopenharmony_ci    "network/include",
26c29fa5a6Sopenharmony_ci    "socket/include",
27c29fa5a6Sopenharmony_ci  ]
28c29fa5a6Sopenharmony_ci}
29c29fa5a6Sopenharmony_ci
30c29fa5a6Sopenharmony_ciconfig("libmmi_util_config") {
31c29fa5a6Sopenharmony_ci  include_dirs = [
32c29fa5a6Sopenharmony_ci    "common/include",
33c29fa5a6Sopenharmony_ci    "network/include",
34c29fa5a6Sopenharmony_ci    "socket/include",
35c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/common/include",
36c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/event/include",
37c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/proxy/include",
38c29fa5a6Sopenharmony_ci  ]
39c29fa5a6Sopenharmony_ci
40c29fa5a6Sopenharmony_ci  if (is_ohos && is_clang && (target_cpu == "arm" || target_cpu == "arm64") &&
41c29fa5a6Sopenharmony_ci      enhanced_opt) {
42c29fa5a6Sopenharmony_ci    cflags = []
43c29fa5a6Sopenharmony_ci    if (input_feature_enable_pgo && input_feature_product != "default") {
44c29fa5a6Sopenharmony_ci      cflags += [
45c29fa5a6Sopenharmony_ci        "-fprofile-use=" +
46c29fa5a6Sopenharmony_ci            rebase_path("${input_feature_pgo_path}/libmmi-util.profdata",
47c29fa5a6Sopenharmony_ci                        root_build_dir),
48c29fa5a6Sopenharmony_ci        "-Wno-error=backend-plugin",
49c29fa5a6Sopenharmony_ci        "-Wno-profile-instr-out-of-date",
50c29fa5a6Sopenharmony_ci        "-Wno-profile-instr-unprofiled",
51c29fa5a6Sopenharmony_ci      ]
52c29fa5a6Sopenharmony_ci    }
53c29fa5a6Sopenharmony_ci    if (input_feature_product == "pc" && target_cpu == "arm64") {
54c29fa5a6Sopenharmony_ci      cflags += [ "-moutline-atomics" ]
55c29fa5a6Sopenharmony_ci    }
56c29fa5a6Sopenharmony_ci  }
57c29fa5a6Sopenharmony_ci}
58c29fa5a6Sopenharmony_ci
59c29fa5a6Sopenharmony_ciohos_rust_shared_ffi("mmi_rust_key_config") {
60c29fa5a6Sopenharmony_ci  sources = [ "rust_key/src/lib.rs" ]
61c29fa5a6Sopenharmony_ci  external_deps = [ "hilog:hilog_rust" ]
62c29fa5a6Sopenharmony_ci  subsystem_name = "multimodalinput"
63c29fa5a6Sopenharmony_ci  part_name = "input"
64c29fa5a6Sopenharmony_ci}
65c29fa5a6Sopenharmony_ci
66c29fa5a6Sopenharmony_ciohos_rust_unittest("rust_mmi_key_config_test") {
67c29fa5a6Sopenharmony_ci  module_out_path = module_output_path
68c29fa5a6Sopenharmony_ci  sources = [ "rust_key/src/lib.rs" ]
69c29fa5a6Sopenharmony_ci  deps = [ ":mmi_rust_key_config" ]
70c29fa5a6Sopenharmony_ci  external_deps = [ "hilog:hilog_rust" ]
71c29fa5a6Sopenharmony_ci  subsystem_name = "multimodalinput"
72c29fa5a6Sopenharmony_ci  part_name = "input"
73c29fa5a6Sopenharmony_ci}
74c29fa5a6Sopenharmony_ci
75c29fa5a6Sopenharmony_ciohos_shared_library("libmmi-util") {
76c29fa5a6Sopenharmony_ci  sources = libmmi_util_sources
77c29fa5a6Sopenharmony_ci  public_configs = [
78c29fa5a6Sopenharmony_ci    ":libmmi_util_public_config",
79c29fa5a6Sopenharmony_ci    "${mmi_path}:coverage_flags",
80c29fa5a6Sopenharmony_ci  ]
81c29fa5a6Sopenharmony_ci  version_script = "libmmi-util-map"
82c29fa5a6Sopenharmony_ci  configs = [ ":libmmi_util_config" ]
83c29fa5a6Sopenharmony_ci  branch_protector_ret = "pac_ret"
84c29fa5a6Sopenharmony_ci  deps = [ ":mmi_rust_key_config" ]
85c29fa5a6Sopenharmony_ci
86c29fa5a6Sopenharmony_ci  external_deps = [
87c29fa5a6Sopenharmony_ci    "c_utils:utils",
88c29fa5a6Sopenharmony_ci    "hilog:libhilog",
89c29fa5a6Sopenharmony_ci    "hisysevent:libhisysevent",
90c29fa5a6Sopenharmony_ci  ]
91c29fa5a6Sopenharmony_ci  public_deps = [ "${mmi_path}/frameworks/proxy:libmmi-common" ]
92c29fa5a6Sopenharmony_ci
93c29fa5a6Sopenharmony_ci  if (security_component_enable) {
94c29fa5a6Sopenharmony_ci    external_deps += [ "security_component_manager:libsecurity_component_sdk" ]
95c29fa5a6Sopenharmony_ci  }
96c29fa5a6Sopenharmony_ci  innerapi_tags = [ "platformsdk" ]
97c29fa5a6Sopenharmony_ci  part_name = "input"
98c29fa5a6Sopenharmony_ci  subsystem_name = "multimodalinput"
99c29fa5a6Sopenharmony_ci}
100c29fa5a6Sopenharmony_ci
101c29fa5a6Sopenharmony_ciohos_unittest("ut-mmi-util-out") {
102c29fa5a6Sopenharmony_ci  configs = [ "${mmi_path}:coverage_flags" ]
103c29fa5a6Sopenharmony_ci  module_out_path = module_output_path
104c29fa5a6Sopenharmony_ci  include_dirs = [
105c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/event_handler",
106c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/event_handler/include",
107c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/module_loader",
108c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/module_loader/include",
109c29fa5a6Sopenharmony_ci    "${mmi_path}/util/common",
110c29fa5a6Sopenharmony_ci    "${mmi_path}/util/common/include",
111c29fa5a6Sopenharmony_ci    "${mmi_path}/util/network",
112c29fa5a6Sopenharmony_ci    "${mmi_path}/util/network/include",
113c29fa5a6Sopenharmony_ci    "${mmi_path}/util/socket",
114c29fa5a6Sopenharmony_ci    "${mmi_path}/util/socket/include",
115c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/event_handle",
116c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/event_handle/include",
117c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/module_loader",
118c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/module_loader/include",
119c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/common/include",
120c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/proxy/include",
121c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/event/include",
122c29fa5a6Sopenharmony_ci    "$root_out_dir/diff_libinput_mmi/export_include",
123c29fa5a6Sopenharmony_ci
124c29fa5a6Sopenharmony_ci    "${mmi_path}/util/napi",
125c29fa5a6Sopenharmony_ci    "${mmi_path}/util/napi/include",
126c29fa5a6Sopenharmony_ci  ]
127c29fa5a6Sopenharmony_ci
128c29fa5a6Sopenharmony_ci  cflags = [
129c29fa5a6Sopenharmony_ci    "-Dprivate=public",
130c29fa5a6Sopenharmony_ci    "-Dprotected=public",
131c29fa5a6Sopenharmony_ci  ]
132c29fa5a6Sopenharmony_ci
133c29fa5a6Sopenharmony_ci  sources = [
134c29fa5a6Sopenharmony_ci    "napi/src/key_event_napi.cpp",
135c29fa5a6Sopenharmony_ci    "napi/src/util_napi_value.cpp",
136c29fa5a6Sopenharmony_ci    "network/test/circle_stream_buffer_test.cpp",
137c29fa5a6Sopenharmony_ci    "network/test/net_packet_test.cpp",
138c29fa5a6Sopenharmony_ci    "socket/test/stream_buffer_test.cpp",
139c29fa5a6Sopenharmony_ci    "socket/test/uds_client_test.cpp",
140c29fa5a6Sopenharmony_ci    "socket/test/uds_session_test.cpp",
141c29fa5a6Sopenharmony_ci    "socket/test/uds_socket_test.cpp",
142c29fa5a6Sopenharmony_ci  ]
143c29fa5a6Sopenharmony_ci
144c29fa5a6Sopenharmony_ci  deps = [
145c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy:libmmi-client",
146c29fa5a6Sopenharmony_ci    "${mmi_path}/util:libmmi-util",
147c29fa5a6Sopenharmony_ci  ]
148c29fa5a6Sopenharmony_ci  external_deps = [
149c29fa5a6Sopenharmony_ci    "c_utils:utils",
150c29fa5a6Sopenharmony_ci    "googletest:gmock_main",
151c29fa5a6Sopenharmony_ci    "googletest:gtest_main",
152c29fa5a6Sopenharmony_ci    "hilog:libhilog",
153c29fa5a6Sopenharmony_ci    "image_framework:image_native",
154c29fa5a6Sopenharmony_ci    "napi:ace_napi",
155c29fa5a6Sopenharmony_ci  ]
156c29fa5a6Sopenharmony_ci}
157c29fa5a6Sopenharmony_ci
158c29fa5a6Sopenharmony_ciohos_unittest("UdsClientTest") {
159c29fa5a6Sopenharmony_ci  configs = [ "${mmi_path}:coverage_flags" ]
160c29fa5a6Sopenharmony_ci  module_out_path = module_output_path
161c29fa5a6Sopenharmony_ci  include_dirs = [
162c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/event_handler",
163c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/event_handler/include",
164c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/module_loader",
165c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/module_loader/include",
166c29fa5a6Sopenharmony_ci    "${mmi_path}/util/common",
167c29fa5a6Sopenharmony_ci    "${mmi_path}/util/common/include",
168c29fa5a6Sopenharmony_ci    "${mmi_path}/util/network",
169c29fa5a6Sopenharmony_ci    "${mmi_path}/util/network/include",
170c29fa5a6Sopenharmony_ci    "${mmi_path}/util/socket",
171c29fa5a6Sopenharmony_ci    "${mmi_path}/util/socket/include",
172c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/event_handle",
173c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/event_handle/include",
174c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/module_loader",
175c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/module_loader/include",
176c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/common/include",
177c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/proxy/include",
178c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/event/include",
179c29fa5a6Sopenharmony_ci    "$root_out_dir/diff_libinput_mmi/export_include",
180c29fa5a6Sopenharmony_ci
181c29fa5a6Sopenharmony_ci    "${mmi_path}/util/napi",
182c29fa5a6Sopenharmony_ci    "${mmi_path}/util/napi/include",
183c29fa5a6Sopenharmony_ci  ]
184c29fa5a6Sopenharmony_ci
185c29fa5a6Sopenharmony_ci  cflags = [
186c29fa5a6Sopenharmony_ci    "-Dprivate=public",
187c29fa5a6Sopenharmony_ci    "-Dprotected=public",
188c29fa5a6Sopenharmony_ci  ]
189c29fa5a6Sopenharmony_ci
190c29fa5a6Sopenharmony_ci  sources = [
191c29fa5a6Sopenharmony_ci    "napi/src/key_event_napi.cpp",
192c29fa5a6Sopenharmony_ci    "napi/src/util_napi_value.cpp",
193c29fa5a6Sopenharmony_ci    "network/test/circle_stream_buffer_test.cpp",
194c29fa5a6Sopenharmony_ci    "network/test/net_packet_test.cpp",
195c29fa5a6Sopenharmony_ci    "socket/test/stream_buffer_test.cpp",
196c29fa5a6Sopenharmony_ci    "socket/test/uds_client_test.cpp",
197c29fa5a6Sopenharmony_ci    "socket/test/uds_session_test.cpp",
198c29fa5a6Sopenharmony_ci    "socket/test/uds_socket_test.cpp",
199c29fa5a6Sopenharmony_ci  ]
200c29fa5a6Sopenharmony_ci
201c29fa5a6Sopenharmony_ci  deps = [
202c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy:libmmi-client",
203c29fa5a6Sopenharmony_ci    "${mmi_path}/util:libmmi-util",
204c29fa5a6Sopenharmony_ci  ]
205c29fa5a6Sopenharmony_ci  external_deps = [
206c29fa5a6Sopenharmony_ci    "c_utils:utils",
207c29fa5a6Sopenharmony_ci    "googletest:gmock_main",
208c29fa5a6Sopenharmony_ci    "googletest:gtest_main",
209c29fa5a6Sopenharmony_ci    "hilog:libhilog",
210c29fa5a6Sopenharmony_ci    "image_framework:image_native",
211c29fa5a6Sopenharmony_ci    "napi:ace_napi",
212c29fa5a6Sopenharmony_ci  ]
213c29fa5a6Sopenharmony_ci}
214