1# Copyright (c) 2021-2024 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("//build/ohos.gni") 15import("//foundation/communication/netmanager_base/netmanager_base_config.gni") 16 17config("net_stats_manager_config") { 18 include_dirs = [ 19 "$INNERKITS_ROOT/netmanagernative/include", 20 "$INNERKITS_ROOT/netstatsclient/include/proxy", 21 "$NETCONNMANAGER_COMMON_DIR/include", 22 "include", 23 "include/stub", 24 "include/common", 25 "$NETSYSBPFMAP_SOURCE_DIR/include", 26 "$NETSYSCONTROLLER_ROOT_DIR/include", 27 "$NETSYSNATIVE_SOURCE_DIR/include/manager", 28 "$NETSYSNATIVE_SOURCE_DIR/include/netsys/wrapper", 29 "$NETSYSNATIVE_SOURCE_DIR/include/netsys", 30 "$NETMANAGER_BASE_ROOT/services/netmanagernative/bpf/include", 31 ] 32} 33 34ohos_shared_library("net_stats_manager") { 35 sanitize = { 36 cfi = true 37 cfi_cross_dso = true 38 boundary_sanitize = true 39 ubsan = true 40 debug = false 41 } 42 43 branch_protector_ret = "pac_ret" 44 45 sources = [ 46 "$NETMANAGER_BASE_ROOT/frameworks/js/napi/netstats/src/net_stats_cached.cpp", 47 "$NETMANAGER_BASE_ROOT/frameworks/js/napi/netstats/src/net_stats_service.cpp", 48 "src/common/net_stats_service_common.cpp", 49 "src/net_stats_callback.cpp", 50 "src/net_stats_data_handler.cpp", 51 "src/net_stats_database_helper.cpp", 52 "src/net_stats_history.cpp", 53 "src/net_stats_listener.cpp", 54 "src/net_stats_sqlite_statement.cpp", 55 "src/net_stats_subscriber.cpp", 56 "src/stub/net_stats_callback_proxy.cpp", 57 ] 58 59 configs = [ ":net_stats_manager_config" ] 60 61 deps = [ 62 "$INNERKITS_ROOT/netconnclient:net_conn_manager_if", 63 "$INNERKITS_ROOT/netstatsclient:net_stats_parcel", 64 "$INNERKITS_ROOT/netstatsclient:netstats_service_interface_stub", 65 "$NETCONNMANAGER_COMMON_DIR:net_service_common", 66 "$NETMANAGER_BASE_ROOT/services/netmanagernative:netsys_native_manager", 67 "$NETMANAGER_BASE_ROOT/utils:net_data_share", 68 "$NETMANAGER_BASE_ROOT/utils:net_manager_common", 69 "$NETSYSCONTROLLER_ROOT_DIR:netsys_controller", 70 ] 71 72 cflags = common_cflags + [ 73 "-fvisibility=hidden", 74 ] 75 76 cflags_cc = common_cflags + [ 77 "-fvisibility=hidden", 78 "-fvisibility-inlines-hidden", 79 ] 80 81 ldflags = [ 82 "-Wl,--exclude-libs=ALL", 83 "-Wl,--gc-sections", 84 ] 85 86 external_deps = [ 87 "ability_base:want", 88 "ability_runtime:wantagent_innerkits", 89 "bounds_checking_function:libsec_shared", 90 "common_event_service:cesfwk_innerkits", 91 "eventhandler:libeventhandler", 92 "ffrt:libffrt", 93 "hitrace:hitrace_meter", 94 "ipc:ipc_core", 95 "safwk:system_ability_fwk", 96 "samgr:samgr_proxy", 97 "sqlite:sqlite", 98 "time_service:time_client", 99 "os_account:os_account_innerkits", 100 ] 101 102 defines = [ 103 "USE_SQLITE_SYMBOLS", 104 "NETMGR_LOG_TAG = \"NetStatsClient\"", 105 "LOG_DOMAIN = 0xD0015B0", 106 ] 107 108 if (netmanager_base_enable_netsys_access_policy_diag_listen) { 109 external_deps += [ 110 "ability_runtime:ability_manager", 111 "ability_runtime:dataobs_manager", 112 "cJSON:cjson", 113 "cellular_data:tel_cellular_data_api", 114 "core_service:tel_core_service_api", 115 "data_share:datashare_consumer", 116 "distributed_notification_service:ans_innerkits", 117 "i18n:intl_util", 118 "relational_store:native_rdb", 119 ] 120 defines += [ "SUPPORT_TRAFFIC_STATISTIC" ] 121 sources += [ 122 "$NETMANAGER_BASE_ROOT/frameworks/js/napi/netstats/src/net_stats_settings_observer.cpp", 123 "$NETMANAGER_BASE_ROOT/frameworks/js/napi/netstats/src/net_stats_trafficLimit_dialog.cpp", 124 "src/net_stats_base.cpp", 125 "src/net_stats_notification.cpp", 126 "src/net_stats_utils.cpp", 127 ] 128 } 129 130 if (netmanager_base_share_traffic_limit_enable) { 131 defines += [ "SUPPORT_NETWORK_SHARE" ] 132 external_deps += [ "netmanager_ext:net_tether_manager_if" ] 133 } 134 135 if (enable_netmgr_debug) { 136 defines += [ "NETMGR_DEBUG" ] 137 } 138 139 external_deps += [ "hilog:libhilog" ] 140 141 part_name = "netmanager_base" 142 subsystem_name = "communication" 143} 144 145ohos_static_library("net_stats_manager_static") { 146 testonly = true 147 sanitize = { 148 cfi = true 149 cfi_cross_dso = true 150 debug = false 151 } 152 153 branch_protector_ret = "pac_ret" 154 155 sources = [ 156 "$NETMANAGER_BASE_ROOT/frameworks/js/napi/netstats/src/net_stats_cached.cpp", 157 "$NETMANAGER_BASE_ROOT/frameworks/js/napi/netstats/src/net_stats_service.cpp", 158 "src/common/net_stats_service_common.cpp", 159 "src/net_stats_callback.cpp", 160 "src/net_stats_data_handler.cpp", 161 "src/net_stats_database_helper.cpp", 162 "src/net_stats_history.cpp", 163 "src/net_stats_listener.cpp", 164 "src/net_stats_subscriber.cpp", 165 "src/net_stats_sqlite_statement.cpp", 166 "src/stub/net_stats_callback_proxy.cpp", 167 ] 168 169 configs = [ ":net_stats_manager_config" ] 170 171 deps = [ 172 "$INNERKITS_ROOT/netconnclient:net_conn_manager_if", 173 "$INNERKITS_ROOT/netstatsclient:net_stats_parcel", 174 "$INNERKITS_ROOT/netstatsclient:netstats_service_interface_stub", 175 "$NETCONNMANAGER_COMMON_DIR:net_service_common", 176 "$NETMANAGER_BASE_ROOT/services/netmanagernative:netsys_native_manager", 177 "$NETMANAGER_BASE_ROOT/utils:net_data_share", 178 "$NETMANAGER_BASE_ROOT/utils:net_manager_common", 179 "$NETSYSCONTROLLER_ROOT_DIR:netsys_controller", 180 ] 181 182 external_deps = [ 183 "ability_base:want", 184 "ability_runtime:wantagent_innerkits", 185 "common_event_service:cesfwk_innerkits", 186 "eventhandler:libeventhandler", 187 "ffrt:libffrt", 188 "hitrace:hitrace_meter", 189 "ipc:ipc_core", 190 "safwk:system_ability_fwk", 191 "samgr:samgr_proxy", 192 "sqlite:sqlite", 193 "time_service:time_client", 194 "os_account:os_account_innerkits" 195 ] 196 197 defines = [ 198 "USE_SQLITE_SYMBOLS", 199 "NETMGR_LOG_TAG = \"NetStatsClient\"", 200 "LOG_DOMAIN = 0xD0015B0", 201 "UNITTEST_FORBID_FFRT", 202 "NETMANAGER_TEST", 203 ] 204 205 if (netmanager_base_enable_netsys_access_policy_diag_listen) { 206 external_deps += [ 207 "ability_runtime:ability_manager", 208 "ability_runtime:dataobs_manager", 209 "cJSON:cjson", 210 "cellular_data:tel_cellular_data_api", 211 "core_service:tel_core_service_api", 212 "data_share:datashare_consumer", 213 "distributed_notification_service:ans_innerkits", 214 "i18n:intl_util", 215 "relational_store:native_rdb", 216 "os_account:os_account_innerkits" 217 ] 218 defines += [ "SUPPORT_TRAFFIC_STATISTIC" ] 219 sources += [ 220 "$NETMANAGER_BASE_ROOT/frameworks/js/napi/netstats/src/net_stats_settings_observer.cpp", 221 "$NETMANAGER_BASE_ROOT/frameworks/js/napi/netstats/src/net_stats_trafficLimit_dialog.cpp", 222 "src/net_stats_base.cpp", 223 "src/net_stats_notification.cpp", 224 "src/net_stats_utils.cpp", 225 ] 226 } 227 228 if (netmanager_base_share_traffic_limit_enable) { 229 defines += [ "SUPPORT_NETWORK_SHARE" ] 230 external_deps += [ "netmanager_ext:net_tether_manager_if" ] 231 } 232 233 if (enable_netmgr_debug) { 234 defines += [ "NETMGR_DEBUG" ] 235 } 236 237 external_deps += [ "hilog:libhilog" ] 238 239 part_name = "netmanager_base" 240 subsystem_name = "communication" 241} 242