• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2022 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
14DSOFTBUS_ROOT_PATH = "./../../.."
15import("$DSOFTBUS_ROOT_PATH/dsoftbus.gni")
16
17NSTACKX_ROOT = "$DSOFTBUS_ROOT_PATH/components/nstackx"
18fillp_source = [
19  "src/app_lib/src/api.c",
20  "src/app_lib/src/epoll_app.c",
21  "src/app_lib/src/fillp_stack_app_config.c",
22  "src/app_lib/src/fillp_stack_app_config_in.c",
23  "src/app_lib/src/socket_app.c",
24  "src/app_lib/src/spunge_app.c",
25  "src/app_lib/src/socket_opt.c",
26  "src/app_lib/src/fillp_dfx.c",
27  "src/fillp_lib/src/fillp_buf_item.c",
28  "src/fillp_lib/src/fillp_cookie.c",
29  "src/fillp_lib/src/fillp_stack_config.c",
30  "src/fillp_lib/src/fillp_stack_config_in.c",
31  "src/fillp_lib/src/hmac.c",
32  "src/fillp_lib/src/net.c",
33  "src/fillp_lib/src/pcb.c",
34  "src/fillp_lib/src/res.c",
35  "src/fillp_lib/src/sha256.c",
36  "src/fillp_lib/src/spunge_core.c",
37  "src/fillp_lib/src/spunge_stack.c",
38  "src/fillp_lib/src/sysio.c",
39  "src/fillp_lib/src/sysio_udp.c",
40  "src/fillp_lib/src/fillp/fillp.c",
41  "src/fillp_lib/src/fillp/fillp_common.c",
42  "src/fillp_lib/src/fillp/fillp_conn.c",
43  "src/fillp_lib/src/fillp/fillp_flow_control_alg0.c",
44  "src/fillp_lib/src/fillp/fillp_flow_control.c",
45  "src/fillp_lib/src/fillp/fillp_input.c",
46  "src/fillp_lib/src/fillp/fillp_output.c",
47  "src/fillp_lib/src/fillp/fillp_pcb.c",
48  "src/fillp_lib/src/fillp/fillp_timer.c",
49  "src/fillp_lib/src/fillp/fillp_frame.c",
50  "src/fillp_lib/src/fillp/fillp_mgt_msg_log.c",
51  "src/public/src/callbacks.c",
52  "src/public/src/dympool.c",
53  "src/public/src/epoll.c",
54  "src/public/src/fillp_os.c",
55  "src/public/src/lf_ring.c",
56  "src/public/src/log.c",
57  "src/public/src/rb_tree.c",
58  "src/public/src/skiplist.c",
59  "src/public/src/socket_common.c",
60  "src/public/src/spunge.c",
61  "src/public/src/spunge_mem.c",
62  "src/public/src/spunge_message.c",
63  "src/public/src/timing_wheel.c",
64]
65
66fillp_include = [
67  "include",
68  "src/app_lib/include",
69  "src/fillp_lib/include",
70  "src/fillp_lib/include/fillp",
71  "src/public/include",
72]
73
74fillp_cflags = [
75  "-DPDT_MIRACAST",
76  "-DFILLP_SERVER_SUPPORT",
77  "-DFILLP_LITTLE_ENDIAN",
78  "-DFILLP_LINUX",
79  "-DFILLP_POWER_SAVE",
80  "-DFILLP_POWER_SAVING_LINUX",
81  "-DFILLP_ENABLE_DFX_HIDUMPER",
82  "-DFILLP_MGT_MSG_LOG",
83]
84
85if (defined(ohos_lite)) {
86  import("//build/lite/config/component/lite_component.gni")
87  shared_library("FillpSo.open") {
88    cflags = fillp_cflags
89    cflags += [ "-Wall" ]
90    include_dirs = fillp_include
91    include_dirs += [ "//third_party/bounds_checking_function/include/" ]
92    sources = fillp_source
93    deps = [
94      "$NSTACKX_ROOT/nstackx_util:nstackx_util.open",
95      "//third_party/bounds_checking_function:libsec_shared",
96    ]
97
98    if (ohos_kernel_type == "liteos_a") {
99      cflags += [ "-DNSTACKX_WITH_LITEOS" ]
100    } else {
101      cflags += [ "-DNSTACKX_WITH_HMOS_LINUX" ]
102    }
103  }
104} else {
105  import("//build/ohos.gni")
106  ohos_shared_library("FillpSo.open") {
107    sanitize = {
108      cfi = true
109      cfi_cross_dso = true
110      debug = false
111    }
112    branch_protector_ret = "pac_ret"
113
114    cflags = fillp_cflags
115    cflags += [
116      "-Wall",
117      "-DNSTACKX_WITH_HMOS_LINUX",
118    ]
119
120    include_dirs = fillp_include
121    include_dirs += [
122      "//commonlibrary/c_utils/base/include/",
123      "//third_party/bounds_checking_function/include",
124    ]
125    sources = fillp_source
126    deps = [
127      "$NSTACKX_ROOT/nstackx_util:nstackx_util.open",
128      "//third_party/bounds_checking_function:libsec_shared",
129    ]
130
131    innerapi_tags = [ "platformsdk_indirect" ]
132    part_name = "dsoftbus"
133    subsystem_name = "communication"
134  }
135}
136