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