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