1c29fa5a6Sopenharmony_ci# Copyright (c) 2024 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("//build/test.gni")
16c29fa5a6Sopenharmony_ciimport("../../../multimodalinput_mini.gni")
17c29fa5a6Sopenharmony_ci
18c29fa5a6Sopenharmony_cimodule_output_path = "multimodalinput/mmi_unit_out"
19c29fa5a6Sopenharmony_ci
20c29fa5a6Sopenharmony_ciconfig("mmi_anco_channel_config") {
21c29fa5a6Sopenharmony_ci  include_dirs = [
22c29fa5a6Sopenharmony_ci    "include",
23c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/event/include",
24c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/proxy/include",
25c29fa5a6Sopenharmony_ci  ]
26c29fa5a6Sopenharmony_ci
27c29fa5a6Sopenharmony_ci  if (input_ext_feature_anco) {
28c29fa5a6Sopenharmony_ci    include_dirs += [ "${mmi_ext_path}/anco_uds_manager/include" ]
29c29fa5a6Sopenharmony_ci  }
30c29fa5a6Sopenharmony_ci}
31c29fa5a6Sopenharmony_ci
32c29fa5a6Sopenharmony_ciohos_source_set("mmi_anco_channel_proxy") {
33c29fa5a6Sopenharmony_ci  branch_protector_ret = "pac_ret"
34c29fa5a6Sopenharmony_ci
35c29fa5a6Sopenharmony_ci  defines = input_default_defines
36c29fa5a6Sopenharmony_ci
37c29fa5a6Sopenharmony_ci  sources = [
38c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/events/src/i_anco_consumer.cpp",
39c29fa5a6Sopenharmony_ci    "src/anco_channel_death_recipient.cpp",
40c29fa5a6Sopenharmony_ci    "src/anco_channel_proxy.cpp",
41c29fa5a6Sopenharmony_ci  ]
42c29fa5a6Sopenharmony_ci  branch_protector_ret = "pac_ret"
43c29fa5a6Sopenharmony_ci  sanitize = {
44c29fa5a6Sopenharmony_ci    cfi = true
45c29fa5a6Sopenharmony_ci    cfi_cross_dso = true
46c29fa5a6Sopenharmony_ci    debug = false
47c29fa5a6Sopenharmony_ci  }
48c29fa5a6Sopenharmony_ci
49c29fa5a6Sopenharmony_ci  configs = [ ":mmi_anco_channel_config" ]
50c29fa5a6Sopenharmony_ci
51c29fa5a6Sopenharmony_ci  public_configs = [ ":mmi_anco_channel_config" ]
52c29fa5a6Sopenharmony_ci
53c29fa5a6Sopenharmony_ci  deps = [ "${mmi_path}/util:libmmi-util" ]
54c29fa5a6Sopenharmony_ci
55c29fa5a6Sopenharmony_ci  external_deps = [
56c29fa5a6Sopenharmony_ci    "hilog:libhilog",
57c29fa5a6Sopenharmony_ci    "ipc:ipc_single",
58c29fa5a6Sopenharmony_ci  ]
59c29fa5a6Sopenharmony_ci
60c29fa5a6Sopenharmony_ci  part_name = "${mmi_part_name}"
61c29fa5a6Sopenharmony_ci  subsystem_name = "${mmi_subsystem_name}"
62c29fa5a6Sopenharmony_ci}
63c29fa5a6Sopenharmony_ci
64c29fa5a6Sopenharmony_ciohos_source_set("mmi_anco_channel_stub") {
65c29fa5a6Sopenharmony_ci  branch_protector_ret = "pac_ret"
66c29fa5a6Sopenharmony_ci
67c29fa5a6Sopenharmony_ci  defines = input_default_defines
68c29fa5a6Sopenharmony_ci
69c29fa5a6Sopenharmony_ci  sources = [
70c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/events/src/i_anco_consumer.cpp",
71c29fa5a6Sopenharmony_ci    "src/anco_channel.cpp",
72c29fa5a6Sopenharmony_ci    "src/anco_channel_stub.cpp",
73c29fa5a6Sopenharmony_ci  ]
74c29fa5a6Sopenharmony_ci  branch_protector_ret = "pac_ret"
75c29fa5a6Sopenharmony_ci  sanitize = {
76c29fa5a6Sopenharmony_ci    cfi = true
77c29fa5a6Sopenharmony_ci    cfi_cross_dso = true
78c29fa5a6Sopenharmony_ci    debug = false
79c29fa5a6Sopenharmony_ci  }
80c29fa5a6Sopenharmony_ci
81c29fa5a6Sopenharmony_ci  configs = [ ":mmi_anco_channel_config" ]
82c29fa5a6Sopenharmony_ci
83c29fa5a6Sopenharmony_ci  public_configs = [ ":mmi_anco_channel_config" ]
84c29fa5a6Sopenharmony_ci
85c29fa5a6Sopenharmony_ci  deps = [ "${mmi_path}/util:libmmi-util" ]
86c29fa5a6Sopenharmony_ci
87c29fa5a6Sopenharmony_ci  external_deps = [
88c29fa5a6Sopenharmony_ci    "hilog:libhilog",
89c29fa5a6Sopenharmony_ci    "ipc:ipc_single",
90c29fa5a6Sopenharmony_ci  ]
91c29fa5a6Sopenharmony_ci
92c29fa5a6Sopenharmony_ci  part_name = "${mmi_part_name}"
93c29fa5a6Sopenharmony_ci  subsystem_name = "${mmi_subsystem_name}"
94c29fa5a6Sopenharmony_ci}
95c29fa5a6Sopenharmony_ci
96c29fa5a6Sopenharmony_ciohos_unittest("AncoChannelStubTest") {
97c29fa5a6Sopenharmony_ci  module_out_path = module_output_path
98c29fa5a6Sopenharmony_ci
99c29fa5a6Sopenharmony_ci  include_dirs = [
100c29fa5a6Sopenharmony_ci    "${mmi_path}/common/anco/comm/include",
101c29fa5a6Sopenharmony_ci    "${mmi_path}/interfaces/native/innerkits/proxy/include",
102c29fa5a6Sopenharmony_ci  ]
103c29fa5a6Sopenharmony_ci
104c29fa5a6Sopenharmony_ci  cflags = [
105c29fa5a6Sopenharmony_ci    "-Dprivate=public",
106c29fa5a6Sopenharmony_ci    "-Dprotected=public",
107c29fa5a6Sopenharmony_ci  ]
108c29fa5a6Sopenharmony_ci
109c29fa5a6Sopenharmony_ci  deps = [ "${mmi_path}/util:libmmi-util" ]
110c29fa5a6Sopenharmony_ci
111c29fa5a6Sopenharmony_ci  sources = [
112c29fa5a6Sopenharmony_ci    "${mmi_path}/frameworks/proxy/events/src/i_anco_consumer.cpp",
113c29fa5a6Sopenharmony_ci    "src/anco_channel_stub.cpp",
114c29fa5a6Sopenharmony_ci    "test/anco_channel_stub_ex_test.cpp",
115c29fa5a6Sopenharmony_ci    "test/mock.cpp",
116c29fa5a6Sopenharmony_ci  ]
117c29fa5a6Sopenharmony_ci
118c29fa5a6Sopenharmony_ci  external_deps = [
119c29fa5a6Sopenharmony_ci    "c_utils:utils",
120c29fa5a6Sopenharmony_ci    "googletest:gmock_main",
121c29fa5a6Sopenharmony_ci    "hilog:libhilog",
122c29fa5a6Sopenharmony_ci    "ipc:ipc_single",
123c29fa5a6Sopenharmony_ci  ]
124c29fa5a6Sopenharmony_ci}
125