1# Copyright (c) 2021-2025 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/config/components/idl_tool/idl.gni") 15import("//build/ohos.gni") 16import("../../multimodalinput_mini.gni") 17mmi_connect_manager_path = "${mmi_path}/service/connect_manager" 18 19idl_gen_interface("multimodal_input_interface") { 20 sources = [ "IMultimodalInputConnect.idl" ] 21 log_domainid = "0xD002801" 22 log_tag = "MultimodalInputConnect" 23} 24 25idl_gen_interface("multimodal_input_binder_client_interface") { 26 sources = [ "IInputBinderClient.idl" ] 27} 28 29config("mmi_connect_manager_config") { 30 include_dirs = [ 31 "${mmi_path}/common/anco/comm/include", 32 "${mmi_path}/interfaces/native/innerkits/common/include", 33 "${mmi_path}/interfaces/native/innerkits/event/include", 34 "${mmi_path}/interfaces/native/innerkits/proxy/include", 35 "${mmi_path}/util/common/include", 36 "${mmi_path}/util/network/include", 37 "${mmi_path}/util/socket/include", 38 "${mmi_path}/service/delegate_task/include", 39 "${mmi_path}/service/filter/include", 40 "${mmi_path}/service/message_handle/include", 41 "${mmi_path}/service/module_loader/include", 42 "${mmi_path}/service/nap_process/include", 43 "${mmi_path}/service/permission_helper/include", 44 "${mmi_path}/frameworks/proxy/event_handler/include", 45 "${mmi_connect_manager_path}/include", 46 "${mmi_path}/util/json_parser/include", 47 "${mmi_path}/service/product_property_config/include", 48 "${mmi_path}/service/custom_config_parser/include", 49 "${target_gen_dir}", 50 ] 51} 52 53ohos_source_set("mmi_connect_manager_service") { 54 part_name = "input" 55 subsystem_name = "multimodalinput" 56 57 sources = [ 58 "${mmi_connect_manager_path}/src/multimodal_input_connect_def_parcel.cpp", 59 ] 60 61 sources += [ 62 "${mmi_connect_manager_path}/src/input_binder_client_death_recipient.cpp", 63 ] 64 65 output_values = get_target_outputs(":multimodal_input_interface") 66 sources += filter_include(output_values, [ "*_stub.cpp" ]) 67 68 output_clinet_values = get_target_outputs(":multimodal_input_binder_client_interface") 69 sources += filter_include(output_clinet_values, [ "*_proxy.cpp" ]) 70 71 branch_protector_ret = "pac_ret" 72 sanitize = { 73 cfi = true 74 cfi_cross_dso = true 75 debug = false 76 } 77 defines = input_default_defines 78 79 configs = [ 80 ":mmi_connect_manager_config", 81 "${mmi_path}/common/anco/comm:mmi_anco_channel_config", 82 "${mmi_path}/service/filter:mmi_event_filter_config", 83 ] 84 85 deps = [ 86 ":multimodal_input_interface", 87 ":multimodal_input_binder_client_interface", 88 "${mmi_path}/frameworks/proxy:libmmi-common", 89 ] 90 91 external_deps = [ 92 "access_token:libaccesstoken_sdk", 93 "config_policy:configpolicy_util", 94 "cJSON:cjson", 95 "eventhandler:libeventhandler", 96 "image_framework:image_native", 97 "ipc:ipc_single", 98 "samgr:samgr_proxy", 99 ] 100 101 if (input_feature_product != "watch") { 102 external_deps += [ 103 "bounds_checking_function:libsec_shared", 104 "c_utils:utilsbase", 105 "graphic_2d:2d_graphics", 106 "hilog:libhilog", 107 "safwk:system_ability_fwk", 108 ] 109 } 110 111 if (is_ohos && is_clang && (target_cpu == "arm" || target_cpu == "arm64") && 112 enhanced_opt) { 113 cflags = [] 114 if (input_feature_enable_pgo && input_feature_product != "default") { 115 cflags += [ 116 "-fprofile-use=" + 117 rebase_path("${input_feature_pgo_path}/libmmi-server.profdata", 118 root_build_dir), 119 "-Wno-error=backend-plugin", 120 "-Wno-profile-instr-out-of-date", 121 "-Wno-profile-instr-unprofiled", 122 "-Oz", 123 ] 124 } 125 if (input_feature_product == "pc" && target_cpu == "arm64") { 126 cflags += [ 127 "-moutline-atomics", 128 "-Oz", 129 ] 130 } 131 } 132} 133 134ohos_source_set("mmi_connect_manager_proxy") { 135 part_name = "input" 136 subsystem_name = "multimodalinput" 137 138 branch_protector_ret = "pac_ret" 139 sanitize = { 140 cfi = true 141 cfi_cross_dso = true 142 debug = false 143 } 144 defines = input_default_defines 145 146 sources = [ 147 "${mmi_connect_manager_path}/src/multimodal_input_connect_death_recipient.cpp", 148 "${mmi_connect_manager_path}/src/multimodal_input_connect_def_parcel.cpp", 149 "${mmi_connect_manager_path}/src/multimodal_input_connect_manager.cpp", 150 ] 151 152 sources += [ 153 "${mmi_connect_manager_path}/src/input_binder_client_server.cpp", 154 "${mmi_connect_manager_path}/src/input_binder_client_server_impl.cpp", 155 ] 156 157 output_values = get_target_outputs(":multimodal_input_interface") 158 sources += filter_include(output_values, [ "*_proxy.cpp" ]) 159 160 output_clinet_values = get_target_outputs(":multimodal_input_binder_client_interface") 161 sources += filter_include(output_clinet_values, [ "*_stub.cpp" ]) 162 163 configs = [ 164 ":mmi_connect_manager_config", 165 "${mmi_path}/common/anco/comm:mmi_anco_channel_config", 166 "${mmi_path}/service/filter:mmi_event_filter_config", 167 ] 168 169 deps = [ 170 ":multimodal_input_interface", 171 ":multimodal_input_binder_client_interface", 172 "${mmi_path}/frameworks/proxy:libmmi-common", 173 ] 174 external_deps = [ 175 "bounds_checking_function:libsec_shared", 176 "c_utils:utilsbase", 177 "eventhandler:libeventhandler", 178 "graphic_2d:2d_graphics", 179 "hilog:libhilog", 180 "image_framework:image_native", 181 "ipc:ipc_single", 182 "safwk:system_ability_fwk", 183 "samgr:samgr_proxy", 184 ] 185} 186