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_conn_manager_config") {
18  include_dirs = [
19    "include",
20    "include/stub",
21    "$INNERKITS_ROOT/include",
22    "$INNERKITS_ROOT/netconnclient/include",
23    "$INNERKITS_ROOT/netconnclient/include/proxy",
24    "$INNERKITS_ROOT/netmanagernative/include",
25    "$INNERKITS_ROOT/netstatsclient/include",
26    "$NETCONNMANAGER_COMMON_DIR/include",
27    "$NETPOLICYMANAGER_SOURCE_DIR/include",
28    "$NETPOLICYMANAGER_SOURCE_DIR/include/stub",
29    "$NETSYSNATIVE_SOURCE_DIR/include/netsys",
30    "$NETSYSCONTROLLER_ROOT_DIR/include",
31    "$NETMANAGER_BASE_ROOT/utils/common_utils/include",
32    "$NETMANAGER_BASE_ROOT/services/netmanagernative/fwmarkclient/include",
33    "$INNERKITS_ROOT/netmanagernative/include",
34  ]
35}
36
37ohos_shared_library("net_conn_manager") {
38  sanitize = {
39    cfi = true
40    cfi_cross_dso = true
41    debug = false
42  }
43
44  branch_protector_ret = "pac_ret"
45
46  sources = [
47    "$NETCONNMANAGER_COMMON_DIR/src/route_utils.cpp",
48    "src/dns_result_call_back.cpp",
49    "src/nat464_service.cpp",
50    "src/net_activate.cpp",
51    "src/net_caps.cpp",
52    "src/net_conn_event_handler.cpp",
53    "src/net_conn_service.cpp",
54    "src/net_conn_service_iface.cpp",
55    "src/net_datashare_utils.cpp",
56    "src/net_factoryreset_callback.cpp",
57    "src/net_http_probe.cpp",
58    "src/net_http_probe_result.cpp",
59    "src/net_http_proxy_tracker.cpp",
60    "src/net_monitor.cpp",
61    "src/net_proxy_userinfo.cpp",
62    "src/net_supplier.cpp",
63    "src/network.cpp",
64    "src/probe_thread.cpp",
65    "src/stub/net_conn_callback_proxy.cpp",
66    "src/stub/net_conn_service_stub.cpp",
67    "src/stub/net_detection_callback_proxy.cpp",
68    "src/stub/net_factoryreset_callback_proxy.cpp",
69    "src/stub/net_interface_callback_proxy.cpp",
70    "src/stub/net_supplier_callback_proxy.cpp",
71  ]
72  use_exceptions = true
73
74  configs = [ ":net_conn_manager_config" ]
75
76  deps = [
77    "$INNERKITS_ROOT/netpolicyclient:net_policy_manager_if",
78    "$INNERKITS_ROOT/netstatsclient:net_stats_manager_if",
79    "$NETCONNMANAGER_COMMON_DIR:net_service_common",
80    "$NETMANAGER_BASE_ROOT/services/netmanagernative:netsys_native_manager",
81    "$NETMANAGER_BASE_ROOT/services/netmanagernative/fwmarkclient:fwmark_client",
82    "$NETMANAGER_BASE_ROOT/utils:net_manager_common",
83    "$NETSYSCONTROLLER_ROOT_DIR:netsys_controller",
84  ]
85
86  cflags = [
87    "-fvisibility=hidden",
88    "-fdata-sections",
89    "-ffunction-sections",
90    "-Os",
91    "-fstack-protector-strong",
92    "-D_FORTIFY_SOURCE=2",
93    "-O2",
94  ]
95
96  cflags_cc = [
97    "-fvisibility-inlines-hidden",
98    "-Os",
99    "-fstack-protector-strong",
100    "-D_FORTIFY_SOURCE=2",
101    "-O2",
102  ]
103
104  ldflags = [
105    "-Wl,--exclude-libs=ALL",
106    "-Wl,--gc-sections",
107  ]
108
109  external_deps = [
110    "ability_base:want",
111    "ability_base:zuri",
112    "ability_runtime:ability_manager",
113    "cJSON:cjson",
114    "c_utils:utils",
115    "common_event_service:cesfwk_innerkits",
116    "curl:curl_shared",
117    "data_share:datashare_common",
118    "data_share:datashare_consumer",
119    "eventhandler:libeventhandler",
120    "ffrt:libffrt",
121    "hisysevent:libhisysevent",
122    "hitrace:hitrace_meter",
123    "init:libbegetutil",
124    "ipc:ipc_core",
125    "os_account:os_account_innerkits",
126    "relational_store:native_rdb",
127    "safwk:system_ability_fwk",
128    "samgr:samgr_proxy",
129  ]
130
131  defines = [
132    "NETMGR_LOG_TAG = \"NetConnManager\"",
133    "LOG_DOMAIN = 0xD0015B0",
134  ]
135
136  if (enable_netmgr_debug) {
137    defines += [ "NETMGR_DEBUG" ]
138  }
139
140  if (enable_sys_func) {
141    defines += [ "SYS_FUNC" ]
142  }
143
144  if (netmanager_base_enable_feature_wearable_distributed_net) {
145    defines += [ "FEATURE_WEARABLE_DISTRIBUTED_NET_ENABLE" ]
146  }
147
148  if (netmanager_base_feature_support_powermanager) {
149    defines += [ "FEATURE_SUPPORT_POWERMANAGER" ]
150  }
151
152  external_deps += [ "hilog:libhilog" ]
153
154  part_name = "netmanager_base"
155  subsystem_name = "communication"
156}
157
158ohos_static_library("net_conn_manager_static") {
159  testonly = true
160  sanitize = {
161    cfi = true
162    cfi_cross_dso = true
163    debug = false
164  }
165
166  branch_protector_ret = "pac_ret"
167  use_exceptions = true
168  sources = [
169    "$NETCONNMANAGER_COMMON_DIR/src/route_utils.cpp",
170    "src/dns_result_call_back.cpp",
171    "src/nat464_service.cpp",
172    "src/net_activate.cpp",
173    "src/net_caps.cpp",
174    "src/net_conn_event_handler.cpp",
175    "src/net_conn_service.cpp",
176    "src/net_conn_service_iface.cpp",
177    "src/net_datashare_utils.cpp",
178    "src/net_factoryreset_callback.cpp",
179    "src/net_http_probe.cpp",
180    "src/net_http_probe_result.cpp",
181    "src/net_http_proxy_tracker.cpp",
182    "src/net_monitor.cpp",
183    "src/net_proxy_userinfo.cpp",
184    "src/net_supplier.cpp",
185    "src/network.cpp",
186    "src/probe_thread.cpp",
187    "src/stub/net_conn_callback_proxy.cpp",
188    "src/stub/net_conn_service_stub.cpp",
189    "src/stub/net_detection_callback_proxy.cpp",
190    "src/stub/net_factoryreset_callback_proxy.cpp",
191    "src/stub/net_interface_callback_proxy.cpp",
192    "src/stub/net_supplier_callback_proxy.cpp",
193  ]
194
195  configs = [ ":net_conn_manager_config" ]
196
197  deps = [
198    "$INNERKITS_ROOT/netpolicyclient:net_policy_manager_if",
199    "$INNERKITS_ROOT/netstatsclient:net_stats_manager_if",
200    "$NETCONNMANAGER_COMMON_DIR:net_service_common",
201    "$NETMANAGER_BASE_ROOT/services/netmanagernative:netsys_native_manager",
202    "$NETMANAGER_BASE_ROOT/services/netmanagernative/fwmarkclient:fwmark_client",
203    "$NETMANAGER_BASE_ROOT/utils:net_manager_common",
204    "$NETSYSCONTROLLER_ROOT_DIR:netsys_controller",
205  ]
206
207  external_deps = [
208    "ability_base:zuri",
209    "ability_runtime:ability_manager",
210    "cJSON:cjson",
211    "c_utils:utils",
212    "common_event_service:cesfwk_innerkits",
213    "curl:curl_shared",
214    "data_share:datashare_common",
215    "data_share:datashare_consumer",
216    "eventhandler:libeventhandler",
217    "ffrt:libffrt",
218    "hisysevent:libhisysevent",
219    "hitrace:hitrace_meter",
220    "init:libbegetutil",
221    "ipc:ipc_core",
222    "os_account:os_account_innerkits",
223    "relational_store:native_rdb",
224    "safwk:system_ability_fwk",
225    "samgr:samgr_proxy",
226  ]
227
228  defines = [
229    "NETMGR_LOG_TAG = \"NetConnManager\"",
230    "LOG_DOMAIN = 0xD0015B0",
231  ]
232
233  if (enable_netmgr_debug) {
234    defines += [ "NETMGR_DEBUG" ]
235  }
236
237  if (enable_sys_func) {
238    defines += [ "SYS_FUNC" ]
239  }
240
241  external_deps += [ "hilog:libhilog" ]
242
243  part_name = "netmanager_base"
244  subsystem_name = "communication"
245}
246