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