1# Copyright (c) 2023 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/ohos.gni")
16
17config("static_subscriber_ipc_public_config") {
18  visibility = [ ":*" ]
19
20  include_dirs = [ "${ces_extension_path}/include/ipc" ]
21}
22
23ohos_shared_library("static_subscriber_ipc") {
24  sanitize = {
25    integer_overflow = true
26    ubsan = true
27    boundary_sanitize = true
28    cfi = true
29    cfi_cross_dso = true
30    debug = false
31  }
32  branch_protector_ret = "pac_ret"
33
34  include_dirs = []
35
36  sources = [
37    "${ces_extension_path}/src/ipc/static_subscriber_proxy.cpp",
38    "${ces_extension_path}/src/ipc/static_subscriber_stub.cpp",
39  ]
40
41  configs = []
42  public_configs = [ ":static_subscriber_ipc_public_config" ]
43
44  deps = [ "${ces_native_path}:cesfwk_innerkits" ]
45
46  external_deps = [
47    "ability_base:want",
48    "c_utils:utils",
49    "hilog:libhilog",
50    "ipc:ipc_core",
51  ]
52
53  subsystem_name = "notification"
54  part_name = "common_event_service"
55}
56
57config("static_subscriber_extension_public_config") {
58  visibility = [ ":*" ]
59
60  include_dirs = [ "${ces_extension_path}/include" ]
61}
62
63ohos_shared_library("static_subscriber_extension") {
64  sanitize = {
65    integer_overflow = true
66    ubsan = true
67    boundary_sanitize = true
68    cfi = true
69    cfi_cross_dso = true
70    debug = false
71  }
72  branch_protector_ret = "pac_ret"
73
74  include_dirs = [
75    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime",
76    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime/context",
77  ]
78
79  sources = [
80    "${ces_extension_path}/src/js_static_subscriber_extension.cpp",
81    "${ces_extension_path}/src/js_static_subscriber_extension_context.cpp",
82    "${ces_extension_path}/src/static_subscriber_extension.cpp",
83    "${ces_extension_path}/src/static_subscriber_extension_context.cpp",
84    "${ces_extension_path}/src/static_subscriber_stub_impl.cpp",
85  ]
86
87  configs = []
88  public_configs = [ ":static_subscriber_extension_public_config" ]
89
90  deps = [
91    ":static_subscriber_ipc",
92    "${ces_native_path}:cesfwk_innerkits",
93  ]
94
95  external_deps = [
96    "ability_base:want",
97    "ability_runtime:ability_context_native",
98    "ability_runtime:ability_manager",
99    "ability_runtime:app_context",
100    "ability_runtime:extensionkit_native",
101    "ability_runtime:napi_common",
102    "ability_runtime:runtime",
103    "access_token:libaccesstoken_sdk",
104    "access_token:libtokenid_sdk",
105    "c_utils:utils",
106    "eventhandler:libeventhandler",
107    "hilog:libhilog",
108    "ipc:ipc_core",
109    "napi:ace_napi",
110  ]
111
112  subsystem_name = "notification"
113  part_name = "common_event_service"
114}
115
116config("static_subscriber_extension_module_public_config") {
117  visibility = [ ":*" ]
118
119  include_dirs = [ "${ces_extension_path}/include/loader" ]
120}
121
122ohos_shared_library("static_subscriber_extension_module") {
123  sanitize = {
124    integer_overflow = true
125    ubsan = true
126    boundary_sanitize = true
127    cfi = true
128    cfi_cross_dso = true
129    debug = false
130  }
131  branch_protector_ret = "pac_ret"
132
133  include_dirs = [
134    "${ability_runtime_path}/interfaces/kits/native/ability/native",
135    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime",
136    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime/context",
137    "${ability_runtime_services_path}/common/include",
138    "${ces_core_path}/include",
139  ]
140
141  sources = [ "${ces_extension_path}/src/loader/static_subscriber_extension_module_loader.cpp" ]
142
143  configs = []
144  public_configs = [ ":static_subscriber_extension_module_public_config" ]
145
146  deps = [ ":static_subscriber_extension" ]
147
148  external_deps = [
149    "ability_base:configuration",
150    "ability_base:session_info",
151    "ability_runtime:ability_manager",
152    "ability_runtime:extensionkit_native",
153    "bundle_framework:appexecfwk_base",
154    "bundle_framework:appexecfwk_core",
155    "c_utils:utils",
156    "hilog:libhilog",
157    "ipc:ipc_core",
158    "napi:ace_napi",
159  ]
160
161  relative_install_dir = "extensionability"
162  subsystem_name = "notification"
163  part_name = "common_event_service"
164}
165
166group("cesfwk_extension") {
167  deps = [
168    ":static_subscriber_extension",
169    ":static_subscriber_extension_module",
170    ":static_subscriber_ipc",
171  ]
172}
173