• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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