1# Copyright (c) 2022-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
17ohos_shared_library("network") {
18  sanitize = {
19    cfi = true
20    cfi_cross_dso = true
21    boundary_sanitize = true
22    all_ubsan = true
23    debug = false
24  }
25
26  branch_protector_ret = "pac_ret"
27
28  include_dirs = [
29    "async_context/include",
30    "async_work/include",
31    "constant/include",
32    "network_exec/include",
33    "network_module/include",
34    "observer/include",
35    "options/include",
36    "$NETMANAGER_BASE_ROOT/utils/log/include",
37  ]
38
39  sources = [
40    "async_context/src/gettype_context.cpp",
41    "async_context/src/subscribe_context.cpp",
42    "async_context/src/unsubscribe_context.cpp",
43    "async_work/src/network_async_work.cpp",
44    "network_exec/src/network_exec.cpp",
45    "network_module/src/network_module.cpp",
46    "observer/src/network_observer.cpp",
47  ]
48
49  cflags = [
50    "-fstack-protector-strong",
51    "-D_FORTIFY_SOURCE=2",
52    "-O2",
53  ]
54
55  cflags_cc = [
56    "-fstack-protector-strong",
57    "-D_FORTIFY_SOURCE=2",
58    "-O2",
59  ]
60
61  deps = [
62    "$INNERKITS_ROOT/netconnclient:net_conn_manager_if",
63    "$NETMANAGER_BASE_ROOT/utils/napi_utils:napi_utils",
64  ]
65
66  external_deps = [
67    "c_utils:utils",
68    "hilog:libhilog",
69    "ipc:ipc_core",
70    "libuv:uv",
71    "napi:ace_napi",
72  ]
73
74  relative_install_dir = "module"
75  part_name = "netmanager_base"
76  subsystem_name = "communication"
77}
78