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_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 ] 52 } 53 if (input_feature_product == "pc" && target_cpu == "arm64") { 54 cflags += [ "-moutline-atomics" ] 55 } 56 } 57} 58 59ohos_rust_shared_ffi("mmi_rust_key_config") { 60 sources = [ "rust_key/src/lib.rs" ] 61 external_deps = [ "hilog:hilog_rust" ] 62 subsystem_name = "multimodalinput" 63 part_name = "input" 64} 65 66ohos_rust_unittest("rust_mmi_key_config_test") { 67 module_out_path = module_output_path 68 sources = [ "rust_key/src/lib.rs" ] 69 deps = [ ":mmi_rust_key_config" ] 70 external_deps = [ "hilog:hilog_rust" ] 71 subsystem_name = "multimodalinput" 72 part_name = "input" 73} 74 75ohos_shared_library("libmmi-util") { 76 sources = libmmi_util_sources 77 public_configs = [ 78 ":libmmi_util_public_config", 79 "${mmi_path}:coverage_flags", 80 ] 81 82 configs = [ ":libmmi_util_config" ] 83 branch_protector_ret = "pac_ret" 84 deps = [ ":mmi_rust_key_config" ] 85 86 external_deps = [ 87 "c_utils:utils", 88 "hilog:libhilog", 89 "hisysevent:libhisysevent", 90 ] 91 public_deps = [ "${mmi_path}/frameworks/proxy:libmmi-common" ] 92 93 if (security_component_enable) { 94 external_deps += [ "security_component_manager:libsecurity_component_sdk" ] 95 } 96 innerapi_tags = [ "platformsdk" ] 97 part_name = "input" 98 subsystem_name = "multimodalinput" 99 100 if (!input_feature_coverage && is_ohos && is_clang && 101 (target_cpu == "arm" || target_cpu == "arm64") && enhanced_opt) { 102 ldflags = [ "-Wl,-Bsymbolic" ] 103 } 104} 105 106ohos_unittest("ut-mmi-util-out") { 107 configs = [ "${mmi_path}:coverage_flags" ] 108 module_out_path = module_output_path 109 include_dirs = [ 110 "//third_party/googletest/googletest/include", 111 "${mmi_path}/frameworks/proxy/event_handler", 112 "${mmi_path}/frameworks/proxy/event_handler/include", 113 "${mmi_path}/frameworks/proxy/module_loader", 114 "${mmi_path}/frameworks/proxy/module_loader/include", 115 "${mmi_path}/util/common", 116 "${mmi_path}/util/common/include", 117 "${mmi_path}/util/network", 118 "${mmi_path}/util/network/include", 119 "${mmi_path}/util/socket", 120 "${mmi_path}/util/socket/include", 121 "${mmi_path}/frameworks/proxy/event_handle", 122 "${mmi_path}/frameworks/proxy/event_handle/include", 123 "${mmi_path}/frameworks/proxy/module_loader", 124 "${mmi_path}/frameworks/proxy/module_loader/include", 125 "${mmi_path}/interfaces/native/innerkits/common/include", 126 "${mmi_path}/interfaces/native/innerkits/proxy/include", 127 "${mmi_path}/interfaces/native/innerkits/event/include", 128 "$root_out_dir/diff_libinput_mmi/export_include", 129 ] 130 131 cflags = [ 132 "-Dprivate=public", 133 "-Dprotected=public", 134 ] 135 136 sources = [ 137 "network/test/circle_stream_buffer_test.cpp", 138 "network/test/net_packet_test.cpp", 139 "socket/test/stream_buffer_test.cpp", 140 "socket/test/uds_client_test.cpp", 141 "socket/test/uds_session_test.cpp", 142 "socket/test/uds_socket_test.cpp", 143 ] 144 145 deps = [ 146 "${mmi_path}/frameworks/proxy:libmmi-client", 147 "${mmi_path}/util:libmmi-util", 148 "//third_party/googletest:gmock_main", 149 "//third_party/googletest:gtest_main", 150 ] 151 external_deps = [ 152 "c_utils:utils", 153 "hilog:libhilog", 154 "image_framework:image_native", 155 ] 156} 157