# Copyright (c) 2022-2025 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//base/notification/distributed_notification_service/notification.gni")
import("//build/ohos.gni")
config("native_module_config") {
visibility = [ ":*" ]
include_dirs = []
cflags = []
if (target_cpu == "arm") {
cflags += [ "-DBINDER_IPC_32BIT" ]
}
}
ohos_shared_library("notificationmanager") {
sanitize = {
integer_overflow = true
ubsan = true
boundary_sanitize = true
cfi = true
cfi_cross_dso = true
debug = false
}
branch_protector_ret = "pac_ret"
branch_protector_frt = "bti"
include_dirs = [
"../../include",
"../../include/manager",
]
configs = [ ":native_module_config" ]
cflags = notification_size_opt_cflags
ldflags = notification_size_opt_ldflags
sources = [
"../ans_template.cpp",
"../cancel.cpp",
"../disable_notification.cpp",
"../display_badge.cpp",
"../distributed.cpp",
"../disturb_mode.cpp",
"../enable_notification.cpp",
"../get_active.cpp",
"../js_ans_dialog_callback.cpp",
"../priority.cpp",
"../publish.cpp",
"init_module.cpp",
"local_live_view_subscribe.cpp",
"napi_badge_query_callback.cpp",
"napi_cancel.cpp",
"napi_disable_notification.cpp",
"napi_display_badge.cpp",
"napi_distributed.cpp",
"napi_distributed_enable.cpp",
"napi_disturb_mode.cpp",
"napi_enable_notification.cpp",
"napi_geofence_enabled.cpp",
"napi_get_active.cpp",
"napi_get_notification_parameters.cpp",
"napi_local_live_view.cpp",
"napi_notification_switch.cpp",
"napi_open_settings.cpp",
"napi_priority.cpp",
"napi_publish.cpp",
"napi_push.cpp",
"napi_push_callback.cpp",
"napi_reminder_info.cpp",
"napi_remove_group.cpp",
"napi_ringtone_info_by_bundle.cpp",
"napi_silent_reminder_enable.cpp",
"napi_slot.cpp",
"napi_snooze_notification.cpp",
"napi_statistics.cpp",
"napi_sync_config.cpp",
"napi_template.cpp",
]
version_script = "libnotificationmanager.map"
deps = [
"${frameworks_path}/js/napi:notification_napi_common",
"${frameworks_module_ans_path}:ans_innerkits",
"${frameworks_module_reminder_path}:reminder_innerkits",
]
external_deps = [
"ability_base:want",
"ability_base:zuri",
"ability_runtime:ability_context_native",
"ability_runtime:ability_manager",
"ability_runtime:abilitykit_native",
"ability_runtime:app_context",
"ability_runtime:napi_base_context",
"ability_runtime:napi_common",
"ability_runtime:napi_wantagent_common",
"ability_runtime:runtime",
"ability_runtime:ui_extension",
"ability_runtime:wantagent_innerkits",
"access_token:libaccesstoken_sdk",
"access_token:libtokenid_sdk",
"ace_engine:ace_uicontent",
"c_utils:utils",
"ffrt:libffrt",
"hilog:libhilog",
"hitrace:libhitracechain",
"image_framework:image",
"ipc:ipc_single",
"napi:ace_napi",
"node:node_header_notice",
"os_account:os_account_innerkits",
"relational_store:native_rdb",
]
defines = []
if (distributed_notification_service_disable_control) {
defines += [ "DISABLE_NOTIFICATION_FEATURE_ENABLE" ]
}
if (distributed_notification_service_feature_badge_manager) {
defines += [ "ANS_FEATURE_BADGE_MANAGER" ]
}
if (distributed_notification_service_feature_local_liveview) {
defines += [ "ANS_FEATURE_LIVEVIEW_LOCAL_LIVEVIEW" ]
}
if (distributed_notification_service_feature_distributed_supported) {
defines += [ "ANS_FEATURE_DISTRIBUTED_SUPPORTED" ]
}
if (distributed_notification_service_feature_original_distributed) {
defines += [ "ANS_FEATURE_ORIGINAL_DISTRIBUTED" ]
}
if (distributed_notification_service_feature_disturb_manager) {
defines += [ "ANS_FEATURE_DISTURB_MANAGER" ]
}
if (distributed_notification_service_feature_slot_manager) {
defines += [ "ANS_FEATURE_SLOT_MANAGER" ]
}
if (distributed_notification_service_feature_additional_config) {
defines += [ "ANS_FEATURE_ADDITIONAL_CONFIG" ]
}
if (distributed_notification_service_feature_open_notification_settings) {
defines += [ "ANS_FEATURE_OPEN_NOTIFICATION_SETTINGS" ]
}
if (distributed_notification_service_feature_priority_notification) {
defines += [ "ANS_FEATURE_PRIORITY_NOTIFICATION" ]
}
if (distributed_notification_service_feature_notification_statistics) {
defines += [ "ANS_FEATURE_NOTIFICATION_STATISTICS" ]
}
if (distributed_notification_service_feature_api_metrics) {
external_deps += [ "api_metrics:histogrammanager" ]
defines += [ "ANS_FEATURE_API_METRICS_HISTOGRAM" ]
}
relative_install_dir = "module"
subsystem_name = "${subsystem_name}"
part_name = "${component_name}"
}