• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2023-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("//base/notification/common_event_service/event.gni")
15import("//build/config/components/idl_tool/idl.gni")
16
17idl_gen_interface("static_subscriber_interface") {
18  sources = [ "IStaticSubscriber.idl" ]
19  log_domainid = "0xD001202"
20  log_tag = "Ces"
21  subsystem_name = "notification"
22  part_name = "common_event_service"
23}
24
25config("static_subscriber_ipc_public_config") {
26  visibility = [ ":*" ]
27
28  include_dirs = [ "${target_gen_dir}" ]
29}
30
31ohos_shared_library("static_subscriber_ipc") {
32  sanitize = {
33    integer_overflow = true
34    ubsan = true
35    boundary_sanitize = true
36    cfi = true
37    cfi_cross_dso = true
38    debug = false
39  }
40  branch_protector_ret = "pac_ret"
41
42  include_dirs = []
43
44  sources = []
45
46  configs = []
47  public_configs = [ ":static_subscriber_ipc_public_config" ]
48
49  deps = [
50    ":static_subscriber_proxy",
51    ":static_subscriber_stub",
52    "${ces_native_path}:cesfwk_innerkits",
53  ]
54
55  external_deps = [
56    "ability_base:want",
57    "c_utils:utils",
58    "hilog:libhilog",
59    "ipc:ipc_core",
60  ]
61
62  subsystem_name = "notification"
63  part_name = "common_event_service"
64}
65
66config("static_subscriber_extension_public_config") {
67  visibility = [ ":*" ]
68
69  include_dirs = [ "${ces_extension_path}/include" ]
70}
71
72ohos_shared_library("static_subscriber_extension") {
73  sanitize = {
74    integer_overflow = true
75    ubsan = true
76    boundary_sanitize = true
77    cfi = true
78    cfi_cross_dso = true
79    debug = false
80  }
81  branch_protector_ret = "pac_ret"
82
83  include_dirs = []
84
85  sources = [
86    "${ces_extension_path}/src/js_static_subscriber_extension.cpp",
87    "${ces_extension_path}/src/js_static_subscriber_extension_context.cpp",
88    "${ces_extension_path}/src/static_subscriber_extension.cpp",
89    "${ces_extension_path}/src/static_subscriber_extension_context.cpp",
90    "${ces_extension_path}/src/static_subscriber_stub_impl.cpp",
91  ]
92
93  configs = []
94  public_configs = [ ":static_subscriber_extension_public_config" ]
95
96  deps = [
97    ":static_subscriber_ipc",
98    "${ces_native_path}:cesfwk_innerkits",
99  ]
100
101  external_deps = [
102    "ability_base:want",
103    "ability_runtime:ability_context_native",
104    "ability_runtime:ability_manager",
105    "ability_runtime:app_context",
106    "ability_runtime:extensionkit_native",
107    "ability_runtime:napi_common",
108    "ability_runtime:runtime",
109    "access_token:libaccesstoken_sdk",
110    "access_token:libtokenid_sdk",
111    "c_utils:utils",
112    "eventhandler:libeventhandler",
113    "hilog:libhilog",
114    "ipc:ipc_core",
115    "ipc:ipc_napi",
116    "napi:ace_napi",
117  ]
118
119  subsystem_name = "notification"
120  part_name = "common_event_service"
121}
122
123config("static_subscriber_extension_ani_public_config") {
124  visibility = [ ":*" ]
125
126  include_dirs = [
127    "${ces_extension_path}/include",
128    "${ces_extension_path}/include/ani",
129  ]
130}
131
132ohos_shared_library("static_subscriber_extension_ani") {
133  sanitize = {
134    integer_overflow = true
135    ubsan = true
136    boundary_sanitize = true
137    cfi = true
138    cfi_cross_dso = true
139    debug = false
140  }
141  branch_protector_ret = "pac_ret"
142
143  include_dirs = []
144
145  sources = [
146    "${ces_extension_path}/src/ani/ani_common_event_utils.cpp",
147    "${ces_extension_path}/src/ani/ani_event_errors_utils.cpp",
148    "${ces_extension_path}/src/ani/ani_static_subscriber_extension.cpp",
149    "${ces_extension_path}/src/ani/ani_static_subscriber_extension_context.cpp",
150    "${ces_extension_path}/src/static_subscriber_extension.cpp",
151    "${ces_extension_path}/src/static_subscriber_extension_context.cpp",
152    "${ces_extension_path}/src/static_subscriber_stub_impl.cpp",
153  ]
154
155  configs = []
156  public_configs = [ ":static_subscriber_extension_ani_public_config" ]
157
158  deps = [
159    ":static_subscriber_extension",
160    ":static_subscriber_ipc",
161    "${ces_native_path}:cesfwk_innerkits"
162  ]
163
164  external_deps = [
165    "ability_base:want",
166    "ability_runtime:ability_business_error",
167    "ability_runtime:ability_context_native",
168    "ability_runtime:ability_manager",
169    "ability_runtime:ani_common",
170    "ability_runtime:app_context",
171    "ability_runtime:extensionkit_native",
172    "ability_runtime:napi_common",
173    "ability_runtime:runtime",
174    "access_token:libaccesstoken_sdk",
175    "access_token:libtokenid_sdk",
176    "c_utils:utils",
177    "eventhandler:libeventhandler",
178    "hilog:libhilog",
179    "ipc:ipc_core",
180    "ipc:ipc_napi",
181    "napi:ace_napi",
182    "runtime_core:ani",
183  ]
184
185  subsystem_name = "notification"
186  part_name = "common_event_service"
187}
188
189config("static_subscriber_extension_module_public_config") {
190  visibility = [ ":*" ]
191
192  include_dirs = [ "${ces_extension_path}/include/loader" ]
193}
194
195ohos_shared_library("static_subscriber_extension_module") {
196  sanitize = {
197    integer_overflow = true
198    ubsan = true
199    boundary_sanitize = true
200    cfi = true
201    cfi_cross_dso = true
202    debug = false
203  }
204  branch_protector_ret = "pac_ret"
205
206  include_dirs = [ "${ces_core_path}/include" ]
207
208  sources = [ "${ces_extension_path}/src/loader/static_subscriber_extension_module_loader.cpp" ]
209
210  configs = []
211  public_configs = [ ":static_subscriber_extension_module_public_config" ]
212
213  deps = [ ":static_subscriber_extension" ]
214
215  external_deps = [
216    "ability_base:configuration",
217    "ability_base:session_info",
218    "ability_runtime:ability_manager",
219    "ability_runtime:app_context",
220    "ability_runtime:extensionkit_native",
221    "ability_runtime:runtime",
222    "bundle_framework:appexecfwk_base",
223    "bundle_framework:appexecfwk_core",
224    "c_utils:utils",
225    "hilog:libhilog",
226    "ipc:ipc_core",
227    "ipc:ipc_napi",
228    "napi:ace_napi",
229  ]
230
231  relative_install_dir = "extensionability"
232  subsystem_name = "notification"
233  part_name = "common_event_service"
234}
235
236group("cesfwk_extension") {
237  deps = [
238    ":static_subscriber_extension",
239    ":static_subscriber_extension_ani",
240    ":static_subscriber_extension_module",
241    ":static_subscriber_ipc",
242  ]
243}
244
245ohos_source_set("static_subscriber_proxy") {
246  sanitize = {
247    integer_overflow = true
248    ubsan = true
249    boundary_sanitize = true
250    cfi = true
251    cfi_cross_dso = true
252    debug = false
253  }
254  public_configs = [ ":static_subscriber_ipc_public_config" ]
255  output_values = get_target_outputs(":static_subscriber_interface")
256  sources = filter_include(output_values, [ "*_proxy.cpp" ])
257  deps = [
258    ":static_subscriber_interface",
259    "${ces_native_path}:cesfwk_innerkits",
260  ]
261  external_deps = [
262    "ability_base:want",
263    "c_utils:utils",
264    "hilog:libhilog",
265    "ipc:ipc_core",
266  ]
267  subsystem_name = "notification"
268  part_name = "common_event_service"
269}
270
271ohos_source_set("static_subscriber_stub") {
272  sanitize = {
273    integer_overflow = true
274    ubsan = true
275    boundary_sanitize = true
276    cfi = true
277    cfi_cross_dso = true
278    debug = false
279  }
280  public_configs = [ ":static_subscriber_ipc_public_config" ]
281  output_values = get_target_outputs(":static_subscriber_interface")
282  sources = filter_include(output_values, [ "*_stub.cpp" ])
283  deps = [
284    ":static_subscriber_interface",
285    "${ces_native_path}:cesfwk_innerkits",
286  ]
287  external_deps = [
288    "ability_base:want",
289    "c_utils:utils",
290    "hilog:libhilog",
291    "ipc:ipc_core",
292  ]
293  subsystem_name = "notification"
294  part_name = "common_event_service"
295}
296