1060ff233Sopenharmony_ci# Copyright (c) 2021 Huawei Device Co., Ltd.
2060ff233Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3060ff233Sopenharmony_ci# you may not use this file except in compliance with the License.
4060ff233Sopenharmony_ci# You may obtain a copy of the License at
5060ff233Sopenharmony_ci#
6060ff233Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7060ff233Sopenharmony_ci#
8060ff233Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9060ff233Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10060ff233Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11060ff233Sopenharmony_ci# See the License for the specific language governing permissions and
12060ff233Sopenharmony_ci# limitations under the License.
13060ff233Sopenharmony_ci
14060ff233Sopenharmony_ciimport("../core/common/dfx/dsoftbus_dfx.gni")
15060ff233Sopenharmony_ciimport("../dsoftbus.gni")
16060ff233Sopenharmony_ci
17060ff233Sopenharmony_cidsoftbus_root_path = ".."
18060ff233Sopenharmony_cisoftbus_adapter_common = "${dsoftbus_root_path}/adapter/common"
19060ff233Sopenharmony_cidsoftbus_feature_product_config_path =
20060ff233Sopenharmony_ci    "${dsoftbus_root_path}/adapter/default_config"
21060ff233Sopenharmony_cisoftbus_adapter_config = "${dsoftbus_root_path}/adapter/default_config"
22060ff233Sopenharmony_cinative_source_path = rebase_path("$dsoftbus_root_path")
23060ff233Sopenharmony_cidep_feature = "dsoftbus_enhance/adapter/default_config/spec_config/softbus_config_adapter.c"
24060ff233Sopenharmony_cienhance_feature = exec_script("$dsoftbus_root_path/check_sub_module.py",
25060ff233Sopenharmony_ci                              [
26060ff233Sopenharmony_ci                                "$native_source_path",
27060ff233Sopenharmony_ci                                "$dep_feature",
28060ff233Sopenharmony_ci                              ],
29060ff233Sopenharmony_ci                              "value")
30060ff233Sopenharmony_ci
31060ff233Sopenharmony_ciif (defined(ohos_lite)) {
32060ff233Sopenharmony_ci  import("//build/lite/config/component/lite_component.gni")
33060ff233Sopenharmony_ci  config("dsoftbus_adapter_common_interface") {
34060ff233Sopenharmony_ci    include_dirs = [
35060ff233Sopenharmony_ci      "$softbus_adapter_common/include",
36060ff233Sopenharmony_ci      "$softbus_adapter_common/include/OS_adapter_define/linux",
37060ff233Sopenharmony_ci      "$softbus_adapter_config/spec_config",
38060ff233Sopenharmony_ci      "$dsoftbus_root_path/core/common/include",
39060ff233Sopenharmony_ci      "$hilog_lite_include_path",
40060ff233Sopenharmony_ci      "$utils_lite_include_path",
41060ff233Sopenharmony_ci    ]
42060ff233Sopenharmony_ci    if (board_name == "v200zr") {
43060ff233Sopenharmony_ci      defines += [ "DSOFTBUS_V200ZR" ]
44060ff233Sopenharmony_ci    }
45060ff233Sopenharmony_ci  }
46060ff233Sopenharmony_ci
47060ff233Sopenharmony_ci  common_include = [
48060ff233Sopenharmony_ci    "$dsoftbus_root_path/core/common/dfx/interface/include",
49060ff233Sopenharmony_ci    "$dsoftbus_root_path/interfaces/kits",
50060ff233Sopenharmony_ci    "$dsoftbus_root_path/interfaces/kits/common",
51060ff233Sopenharmony_ci  ]
52060ff233Sopenharmony_ci
53060ff233Sopenharmony_ci  if (ohos_kernel_type == "liteos_m") {
54060ff233Sopenharmony_ci    static_library("softbus_adapter") {
55060ff233Sopenharmony_ci      include_dirs = common_include
56060ff233Sopenharmony_ci      include_dirs += [ "//kernel/liteos_m/kal/cmsis" ]
57060ff233Sopenharmony_ci      external_deps = [
58060ff233Sopenharmony_ci        "bounds_checking_function:libsec_static",
59060ff233Sopenharmony_ci        "init:libbegetutil",
60060ff233Sopenharmony_ci      ]
61060ff233Sopenharmony_ci      public_external_deps = [ "json:nlohmann_json_static" ]
62060ff233Sopenharmony_ci      if (board_name == "hispark_pegasus") {
63060ff233Sopenharmony_ci        include_dirs +=
64060ff233Sopenharmony_ci            [ "$hispark_pegasus_sdk_path/third_party/lwip_sack/include" ]
65060ff233Sopenharmony_ci        defines += [ "HISPARK_PEGASUS_USE_NETIF_GET_ADDR" ]
66060ff233Sopenharmony_ci      }
67060ff233Sopenharmony_ci      if (board_toolchain_type == "iccarm") {
68060ff233Sopenharmony_ci        include_dirs += [
69060ff233Sopenharmony_ci          "//kernel/liteos_m/components/net/lwip-2.1/porting/include",
70060ff233Sopenharmony_ci          "//third_party/lwip/src/include",
71060ff233Sopenharmony_ci        ]
72060ff233Sopenharmony_ci        cflags = [
73060ff233Sopenharmony_ci          "--diag_suppress",
74060ff233Sopenharmony_ci          "Pe226,Pe513",
75060ff233Sopenharmony_ci        ]
76060ff233Sopenharmony_ci        ldflags = [ "-lpthread" ]
77060ff233Sopenharmony_ci      } else {
78060ff233Sopenharmony_ci        cflags = [ "-Wall" ]
79060ff233Sopenharmony_ci      }
80060ff233Sopenharmony_ci      sources = [
81060ff233Sopenharmony_ci        "$softbus_adapter_common/dfx/softbus_adapter_hisysevent_mini.c",
82060ff233Sopenharmony_ci        "$softbus_adapter_common/dfx/softbus_adapter_hitrace_virtual.c",
83060ff233Sopenharmony_ci        "$softbus_adapter_common/kernel/liteos_m/lnn_ip_utils_adapter.c",
84060ff233Sopenharmony_ci        "$softbus_adapter_common/kernel/liteos_m/softbus_adapter_file.c",
85060ff233Sopenharmony_ci        "$softbus_adapter_common/kernel/liteos_m/softbus_adapter_mem.c",
86060ff233Sopenharmony_ci        "$softbus_adapter_common/kernel/liteos_m/softbus_adapter_timer.c",
87060ff233Sopenharmony_ci        "$softbus_adapter_common/kernel/posix/softbus_adapter_socket.c",
88060ff233Sopenharmony_ci        "$softbus_adapter_common/kernel/posix/softbus_adapter_thread.c",
89060ff233Sopenharmony_ci        "$softbus_adapter_common/range/softbus_adapter_range.c",
90060ff233Sopenharmony_ci      ]
91060ff233Sopenharmony_ci
92060ff233Sopenharmony_ci      if (enhance_feature) {
93060ff233Sopenharmony_ci        sources += [ "$dsoftbus_root_path/dsoftbus_enhance/adapter/default_config/spec_config/softbus_config_adapter.c" ]
94060ff233Sopenharmony_ci      } else {
95060ff233Sopenharmony_ci        sources +=
96060ff233Sopenharmony_ci            [ "$softbus_adapter_config/spec_config/softbus_config_adapter.c" ]
97060ff233Sopenharmony_ci      }
98060ff233Sopenharmony_ci
99060ff233Sopenharmony_ci      if (board_name == "v200zr") {
100060ff233Sopenharmony_ci        external_deps += [ "json:nlohmann_json_static" ]
101060ff233Sopenharmony_ci        sources = []
102060ff233Sopenharmony_ci        sources = [
103060ff233Sopenharmony_ci          "$softbus_adapter_common/dfx/softbus_adapter_hisysevent_mini.c",
104060ff233Sopenharmony_ci          "$softbus_adapter_common/dfx/softbus_adapter_hitrace_virtual.c",
105060ff233Sopenharmony_ci          "$softbus_adapter_common/json/nlohmann/softbus_adapter_json.cpp",
106060ff233Sopenharmony_ci          "$softbus_adapter_common/kernel/liteos_m/lnn_ip_utils_adapter.c",
107060ff233Sopenharmony_ci          "$softbus_adapter_common/kernel/liteos_m/softbus_adapter_mem.c",
108060ff233Sopenharmony_ci          "$softbus_adapter_common/kernel/liteos_m/softbus_adapter_timer.c",
109060ff233Sopenharmony_ci          "$softbus_adapter_common/kernel/posix/softbus_adapter_file.c",
110060ff233Sopenharmony_ci          "$softbus_adapter_common/kernel/posix/softbus_adapter_socket.c",
111060ff233Sopenharmony_ci          "$softbus_adapter_common/kernel/posix/softbus_adapter_thread.c",
112060ff233Sopenharmony_ci          "$softbus_adapter_common/perf/softbus_adapter_perf.c",
113060ff233Sopenharmony_ci          "$softbus_adapter_common/range/softbus_adapter_range.c",
114060ff233Sopenharmony_ci        ]
115060ff233Sopenharmony_ci
116060ff233Sopenharmony_ci        if (enhance_feature) {
117060ff233Sopenharmony_ci          sources += [ "$dsoftbus_root_path/dsoftbus_enhance/adapter/default_config/spec_config/softbus_config_adapter.c" ]
118060ff233Sopenharmony_ci        } else {
119060ff233Sopenharmony_ci          sources +=
120060ff233Sopenharmony_ci              [ "$softbus_adapter_config/spec_config/softbus_config_adapter.c" ]
121060ff233Sopenharmony_ci        }
122060ff233Sopenharmony_ci      }
123060ff233Sopenharmony_ci
124060ff233Sopenharmony_ci      deps = [
125060ff233Sopenharmony_ci        "$dsoftbus_dfx_path/event:softbus_dfx_event",
126060ff233Sopenharmony_ci        "$dsoftbus_dfx_path/log:softbus_dfx_log",
127060ff233Sopenharmony_ci        "$hilog_lite_deps_path",
128060ff233Sopenharmony_ci      ]
129060ff233Sopenharmony_ci
130060ff233Sopenharmony_ci      if (dsoftbus_feature_encrypt == 0) {
131060ff233Sopenharmony_ci        sources += [
132060ff233Sopenharmony_ci          "$softbus_adapter_common/mbedtls/softbus_adapter_crypto.c",
133060ff233Sopenharmony_ci          "$softbus_adapter_common/mbedtls/softbus_aes_encrypt_virtual.c",
134060ff233Sopenharmony_ci        ]
135060ff233Sopenharmony_ci        deps += [ "//third_party/mbedtls" ]
136060ff233Sopenharmony_ci      } else if (dsoftbus_feature_encrypt == 1) {
137060ff233Sopenharmony_ci        sources += [
138060ff233Sopenharmony_ci          "$softbus_adapter_common/openssl/softbus_adapter_crypto.c",
139060ff233Sopenharmony_ci          "$softbus_adapter_common/openssl/softbus_aes_encrypt.c",
140060ff233Sopenharmony_ci        ]
141060ff233Sopenharmony_ci        deps += [ "//third_party/openssl/ohos_lite:openssl_shared" ]
142060ff233Sopenharmony_ci      }
143060ff233Sopenharmony_ci      public_configs = [ ":dsoftbus_adapter_common_interface" ]
144060ff233Sopenharmony_ci    }
145060ff233Sopenharmony_ci  } else {
146060ff233Sopenharmony_ci    shared_library("softbus_adapter") {
147060ff233Sopenharmony_ci      include_dirs = common_include
148060ff233Sopenharmony_ci      cflags = [
149060ff233Sopenharmony_ci        "-Wall",
150060ff233Sopenharmony_ci        "-Werror",
151060ff233Sopenharmony_ci        "-fPIC",
152060ff233Sopenharmony_ci        "-fno-builtin",
153060ff233Sopenharmony_ci        "-std=c99",
154060ff233Sopenharmony_ci      ]
155060ff233Sopenharmony_ci      cflags_cc = [ "-fPIC" ]
156060ff233Sopenharmony_ci      sources = [
157060ff233Sopenharmony_ci        "$softbus_adapter_common/dfx/softbus_adapter_hisysevent_mini.c",
158060ff233Sopenharmony_ci        "$softbus_adapter_common/dfx/softbus_adapter_hitrace_virtual.c",
159060ff233Sopenharmony_ci        "$softbus_adapter_common/json/nlohmann/softbus_adapter_json.cpp",
160060ff233Sopenharmony_ci        "$softbus_adapter_common/kernel/posix/lnn_ip_utils_adapter.c",
161060ff233Sopenharmony_ci        "$softbus_adapter_common/kernel/posix/softbus_adapter_file.c",
162060ff233Sopenharmony_ci        "$softbus_adapter_common/kernel/posix/softbus_adapter_mem.c",
163060ff233Sopenharmony_ci        "$softbus_adapter_common/kernel/posix/softbus_adapter_socket.c",
164060ff233Sopenharmony_ci        "$softbus_adapter_common/kernel/posix/softbus_adapter_thread.c",
165060ff233Sopenharmony_ci        "$softbus_adapter_common/kernel/posix/softbus_adapter_timer.c",
166060ff233Sopenharmony_ci        "$softbus_adapter_common/perf/softbus_adapter_perf.c",
167060ff233Sopenharmony_ci        "$softbus_adapter_common/range/softbus_adapter_range.c",
168060ff233Sopenharmony_ci      ]
169060ff233Sopenharmony_ci
170060ff233Sopenharmony_ci      if (enhance_feature) {
171060ff233Sopenharmony_ci        sources += [ "$dsoftbus_root_path/dsoftbus_enhance/adapter/default_config/spec_config/softbus_config_adapter.c" ]
172060ff233Sopenharmony_ci      } else {
173060ff233Sopenharmony_ci        sources +=
174060ff233Sopenharmony_ci            [ "$softbus_adapter_config/spec_config/softbus_config_adapter.c" ]
175060ff233Sopenharmony_ci      }
176060ff233Sopenharmony_ci
177060ff233Sopenharmony_ci      deps = [
178060ff233Sopenharmony_ci        "$dsoftbus_dfx_path/event:softbus_dfx_event",
179060ff233Sopenharmony_ci        "$dsoftbus_dfx_path/log:softbus_dfx_log",
180060ff233Sopenharmony_ci        "$hilog_lite_deps_path",
181060ff233Sopenharmony_ci      ]
182060ff233Sopenharmony_ci      external_deps = [
183060ff233Sopenharmony_ci        "bounds_checking_function:libsec_shared",
184060ff233Sopenharmony_ci        "init:libbegetutil",
185060ff233Sopenharmony_ci      ]
186060ff233Sopenharmony_ci      public_external_deps = [ "json:nlohmann_json_static" ]
187060ff233Sopenharmony_ci
188060ff233Sopenharmony_ci      if (dsoftbus_feature_encrypt == 0) {
189060ff233Sopenharmony_ci        sources += [
190060ff233Sopenharmony_ci          "$softbus_adapter_common/mbedtls/softbus_adapter_crypto.c",
191060ff233Sopenharmony_ci          "$softbus_adapter_common/mbedtls/softbus_aes_encrypt_virtual.c",
192060ff233Sopenharmony_ci        ]
193060ff233Sopenharmony_ci        deps += [ "//third_party/mbedtls" ]
194060ff233Sopenharmony_ci      } else if (dsoftbus_feature_encrypt == 1) {
195060ff233Sopenharmony_ci        sources += [
196060ff233Sopenharmony_ci          "$softbus_adapter_common/openssl/softbus_adapter_crypto.c",
197060ff233Sopenharmony_ci          "$softbus_adapter_common/openssl/softbus_aes_encrypt.c",
198060ff233Sopenharmony_ci        ]
199060ff233Sopenharmony_ci        deps += [ "//third_party/openssl/ohos_lite:openssl_shared" ]
200060ff233Sopenharmony_ci      }
201060ff233Sopenharmony_ci      public_configs = [ ":dsoftbus_adapter_common_interface" ]
202060ff233Sopenharmony_ci    }
203060ff233Sopenharmony_ci  }
204060ff233Sopenharmony_ci} else {
205060ff233Sopenharmony_ci  config("config_adapter_common") {
206060ff233Sopenharmony_ci    include_dirs = [
207060ff233Sopenharmony_ci      "$softbus_adapter_common/include",
208060ff233Sopenharmony_ci      "$softbus_adapter_common/include/OS_adapter_define/linux",
209060ff233Sopenharmony_ci      "$dsoftbus_feature_product_config_path/spec_config",
210060ff233Sopenharmony_ci      "$dsoftbus_root_path/core/common/dfx/interface/include",
211060ff233Sopenharmony_ci      "$dsoftbus_root_path/core/common/include",
212060ff233Sopenharmony_ci    ]
213060ff233Sopenharmony_ci  }
214060ff233Sopenharmony_ci
215060ff233Sopenharmony_ci  ohos_shared_library("softbus_adapter") {
216060ff233Sopenharmony_ci    sanitize = {
217060ff233Sopenharmony_ci      ubsan = true
218060ff233Sopenharmony_ci      integer_overflow = true
219060ff233Sopenharmony_ci      boundary_sanitize = true
220060ff233Sopenharmony_ci      cfi = true
221060ff233Sopenharmony_ci      cfi_cross_dso = true
222060ff233Sopenharmony_ci      debug = false
223060ff233Sopenharmony_ci    }
224060ff233Sopenharmony_ci    branch_protector_ret = "pac_ret"
225060ff233Sopenharmony_ci
226060ff233Sopenharmony_ci    include_dirs = [
227060ff233Sopenharmony_ci      "$dsoftbus_root_path/core/common/dfx/interface/include",
228060ff233Sopenharmony_ci      "$dsoftbus_root_path/interfaces/kits",
229060ff233Sopenharmony_ci      "$dsoftbus_root_path/interfaces/kits/common",
230060ff233Sopenharmony_ci    ]
231060ff233Sopenharmony_ci    external_deps = [ "bounds_checking_function:libsec_shared" ]
232060ff233Sopenharmony_ci    if (is_standard_system) {
233060ff233Sopenharmony_ci      external_deps += [
234060ff233Sopenharmony_ci        "c_utils:utils",
235060ff233Sopenharmony_ci        "json:nlohmann_json_static",
236060ff233Sopenharmony_ci      ]
237060ff233Sopenharmony_ci    }
238060ff233Sopenharmony_ci    sources = [
239060ff233Sopenharmony_ci      "$softbus_adapter_common/dfx/softbus_adapter_hisysevent.cpp",
240060ff233Sopenharmony_ci      "$softbus_adapter_common/dfx/softbus_adapter_hitrace.c",
241060ff233Sopenharmony_ci      "$softbus_adapter_common/json/nlohmann/softbus_adapter_json.cpp",
242060ff233Sopenharmony_ci      "$softbus_adapter_common/kernel/posix/lnn_ip_utils_adapter.c",
243060ff233Sopenharmony_ci      "$softbus_adapter_common/kernel/posix/softbus_adapter_file.c",
244060ff233Sopenharmony_ci      "$softbus_adapter_common/kernel/posix/softbus_adapter_mem.c",
245060ff233Sopenharmony_ci      "$softbus_adapter_common/kernel/posix/softbus_adapter_socket.c",
246060ff233Sopenharmony_ci      "$softbus_adapter_common/kernel/posix/softbus_adapter_thread.c",
247060ff233Sopenharmony_ci      "$softbus_adapter_common/kernel/posix/softbus_adapter_timer.c",
248060ff233Sopenharmony_ci      "$softbus_adapter_common/perf/softbus_adapter_perf.c",
249060ff233Sopenharmony_ci    ]
250060ff233Sopenharmony_ci
251060ff233Sopenharmony_ci    if (enhance_feature) {
252060ff233Sopenharmony_ci      sources += [ "$dsoftbus_root_path/dsoftbus_enhance/adapter/default_config/spec_config/softbus_config_adapter.c" ]
253060ff233Sopenharmony_ci    } else {
254060ff233Sopenharmony_ci      sources +=
255060ff233Sopenharmony_ci          [ "$softbus_adapter_config/spec_config/softbus_config_adapter.c" ]
256060ff233Sopenharmony_ci    }
257060ff233Sopenharmony_ci
258060ff233Sopenharmony_ci    public_deps = [
259060ff233Sopenharmony_ci      "$dsoftbus_dfx_path/event:softbus_dfx_event",
260060ff233Sopenharmony_ci      "$dsoftbus_dfx_path/log:softbus_dfx_log",
261060ff233Sopenharmony_ci    ]
262060ff233Sopenharmony_ci    public_external_deps = [
263060ff233Sopenharmony_ci      "bounds_checking_function:libsec_shared",
264060ff233Sopenharmony_ci      "json:nlohmann_json_static",
265060ff233Sopenharmony_ci    ]
266060ff233Sopenharmony_ci
267060ff233Sopenharmony_ci    ble_enhanced_impl =
268060ff233Sopenharmony_ci        "dsoftbus_enhance/adapter/common/range/softbus_adapter_range.c"
269060ff233Sopenharmony_ci    enhanced_range = exec_script("$dsoftbus_root_path/check_sub_module.py",
270060ff233Sopenharmony_ci                                 [
271060ff233Sopenharmony_ci                                   "$native_source_path",
272060ff233Sopenharmony_ci                                   "$ble_enhanced_impl",
273060ff233Sopenharmony_ci                                 ],
274060ff233Sopenharmony_ci                                 "value")
275060ff233Sopenharmony_ci    if (enhanced_range && defined(global_parts_info.msdp_algorithm)) {
276060ff233Sopenharmony_ci      sources += [ "$dsoftbus_root_path/dsoftbus_enhance/adapter/common/range/softbus_adapter_range.c" ]
277060ff233Sopenharmony_ci      external_deps += [ "algorithm:msdp_ble_range" ]
278060ff233Sopenharmony_ci    } else {
279060ff233Sopenharmony_ci      sources += [ "$softbus_adapter_common/range/softbus_adapter_range.c" ]
280060ff233Sopenharmony_ci    }
281060ff233Sopenharmony_ci
282060ff233Sopenharmony_ci    if (dsoftbus_feature_encrypt == 0) {
283060ff233Sopenharmony_ci      sources += [
284060ff233Sopenharmony_ci        "$softbus_adapter_common/mbedtls/softbus_adapter_crypto.c",
285060ff233Sopenharmony_ci        "$softbus_adapter_common/mbedtls/softbus_aes_encrypt_virtual.c",
286060ff233Sopenharmony_ci      ]
287060ff233Sopenharmony_ci      public_deps += [ "//third_party/mbedtls" ]
288060ff233Sopenharmony_ci    } else if (dsoftbus_feature_encrypt == 1) {
289060ff233Sopenharmony_ci      sources += [
290060ff233Sopenharmony_ci        "$softbus_adapter_common/openssl/softbus_adapter_crypto.c",
291060ff233Sopenharmony_ci        "$softbus_adapter_common/openssl/softbus_aes_encrypt.c",
292060ff233Sopenharmony_ci      ]
293060ff233Sopenharmony_ci      public_external_deps += [ "openssl:libcrypto_shared" ]
294060ff233Sopenharmony_ci    }
295060ff233Sopenharmony_ci    public_configs = [ ":config_adapter_common" ]
296060ff233Sopenharmony_ci    public_external_deps += [ "hitrace:libhitracechain" ]
297060ff233Sopenharmony_ci    if (is_standard_system) {
298060ff233Sopenharmony_ci      external_deps += [
299060ff233Sopenharmony_ci        "hilog:libhilog",
300060ff233Sopenharmony_ci        "hisysevent:libhisysevent",
301060ff233Sopenharmony_ci        "hitrace:libhitracechain",
302060ff233Sopenharmony_ci        "init:libbegetutil",
303060ff233Sopenharmony_ci      ]
304060ff233Sopenharmony_ci    }
305060ff233Sopenharmony_ci    innerapi_tags = [ "platformsdk_indirect" ]
306060ff233Sopenharmony_ci    part_name = "dsoftbus"
307060ff233Sopenharmony_ci    subsystem_name = "communication"
308060ff233Sopenharmony_ci  }
309060ff233Sopenharmony_ci}
310