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("../../multimodalinput_mini.gni")
16c29fa5a6Sopenharmony_cimmi_connect_manager_path = "${mmi_path}/service/connect_manager"
17c29fa5a6Sopenharmony_ci
18c29fa5a6Sopenharmony_ciconfig("mmi_connect_manager_config") {
19c29fa5a6Sopenharmony_ci  include_dirs = [
20c29fa5a6Sopenharmony_ci    "${mmi_path}/common/anco/comm/include",
21c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/common/include",
22c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/event/include",
23c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/proxy/include",
24c29fa5a6Sopenharmony_ci    "${mmi_path}/util/common/include",
25c29fa5a6Sopenharmony_ci    "${mmi_path}/util/network/include",
26c29fa5a6Sopenharmony_ci    "${mmi_path}/util/socket/include",
27c29fa5a6Sopenharmony_ci    "${mmi_path}/service/delegate_task/include",
28c29fa5a6Sopenharmony_ci    "${mmi_path}/service/filter/include",
29c29fa5a6Sopenharmony_ci    "${mmi_path}/service/message_handle/include",
30c29fa5a6Sopenharmony_ci    "${mmi_path}/service/module_loader/include",
31c29fa5a6Sopenharmony_ci    "${mmi_path}/service/nap_process/include",
32c29fa5a6Sopenharmony_ci    "${mmi_path}/service/permission_helper/include",
33c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/event_handler/include",
34c29fa5a6Sopenharmony_ci    "${mmi_connect_manager_path}/include",
35c29fa5a6Sopenharmony_ci  ]
36c29fa5a6Sopenharmony_ci}
37c29fa5a6Sopenharmony_ci
38c29fa5a6Sopenharmony_ciohos_source_set("mmi_connect_manager_service") {
39c29fa5a6Sopenharmony_ci  part_name = "input"
40c29fa5a6Sopenharmony_ci  subsystem_name = "multimodalinput"
41c29fa5a6Sopenharmony_ci
42c29fa5a6Sopenharmony_ci  sources = [
43c29fa5a6Sopenharmony_ci    "${mmi_connect_manager_path}/src/multimodal_input_connect_def_parcel.cpp",
44c29fa5a6Sopenharmony_ci    "${mmi_connect_manager_path}/src/multimodal_input_connect_stub.cpp",
45c29fa5a6Sopenharmony_ci  ]
46c29fa5a6Sopenharmony_ci
47c29fa5a6Sopenharmony_ci  sources += [
48c29fa5a6Sopenharmony_ci    "${mmi_connect_manager_path}/src/input_binder_client_death_recipient.cpp",
49c29fa5a6Sopenharmony_ci  ]
50c29fa5a6Sopenharmony_ci
51c29fa5a6Sopenharmony_ci  branch_protector_ret = "pac_ret"
52c29fa5a6Sopenharmony_ci  sanitize = {
53c29fa5a6Sopenharmony_ci    cfi = true
54c29fa5a6Sopenharmony_ci    cfi_cross_dso = true
55c29fa5a6Sopenharmony_ci    debug = false
56c29fa5a6Sopenharmony_ci  }
57c29fa5a6Sopenharmony_ci  defines = input_default_defines
58c29fa5a6Sopenharmony_ci
59c29fa5a6Sopenharmony_ci  configs = [ ":mmi_connect_manager_config" ]
60c29fa5a6Sopenharmony_ci
61c29fa5a6Sopenharmony_ci  external_deps = [
62c29fa5a6Sopenharmony_ci    "access_token:libaccesstoken_sdk",
63c29fa5a6Sopenharmony_ci    "bounds_checking_function:libsec_shared",
64c29fa5a6Sopenharmony_ci    "c_utils:utilsbase",
65c29fa5a6Sopenharmony_ci    "eventhandler:libeventhandler",
66c29fa5a6Sopenharmony_ci    "graphic_2d:2d_graphics",
67c29fa5a6Sopenharmony_ci    "hilog:libhilog",
68c29fa5a6Sopenharmony_ci    "image_framework:image_native",
69c29fa5a6Sopenharmony_ci    "ipc:ipc_single",
70c29fa5a6Sopenharmony_ci    "safwk:system_ability_fwk",
71c29fa5a6Sopenharmony_ci    "samgr:samgr_proxy",
72c29fa5a6Sopenharmony_ci  ]
73c29fa5a6Sopenharmony_ci
74c29fa5a6Sopenharmony_ci  if (is_ohos && is_clang && (target_cpu == "arm" || target_cpu == "arm64") &&
75c29fa5a6Sopenharmony_ci      enhanced_opt) {
76c29fa5a6Sopenharmony_ci    cflags = []
77c29fa5a6Sopenharmony_ci    if (input_feature_enable_pgo && input_feature_product != "default") {
78c29fa5a6Sopenharmony_ci      cflags += [
79c29fa5a6Sopenharmony_ci        "-fprofile-use=" +
80c29fa5a6Sopenharmony_ci            rebase_path("${input_feature_pgo_path}/libmmi-server.profdata",
81c29fa5a6Sopenharmony_ci                        root_build_dir),
82c29fa5a6Sopenharmony_ci        "-Wno-error=backend-plugin",
83c29fa5a6Sopenharmony_ci        "-Wno-profile-instr-out-of-date",
84c29fa5a6Sopenharmony_ci        "-Wno-profile-instr-unprofiled",
85c29fa5a6Sopenharmony_ci      ]
86c29fa5a6Sopenharmony_ci    }
87c29fa5a6Sopenharmony_ci    if (input_feature_product == "pc" && target_cpu == "arm64") {
88c29fa5a6Sopenharmony_ci      cflags += [ "-moutline-atomics" ]
89c29fa5a6Sopenharmony_ci    }
90c29fa5a6Sopenharmony_ci  }
91c29fa5a6Sopenharmony_ci}
92c29fa5a6Sopenharmony_ci
93c29fa5a6Sopenharmony_ciohos_source_set("mmi_connect_manager_proxy") {
94c29fa5a6Sopenharmony_ci  part_name = "input"
95c29fa5a6Sopenharmony_ci  subsystem_name = "multimodalinput"
96c29fa5a6Sopenharmony_ci
97c29fa5a6Sopenharmony_ci  branch_protector_ret = "pac_ret"
98c29fa5a6Sopenharmony_ci  sanitize = {
99c29fa5a6Sopenharmony_ci    cfi = true
100c29fa5a6Sopenharmony_ci    cfi_cross_dso = true
101c29fa5a6Sopenharmony_ci    debug = false
102c29fa5a6Sopenharmony_ci  }
103c29fa5a6Sopenharmony_ci  defines = input_default_defines
104c29fa5a6Sopenharmony_ci
105c29fa5a6Sopenharmony_ci  sources = [
106c29fa5a6Sopenharmony_ci    "${mmi_connect_manager_path}/src/multimodal_input_connect_death_recipient.cpp",
107c29fa5a6Sopenharmony_ci    "${mmi_connect_manager_path}/src/multimodal_input_connect_def_parcel.cpp",
108c29fa5a6Sopenharmony_ci    "${mmi_connect_manager_path}/src/multimodal_input_connect_manager.cpp",
109c29fa5a6Sopenharmony_ci    "${mmi_connect_manager_path}/src/multimodal_input_connect_proxy.cpp",
110c29fa5a6Sopenharmony_ci  ]
111c29fa5a6Sopenharmony_ci
112c29fa5a6Sopenharmony_ci  sources += [
113c29fa5a6Sopenharmony_ci    "${mmi_connect_manager_path}/src/input_binder_client_server.cpp",
114c29fa5a6Sopenharmony_ci    "${mmi_connect_manager_path}/src/input_binder_client_stub.cpp",
115c29fa5a6Sopenharmony_ci  ]
116c29fa5a6Sopenharmony_ci
117c29fa5a6Sopenharmony_ci  configs = [ ":mmi_connect_manager_config" ]
118c29fa5a6Sopenharmony_ci
119c29fa5a6Sopenharmony_ci  external_deps = [
120c29fa5a6Sopenharmony_ci    "bounds_checking_function:libsec_shared",
121c29fa5a6Sopenharmony_ci    "c_utils:utilsbase",
122c29fa5a6Sopenharmony_ci    "eventhandler:libeventhandler",
123c29fa5a6Sopenharmony_ci    "graphic_2d:2d_graphics",
124c29fa5a6Sopenharmony_ci    "hilog:libhilog",
125c29fa5a6Sopenharmony_ci    "image_framework:image_native",
126c29fa5a6Sopenharmony_ci    "ipc:ipc_single",
127c29fa5a6Sopenharmony_ci    "safwk:system_ability_fwk",
128c29fa5a6Sopenharmony_ci    "samgr:samgr_proxy",
129c29fa5a6Sopenharmony_ci  ]
130c29fa5a6Sopenharmony_ci}
131