• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#Copyright (c) 2021-2023 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
14if (defined(ohos_lite)) {
15  import("//build/lite/config/component/lite_component.gni")
16} else {
17  import("//build/ohos.gni")
18}
19
20import("//third_party/wpa_supplicant/wpa_supplicant-2.9_standard/wpa.gni")
21import(
22    "//third_party/wpa_supplicant/wpa_supplicant-2.9_standard/wpa_vendor_ext.gni")
23
24declare_args() {
25  wpa_supplicant_driver_nl80211_hisi = false
26  wpa_supplicant_driver_nl80211 = false
27  wpa_supplicant_ohos_certmgr = true
28  wpa_supplicant_ohos_eapauth = true
29  wpa_supplicant_config_hilog = true
30  wpa_supplicant_config_openssl = true
31  wpa_supplicant_config_wfd = true
32  wpa_supplicant_config_mlo = false
33}
34
35if (wpa_supplicant_ohos_certmgr) {
36  cert_manager_sources = [
37    "$WPA_ROOT_DIR/wpa_supplicant_lib/cert_mgr_deps/src/cert_manager_api.c",
38    "$WPA_ROOT_DIR/wpa_supplicant_lib/cert_mgr_deps/src/cm_ipc_client.c",
39    "$WPA_ROOT_DIR/wpa_supplicant_lib/cert_mgr_deps/src/cm_ipc_client_serialization.c",
40    "$WPA_ROOT_DIR/wpa_supplicant_lib/cert_mgr_deps/src/cm_load_sa.cpp",
41    "$WPA_ROOT_DIR/wpa_supplicant_lib/cert_mgr_deps/src/cm_mem.c",
42    "$WPA_ROOT_DIR/wpa_supplicant_lib/cert_mgr_deps/src/cm_param.c",
43    "$WPA_ROOT_DIR/wpa_supplicant_lib/cert_mgr_deps/src/cm_request.cpp",
44  ]
45
46  cert_manager_include_dirs =
47      [ "$WPA_ROOT_DIR/wpa_supplicant_lib/cert_mgr_deps/include" ]
48
49  cert_manager_external_deps = [
50    "c_utils:utils",
51    "ipc:ipc_single",
52    "openssl:libcrypto_shared",
53    "samgr:samgr_proxy",
54  ]
55}
56
57if (wpa_supplicant_driver_nl80211_hisi) {
58  CONFIG_HISI = "true"
59} else {
60  CONFIG_HISI = "false"
61}
62if (wpa_supplicant_driver_nl80211) {
63  CONFIG_DRIVER = "nl80211"
64} else {
65  CONFIG_DRIVER = "hdf"
66}
67if (wpa_supplicant_ohos_eapauth) {
68  CONFIG_EAPAUTH = "true"
69} else {
70  CONFIG_EAPAUTH = "false"
71}
72if (wpa_supplicant_config_mlo) {
73  CONFIG_MLO = "true"
74} else {
75  CONFIG_MLO = "false"
76}
77
78CONFIG_OS = "unix"
79CONFIG_ELOOP = "eloop"
80if ("${CONFIG_DRIVER}" == "nl80211") {
81  CONFIG_L2_PACKET = "linux"
82} else {
83  CONFIG_L2_PACKET = "rtos"
84}
85
86CONFIG_MAIN = "main"
87
88config("wpa_warnings") {
89  cflags = [ "-Wno-error=sign-compare" ]
90  ldflags = [
91    "-flto",
92    "-fsanitize=cfi",
93    "-Wl,-plugin-opt,O1",
94  ]
95}
96
97wpa_client_base_sources = [
98  "$WPA_ROOT_DIR/src/common/wpa_ctrl.c",
99  "$WPA_ROOT_DIR/src/utils/common.c",
100  "$WPA_ROOT_DIR/src/utils/os_${CONFIG_OS}.c",
101  "$WPA_ROOT_DIR/src/utils/wpa_debug.c",
102]
103
104wpa_client_base_include_dirs = [
105  "$WPA_ROOT_DIR/src",
106  "$WPA_ROOT_DIR/src/utils",
107  "$WPA_ROOT_DIR/src/drivers",
108  "$WPA_ROOT_DIR/wpa_supplicant",
109  "$WPA_ROOT_DIR/build/include",
110]
111
112wpa_client_vendor_base_include_dirs = [
113  "$WPA_ROOT_DIR/src",
114  "$WPA_ROOT_DIR/src/utils",
115  "$WPA_ROOT_DIR/src/drivers",
116  "$WPA_ROOT_DIR/wpa_supplicant",
117  "$WPA_ROOT_DIR/build/include",
118]
119
120config("wpa_base_public_config") {
121  include_dirs = [
122    "$WPA_ROOT_DIR/src",
123    "$WPA_ROOT_DIR/src/common",
124    "$WPA_ROOT_DIR/src/utils",
125    "$WPA_ROOT_DIR/wpa_supplicant",
126    "$WPA_ROOT_DIR/hostapd",
127    "$WPA_ROOT_DIR/wpa_supplicant_lib",
128  ]
129}
130
131config("wpa_client_updater_public_config") {
132  include_dirs = [
133    "$WPA_ROOT_DIR/src",
134    "$WPA_ROOT_DIR/src/common",
135    "$WPA_ROOT_DIR/src/utils",
136    "$WPA_ROOT_DIR/wpa_supplicant",
137  ]
138}
139
140wpa_client_base_cflags = [
141  "-UANDROID",
142  "-fsigned-char",
143  "-DCONFIG_IEEE80211W",
144  "-DCONFIG_IEEE80211R",
145  "-DCONFIG_NO_VLAN",
146  "-DCONFIG_NO_RADIUS",
147  "-DCONFIG_NO_RANDOM_POOL",
148  "-DCONFIG_SHA256",
149  "-DCONFIG_CRYPTO_INTERNAL",
150  "-DCONFIG_INTERNAL_LIBTOMMATH",
151  "-DCONFIG_INTERNAL_SHA384",
152  "-DCONFIG_INTERNAL_SHA512",
153  "-DCONFIG_CTRL_IFACE",
154  "-DCONFIG_IBSS_RSN",
155  "-DIEEE8021X_EAPOL",
156  "-DCONFIG_BACEND_FILE",
157  "-DCONFIG_NO_CONFIG_BLOBS",
158  "-DUSERSPACE_CLIENT_SUPPORT",
159  "-DCONFIG_DEBUG_FILE",
160  "-DCONFIG_OPEN_HARMONY_PATCH",
161]
162
163ohos_shared_library("wpa_client") {
164  sanitize = {
165    cfi = true
166    cfi_cross_dso = true
167    debug = false
168  }
169
170  output_name = "wpa_client"
171  sources = wpa_client_base_sources
172
173  include_dirs = wpa_client_base_include_dirs
174
175  cflags = wpa_client_base_cflags
176  if ("${CONFIG_CTRL_IFACE}" == "udp") {
177    cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ]
178  } else {
179    cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ]
180  }
181
182  external_deps = [ "init:libbegetutil" ]
183  if (wpa_supplicant_config_hilog) {
184    external_deps += [ "hilog:libhilog" ]
185  }
186  if ("${CONFIG_DRIVER}" == "nl80211") {
187    include_dirs += [ "$WPA_ROOT_DIR/libnl/include/libnl3" ]
188    cflags += [
189      "-DCONFIG_DRIVER_NL80211",
190      "-DCONFIG_LIBNL32",
191    ]
192  } else {
193    cflags += [
194      "-DCONFIG_DRIVER_HDF",
195      "-DCONFIG_OHOS_P2P",
196    ]
197  }
198  public_configs = [ ":wpa_base_public_config" ]
199  configs = [ ":wpa_warnings" ]
200  part_name = "wpa_supplicant"
201  subsystem_name = "thirdparty"
202  install_images = [ "system" ]
203}
204
205ohos_shared_library("wpa_client_vendor") {
206  sanitize = {
207    cfi = true
208    cfi_cross_dso = true
209    debug = false
210  }
211
212  output_name = "wpa_client_vendor"
213  sources = wpa_client_base_sources
214
215  include_dirs = wpa_client_vendor_base_include_dirs
216
217  cflags = wpa_client_base_cflags
218  if ("${CONFIG_CTRL_IFACE}" == "udp") {
219    cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ]
220  } else {
221    cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ]
222  }
223
224  external_deps = [ "init:libbegetutil" ]
225  if (wpa_supplicant_config_hilog) {
226    external_deps += [ "hilog:libhilog" ]
227  }
228  if ("${CONFIG_DRIVER}" == "nl80211") {
229    include_dirs += [ "$WPA_ROOT_DIR/libnl/include/libnl3" ]
230    cflags += [
231      "-DCONFIG_DRIVER_NL80211",
232      "-DCONFIG_LIBNL32",
233    ]
234  } else {
235    cflags += [
236      "-DCONFIG_DRIVER_HDF",
237      "-DCONFIG_OHOS_P2P",
238    ]
239  }
240  public_configs = [ ":wpa_base_public_config" ]
241  configs = [ ":wpa_warnings" ]
242  part_name = "wpa_supplicant"
243  subsystem_name = "thirdparty"
244  install_images = [ chipset_base_dir ]
245}
246
247ohos_shared_library("wpa_client_updater") {
248  sanitize = {
249    cfi = true
250    cfi_cross_dso = true
251    debug = false
252  }
253
254  output_name = "wpa_client_updater"
255  symlink_target_name = [ "libwpa_client.z.so" ]
256  sources = wpa_client_base_sources
257
258  include_dirs = wpa_client_base_include_dirs
259
260  cflags = wpa_client_base_cflags
261  if ("${CONFIG_CTRL_IFACE}" == "udp") {
262    cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ]
263  } else {
264    cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ]
265  }
266
267  external_deps = [ "init:libbegetutil" ]
268  if (wpa_supplicant_config_hilog) {
269    external_deps += [ "hilog:libhilog" ]
270  }
271
272  if ("${CONFIG_DRIVER}" == "nl80211") {
273    include_dirs += [ "$WPA_ROOT_DIR/libnl/include/libnl3" ]
274    cflags += [
275      "-DCONFIG_DRIVER_NL80211",
276      "-DCONFIG_LIBNL32",
277    ]
278  } else {
279    cflags += [
280      "-DCONFIG_DRIVER_HDF",
281      "-DCONFIG_OHOS_P2P",
282    ]
283  }
284  public_configs = [ ":wpa_client_updater_public_config" ]
285  defines = [ "OHOS_EUPDATER" ]
286  configs = [ ":wpa_warnings" ]
287  part_name = "wpa_supplicant"
288  subsystem_name = "thirdparty"
289  install_images = [ "updater" ]
290}
291
292wpa_base_sources = [
293  # wpa & hostapd
294  "$WPA_ROOT_DIR/hostapd/ap_config_file.c",
295  "$WPA_ROOT_DIR/hostapd/ap_ctrl_iface.c",
296  "$WPA_ROOT_DIR/hostapd/ap_eap_register.c",
297
298  # hostapd
299  "$WPA_ROOT_DIR/hostapd/ap_main.c",
300  "$WPA_ROOT_DIR/src/ap/ap_config.c",
301  "$WPA_ROOT_DIR/src/ap/ap_drv_ops.c",
302  "$WPA_ROOT_DIR/src/ap/ap_list.c",
303  "$WPA_ROOT_DIR/src/ap/ap_mlme.c",
304  "$WPA_ROOT_DIR/src/ap/ap_rrm.c",
305  "$WPA_ROOT_DIR/src/ap/authsrv.c",
306  "$WPA_ROOT_DIR/src/ap/beacon.c",
307  "$WPA_ROOT_DIR/src/ap/bss_load.c",
308  "$WPA_ROOT_DIR/src/ap/ctrl_iface_ap.c",
309  "$WPA_ROOT_DIR/src/ap/dfs.c",
310  "$WPA_ROOT_DIR/src/ap/drv_callbacks.c",
311  "$WPA_ROOT_DIR/src/ap/eap_user_db.c",
312  "$WPA_ROOT_DIR/src/ap/hostapd.c",
313  "$WPA_ROOT_DIR/src/ap/hw_features.c",
314  "$WPA_ROOT_DIR/src/ap/ieee802_11.c",
315  "$WPA_ROOT_DIR/src/ap/ieee802_11_auth.c",
316  "$WPA_ROOT_DIR/src/ap/ieee802_11_ht.c",
317  "$WPA_ROOT_DIR/src/ap/ieee802_11_shared.c",
318  "$WPA_ROOT_DIR/src/ap/ieee802_1x.c",
319  "$WPA_ROOT_DIR/src/ap/neighbor_db.c",
320  "$WPA_ROOT_DIR/src/ap/pmksa_cache_auth.c",
321  "$WPA_ROOT_DIR/src/ap/preauth_auth.c",
322  "$WPA_ROOT_DIR/src/ap/sta_info.c",
323  "$WPA_ROOT_DIR/src/ap/tkip_countermeasures.c",
324  "$WPA_ROOT_DIR/src/ap/utils.c",
325  "$WPA_ROOT_DIR/src/ap/wmm.c",
326  "$WPA_ROOT_DIR/src/ap/wpa_auth.c",
327  "$WPA_ROOT_DIR/src/ap/wpa_auth_glue.c",
328  "$WPA_ROOT_DIR/src/ap/wpa_auth_ie.c",
329  "$WPA_ROOT_DIR/src/common/ctrl_iface_common.c",
330  "$WPA_ROOT_DIR/src/common/hw_features_common.c",
331  "$WPA_ROOT_DIR/src/common/ieee802_11_common.c",
332  "$WPA_ROOT_DIR/src/common/wpa_common.c",
333  "$WPA_ROOT_DIR/src/crypto/aes-internal.c",
334  "$WPA_ROOT_DIR/src/crypto/aes-omac1.c",
335  "$WPA_ROOT_DIR/src/crypto/sha1-prf.c",
336  "$WPA_ROOT_DIR/src/crypto/sha256-prf.c",
337  "$WPA_ROOT_DIR/src/drivers/driver_common.c",
338  "$WPA_ROOT_DIR/src/drivers/drivers.c",
339  "$WPA_ROOT_DIR/src/eap_common/eap_common.c",
340  "$WPA_ROOT_DIR/src/eap_peer/eap.c",
341  "$WPA_ROOT_DIR/src/eap_peer/eap_methods.c",
342  "$WPA_ROOT_DIR/src/eap_server/eap_server.c",
343  "$WPA_ROOT_DIR/src/eap_server/eap_server_identity.c",
344  "$WPA_ROOT_DIR/src/eap_server/eap_server_methods.c",
345  "$WPA_ROOT_DIR/src/eapol_auth/eapol_auth_sm.c",
346  "$WPA_ROOT_DIR/src/eapol_supp/eapol_supp_sm.c",
347  "$WPA_ROOT_DIR/src/l2_packet/l2_packet_${CONFIG_L2_PACKET}.c",
348  "$WPA_ROOT_DIR/src/rsn_supp/pmksa_cache.c",
349  "$WPA_ROOT_DIR/src/rsn_supp/preauth.c",
350  "$WPA_ROOT_DIR/src/rsn_supp/wpa.c",
351  "$WPA_ROOT_DIR/src/rsn_supp/wpa_ft.c",
352  "$WPA_ROOT_DIR/src/rsn_supp/wpa_i.h",
353  "$WPA_ROOT_DIR/src/rsn_supp/wpa_ie.c",
354  "$WPA_ROOT_DIR/src/utils/${CONFIG_ELOOP}.c",
355  "$WPA_ROOT_DIR/src/utils/bitfield.c",
356  "$WPA_ROOT_DIR/src/utils/common.c",
357  "$WPA_ROOT_DIR/src/utils/ip_addr.c",
358  "$WPA_ROOT_DIR/src/utils/os_${CONFIG_OS}.c",
359  "$WPA_ROOT_DIR/src/utils/radiotap.c",
360  "$WPA_ROOT_DIR/src/utils/wpa_debug.c",
361  "$WPA_ROOT_DIR/src/utils/wpabuf.c",
362  "$WPA_ROOT_DIR/wpa_supplicant/${CONFIG_MAIN}.c",
363  "$WPA_ROOT_DIR/wpa_supplicant/bss.c",
364  "$WPA_ROOT_DIR/wpa_supplicant/bssid_ignore.c",
365
366  # wpa_supplicant
367  "$WPA_ROOT_DIR/src/crypto/sha384-kdf.c",
368  "$WPA_ROOT_DIR/src/crypto/sha384-prf.c",
369  "$WPA_ROOT_DIR/wpa_supplicant/config.c",
370  "$WPA_ROOT_DIR/wpa_supplicant/config_file.c",
371  "$WPA_ROOT_DIR/wpa_supplicant/ctrl_iface.c",
372  "$WPA_ROOT_DIR/wpa_supplicant/ctrl_iface_${CONFIG_CTRL_IFACE}.c",
373  "$WPA_ROOT_DIR/wpa_supplicant/eap_register.c",
374  "$WPA_ROOT_DIR/wpa_supplicant/events.c",
375  "$WPA_ROOT_DIR/wpa_supplicant/ibss_rsn.c",
376  "$WPA_ROOT_DIR/wpa_supplicant/notify.c",
377  "$WPA_ROOT_DIR/wpa_supplicant/op_classes.c",
378  "$WPA_ROOT_DIR/wpa_supplicant/robust_av.c",
379  "$WPA_ROOT_DIR/wpa_supplicant/rrm.c",
380  "$WPA_ROOT_DIR/wpa_supplicant/scan.c",
381  "$WPA_ROOT_DIR/wpa_supplicant/wmm_ac.c",
382  "$WPA_ROOT_DIR/wpa_supplicant/wpa_supplicant.c",
383  "$WPA_ROOT_DIR/wpa_supplicant/wpas_glue.c",
384
385  #sae
386  "$WPA_ROOT_DIR/src/common/sae.c",
387  "$WPA_ROOT_DIR/wpa_supplicant/sme.c",
388
389  #p2p
390  "$WPA_ROOT_DIR/src/ap/p2p_hostapd.c",
391  "$WPA_ROOT_DIR/src/ap/wps_hostapd.c",
392  "$WPA_ROOT_DIR/src/common/dragonfly.c",
393  "$WPA_ROOT_DIR/src/common/gas.c",
394  "$WPA_ROOT_DIR/src/crypto/crypto_openssl.c",
395  "$WPA_ROOT_DIR/src/crypto/dh_groups.c",
396  "$WPA_ROOT_DIR/src/crypto/fips_prf_openssl.c",
397  "$WPA_ROOT_DIR/src/crypto/ms_funcs.c",
398  "$WPA_ROOT_DIR/src/crypto/sha1-tlsprf.c",
399  "$WPA_ROOT_DIR/src/crypto/sha256-kdf.c",
400  "$WPA_ROOT_DIR/src/crypto/tls_openssl.c",
401  "$WPA_ROOT_DIR/src/crypto/tls_openssl_ocsp.c",
402  "$WPA_ROOT_DIR/src/eap_common/chap.c",
403  "$WPA_ROOT_DIR/src/eap_common/eap_peap_common.c",
404  "$WPA_ROOT_DIR/src/eap_common/eap_pwd_common.c",
405  "$WPA_ROOT_DIR/src/eap_common/eap_sim_common.c",
406  "$WPA_ROOT_DIR/src/eap_common/eap_wsc_common.c",
407  "$WPA_ROOT_DIR/src/eap_peer/eap_aka.c",
408  "$WPA_ROOT_DIR/src/eap_peer/eap_gtc.c",
409  "$WPA_ROOT_DIR/src/eap_peer/eap_mschapv2.c",
410  "$WPA_ROOT_DIR/src/eap_peer/eap_peap.c",
411  "$WPA_ROOT_DIR/src/eap_peer/eap_pwd.c",
412  "$WPA_ROOT_DIR/src/eap_peer/eap_sim.c",
413  "$WPA_ROOT_DIR/src/eap_peer/eap_tls.c",
414  "$WPA_ROOT_DIR/src/eap_peer/eap_tls_common.c",
415  "$WPA_ROOT_DIR/src/eap_peer/eap_ttls.c",
416  "$WPA_ROOT_DIR/src/eap_peer/eap_wsc.c",
417  "$WPA_ROOT_DIR/src/eap_peer/mschapv2.c",
418  "$WPA_ROOT_DIR/src/eap_server/eap_server_wsc.c",
419  "$WPA_ROOT_DIR/src/p2p/p2p.c",
420  "$WPA_ROOT_DIR/src/p2p/p2p_build.c",
421  "$WPA_ROOT_DIR/src/p2p/p2p_dev_disc.c",
422  "$WPA_ROOT_DIR/src/p2p/p2p_go_neg.c",
423  "$WPA_ROOT_DIR/src/p2p/p2p_group.c",
424  "$WPA_ROOT_DIR/src/p2p/p2p_invitation.c",
425  "$WPA_ROOT_DIR/src/p2p/p2p_parse.c",
426  "$WPA_ROOT_DIR/src/p2p/p2p_pd.c",
427  "$WPA_ROOT_DIR/src/p2p/p2p_sd.c",
428  "$WPA_ROOT_DIR/src/p2p/p2p_utils.c",
429  "$WPA_ROOT_DIR/src/tls/bignum.c",
430  "$WPA_ROOT_DIR/src/utils/base64.c",
431  "$WPA_ROOT_DIR/src/utils/config.c",
432  "$WPA_ROOT_DIR/src/utils/crc32.c",
433  "$WPA_ROOT_DIR/src/utils/uuid.c",
434  "$WPA_ROOT_DIR/src/wps/wps.c",
435  "$WPA_ROOT_DIR/src/wps/wps_attr_build.c",
436  "$WPA_ROOT_DIR/src/wps/wps_attr_parse.c",
437  "$WPA_ROOT_DIR/src/wps/wps_attr_process.c",
438  "$WPA_ROOT_DIR/src/wps/wps_common.c",
439  "$WPA_ROOT_DIR/src/wps/wps_dev_attr.c",
440  "$WPA_ROOT_DIR/src/wps/wps_enrollee.c",
441  "$WPA_ROOT_DIR/src/wps/wps_registrar.c",
442  "$WPA_ROOT_DIR/wpa_supplicant/ap.c",
443  "$WPA_ROOT_DIR/wpa_supplicant/gas_query.c",
444  "$WPA_ROOT_DIR/wpa_supplicant/offchannel.c",
445  "$WPA_ROOT_DIR/wpa_supplicant/p2p_supplicant.c",
446  "$WPA_ROOT_DIR/wpa_supplicant/p2p_supplicant_sd.c",
447  "$WPA_ROOT_DIR/wpa_supplicant/wps_supplicant.c",
448  "$WPA_ROOT_DIR/wpa_supplicant_lib/wpa_magiclink.c",
449]
450
451if ("${CONFIG_EAPAUTH}" == "true") {
452  wpa_base_sources += [
453    "$WPA_ROOT_DIR/src/crypto/aes-encblock.c",
454    "$WPA_ROOT_DIR/src/crypto/milenage.c",
455  ]
456}
457
458if (wpa_supplicant_config_wfd) {
459  wpa_base_sources += [ "$WPA_ROOT_DIR/wpa_supplicant/wifi_display.c" ]
460}
461
462wpa_base_include_dirs = [
463  "$WPA_ROOT_DIR/src",
464  "$WPA_ROOT_DIR/src/ap",
465  "$WPA_ROOT_DIR/src/common",
466  "$WPA_ROOT_DIR/src/utils",
467  "$WPA_ROOT_DIR/src/drivers",
468  "$WPA_ROOT_DIR/wpa_supplicant",
469  "$WPA_ROOT_DIR/build/include",
470  "$WPA_ROOT_DIR/wpa_supplicant_lib",
471  "$WPA_ROOT_DIR/src/crypto",
472  "$WPA_ROOT_DIR/src/eap_common",
473]
474
475if (wpa_supplicant_vendor_ext) {
476  wpa_base_include_dirs += wpa_vendor_ext_inc_path
477}
478
479if (wpa_supplicant_vendor_ext == false || wpa_supplicant_wapi == false) {
480  wpa_base_include_dirs += [ "$WPA_ROOT_DIR/wpa_supplicant/wapi" ]
481  wpa_base_sources += [ "$WPA_ROOT_DIR/wpa_supplicant/wapi/wapi_asue_i.c" ]
482}
483
484ohos_shared_library("wpa_sys") {
485  sanitize = {
486    cfi = true
487    cfi_cross_dso = true
488    debug = false
489  }
490  output_name = "wpa_sys"
491  sources = wpa_base_sources
492
493  include_dirs = wpa_base_include_dirs
494
495  cflags = [
496    "-UANDROID",
497    "-fsigned-char",
498    "-DCONFIG_IEEE80211W",
499    "-DCONFIG_NO_VLAN",
500    "-DCONFIG_NO_RADIUS",
501    "-DCONFIG_NO_RANDOM_POOL",
502    "-DCONFIG_SHA256",
503    "-DCONFIG_CRYPTO_INTERNAL",
504    "-DCONFIG_INTERNAL_LIBTOMMATH",
505    "-DCONFIG_INTERNAL_SHA384",
506    "-DCONFIG_INTERNAL_SHA512",
507    "-DCONFIG_CTRL_IFACE",
508    "-DCONFIG_IBSS_RSN",
509    "-DIEEE8021X_EAPOL",
510    "-DUSERSPACE_CLIENT_SUPPORT",
511    "-DCONFIG_BACKEND_FILE",
512    "-DCONFIG_NO_CONFIG_BLOBS",
513    "-DCONFIG_NO_ACCOUNTING",
514    "-DEAP_SERVER_IDENTITY",
515    "-DCONFIG_IEEE80211N",
516    "-DHOSTAPD",
517    "-DNEED_AP_MLME",
518    "-DCONFIG_WPS",
519    "-DCONFIG_AP",
520    "-DCONFIG_P2P",
521    "-DEAP_WSC",
522    "-DEAP_SERVER_WSC",
523    "-DEAP_SERVER",
524    "-DCONFIG_GAS",
525    "-DCONFIG_OFFCHANNEL",
526    "-DCONFIG_MAGICLINK",
527    "-DCONFIG_MAGICLINK_PC",
528    "-DCONFIG_OPEN_HARMONY_PATCH",
529    "-DEAP_MSCHAPV2",
530    "-DEAP_TLS",
531    "-DEAP_PEAP",
532    "-DEAP_TTLS",
533    "-DEAP_SIM",
534    "-DEAP_PWD",
535    "-DEAP_MSCHAPv2",
536    "-DCONFIG_SHA256",
537    "-DCONFIG_ECC",
538    "-DEAP_AKA",
539    "-DEAP_AKA_PRIME",
540    "-DEAP_TLS_OPENSSL",
541    "-DCONFIG_SAE",
542    "-DCONFIG_SUITEB192",
543    "-DCONFIG_SHA384",
544    "-DCONFIG_SUITEB",
545    "-DCONFIG_SME",
546    "-DCONFIG_WEP",
547    "-DPKCS12_FUNCS",
548    "-DEAP_GTC",
549  ]
550  if ("${CONFIG_CTRL_IFACE}" == "udp") {
551    cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ]
552  } else {
553    cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ]
554  }
555
556  if (wpa_supplicant_config_wfd) {
557    cflags += [ "-DCONFIG_WIFI_DISPLAY" ]
558  }
559
560  defines = [
561    "TLS_DEFAULT_CIPHERS = \"DEFAULT:!EXP:!LOW\"",
562    "OPENSSL_SUPPRESS_DEPRECATED",
563  ]
564
565  external_deps = [
566    "bounds_checking_function:libsec_static",
567    "drivers_peripheral_wlan:wifi_driver_client",
568    "init:libbegetutil",
569  ]
570  if (wpa_supplicant_config_openssl) {
571    external_deps += [
572      "openssl:libcrypto_shared",
573      "openssl:libssl_shared",
574    ]
575  }
576
577  if (wpa_supplicant_config_hilog) {
578    external_deps += [ "hilog:libhilog" ]
579  }
580
581  if ("${CONFIG_DRIVER}" == "nl80211") {
582    sources += [
583      "$WPA_ROOT_DIR/src/ap/ieee802_11_he.c",
584      "$WPA_ROOT_DIR/src/ap/ieee802_11_vht.c",
585      "$WPA_ROOT_DIR/src/drivers/driver_nl80211.c",
586      "$WPA_ROOT_DIR/src/drivers/driver_nl80211_capa.c",
587      "$WPA_ROOT_DIR/src/drivers/driver_nl80211_event.c",
588      "$WPA_ROOT_DIR/src/drivers/driver_nl80211_monitor.c",
589      "$WPA_ROOT_DIR/src/drivers/driver_nl80211_scan.c",
590      "$WPA_ROOT_DIR/src/drivers/linux_ioctl.c",
591      "$WPA_ROOT_DIR/src/drivers/netlink.c",
592      "$WPA_ROOT_DIR/src/drivers/rfkill.c",
593    ]
594    include_dirs += [
595      "$WPA_ROOT_DIR/libnl/include/libnl3",
596      "$WPA_ROOT_DIR/wpa_supplicant_lib",
597    ]
598
599    cflags += [
600      "-DCONFIG_DRIVER_NL80211",
601      "-DCONFIG_LIBNL32",
602      "-DCONFIG_LIBNL20",
603      "-DCONFIG_DEBUG_FILE",
604      "-DCONFIG_IEEE80211AC",
605      "-DCONFIG_IEEE80211AX",
606    ]
607    external_deps += [ "libnl:libnl_share" ]
608  } else {
609    sources += [
610      "$WPA_ROOT_DIR/src/drivers/wpa_hal.c",
611      "$WPA_ROOT_DIR/src/drivers/wpa_hal_event.c",
612    ]
613    cflags += [
614      "-DCONFIG_DRIVER_HDF",
615      "-DCONFIG_OHOS_P2P",
616    ]
617  }
618  if ("${CONFIG_HISI}" == "true") {
619    sources += [ "$WPA_ROOT_DIR/wpa_supplicant_lib/driver_nl80211_hisi.c" ]
620    cflags += [
621      "-DCONFIG_DRIVER_NL80211_HISI",
622      "-DCONFIG_P2P_160M",
623    ]
624    if (use_musl) {
625      cflags += [ "-DCONFIG_DRIVER_NL80211_HISI_TRUNK" ]
626    }
627  }
628  cflags += ext_cflags
629
630  if (wpa_supplicant_ohos_certmgr) {
631    sources += [ "$WPA_ROOT_DIR/wpa_supplicant_lib/wpa_evp_key.c" ]
632    sources += cert_manager_sources
633    external_deps += cert_manager_external_deps
634    include_dirs += cert_manager_include_dirs
635    defines += [ "CONFIG_OHOS_CERTMGR" ]
636  }
637  if (wpa_supplicant_vendor_ext) {
638    sources += wpa_vendor_ext_src
639    external_deps += [ "cJSON:cjson" ]
640    if (defined(global_parts_info.hiviewdfx_hisysevent)) {
641      external_deps += [ "hisysevent:libhisysevent" ]
642    }
643  }
644  if ("${CONFIG_EAPAUTH}" == "true") {
645    cflags += [ "-DCONFIG_EAP_AUTH" ]
646  }
647  configs = [ ":wpa_warnings" ]
648  part_name = "wpa_supplicant"
649  subsystem_name = "thirdparty"
650}
651
652ohos_shared_library("wpa_sys_updater") {
653  sanitize = {
654    cfi = true
655    integer_overflow = true
656    cfi_cross_dso = true
657    debug = false
658  }
659  output_name = "wpa_sys_updater"
660  sources = wpa_base_sources
661  include_dirs = wpa_base_include_dirs
662  symlink_target_name = [ "libwpa_sys.z.so" ]
663
664  cflags = [
665    "-UANDROID",
666    "-fsigned-char",
667    "-DCONFIG_IEEE80211W",
668    "-DCONFIG_NO_VLAN",
669    "-DCONFIG_NO_RADIUS",
670    "-DCONFIG_NO_RANDOM_POOL",
671    "-DCONFIG_SHA256",
672    "-DCONFIG_CRYPTO_INTERNAL",
673    "-DCONFIG_INTERNAL_LIBTOMMATH",
674    "-DCONFIG_INTERNAL_SHA384",
675    "-DCONFIG_INTERNAL_SHA512",
676    "-DCONFIG_CTRL_IFACE",
677    "-DCONFIG_IBSS_RSN",
678    "-DIEEE8021X_EAPOL",
679    "-DUSERSPACE_CLIENT_SUPPORT",
680    "-DCONFIG_BACKEND_FILE",
681    "-DCONFIG_NO_CONFIG_BLOBS",
682    "-DCONFIG_NO_ACCOUNTING",
683    "-DCONFIG_IEEE80211N",
684    "-DHOSTAPD",
685    "-DNEED_AP_MLME",
686    "-DCONFIG_WPS",
687    "-DCONFIG_AP",
688    "-DCONFIG_P2P",
689    "-DCONFIG_GAS",
690    "-DCONFIG_OFFCHANNEL",
691    "-DCONFIG_MAGICLINK",
692    "-DCONFIG_MAGICLINK_PC",
693    "-DCONFIG_OPEN_HARMONY_PATCH",
694    "-DCONFIG_SHA256",
695    "-DCONFIG_ECC",
696    "-DCONFIG_SAE",
697    "-DCONFIG_SME",
698    "-DCONFIG_SUITEB192",
699    "-DCONFIG_SHA384",
700    "-DCONFIG_SUITEB",
701    "-DCONFIG_WEP",
702    "-DPKCS12_FUNCS",
703  ]
704  if ("${CONFIG_CTRL_IFACE}" == "udp") {
705    cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ]
706  } else {
707    cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ]
708  }
709
710  if (wpa_supplicant_config_wfd) {
711    cflags += [ "-DCONFIG_WIFI_DISPLAY" ]
712  }
713
714  defines = [
715    "TLS_DEFAULT_CIPHERS = \"DEFAULT:!EXP:!LOW\"",
716    "OPENSSL_SUPPRESS_DEPRECATED",
717  ]
718
719  external_deps = [
720    "bounds_checking_function:libsec_static",
721    "drivers_peripheral_wlan:wifi_driver_client",
722    "init:libbegetutil",
723  ]
724  if (wpa_supplicant_config_openssl) {
725    external_deps += [
726      "openssl:libcrypto_shared",
727      "openssl:libssl_shared",
728    ]
729  }
730  if (wpa_supplicant_config_hilog) {
731    external_deps += [ "hilog:libhilog" ]
732  }
733
734  if ("${CONFIG_DRIVER}" == "nl80211") {
735    sources += [
736      "$WPA_ROOT_DIR/src/ap/ieee802_11_he.c",
737      "$WPA_ROOT_DIR/src/ap/ieee802_11_vht.c",
738      "$WPA_ROOT_DIR/src/drivers/driver_nl80211.c",
739      "$WPA_ROOT_DIR/src/drivers/driver_nl80211_capa.c",
740      "$WPA_ROOT_DIR/src/drivers/driver_nl80211_event.c",
741      "$WPA_ROOT_DIR/src/drivers/driver_nl80211_monitor.c",
742      "$WPA_ROOT_DIR/src/drivers/driver_nl80211_scan.c",
743      "$WPA_ROOT_DIR/src/drivers/linux_ioctl.c",
744      "$WPA_ROOT_DIR/src/drivers/netlink.c",
745      "$WPA_ROOT_DIR/src/drivers/rfkill.c",
746    ]
747    include_dirs += [
748      "$WPA_ROOT_DIR/libnl/include/libnl3",
749      "$WPA_ROOT_DIR/wpa_supplicant_lib",
750    ]
751
752    cflags += [
753      "-DCONFIG_DRIVER_NL80211",
754      "-DCONFIG_LIBNL32",
755      "-DCONFIG_LIBNL20",
756      "-DCONFIG_DEBUG_FILE",
757      "-DCONFIG_IEEE80211AC",
758      "-DCONFIG_IEEE80211AX",
759    ]
760    external_deps += [ "libnl:libnl_share" ]
761  } else {
762    sources += [
763      "$WPA_ROOT_DIR/src/drivers/wpa_hal.c",
764      "$WPA_ROOT_DIR/src/drivers/wpa_hal_event.c",
765    ]
766    cflags += [
767      "-DCONFIG_DRIVER_HDF",
768      "-DCONFIG_OHOS_P2P",
769    ]
770  }
771  if ("${CONFIG_HISI}" == "true") {
772    sources += [ "$WPA_ROOT_DIR/wpa_supplicant_lib/driver_nl80211_hisi.c" ]
773    cflags += [
774      "-DCONFIG_DRIVER_NL80211_HISI",
775      "-DCONFIG_P2P_160M",
776    ]
777    if (use_musl) {
778      cflags += [ "-DCONFIG_DRIVER_NL80211_HISI_TRUNK" ]
779    }
780  }
781  cflags += ext_cflags
782
783  if (wpa_supplicant_vendor_ext) {
784    sources += wpa_vendor_ext_src
785    external_deps += [ "cJSON:cjson" ]
786    if (defined(global_parts_info.hiviewdfx_hisysevent)) {
787      external_deps += [ "hisysevent:libhisysevent" ]
788    }
789  }
790  if ("${CONFIG_EAPAUTH}" == "true") {
791    cflags += [ "-DCONFIG_EAP_AUTH" ]
792  }
793  configs = [ ":wpa_warnings" ]
794  install_images = [ "updater" ]
795  part_name = "wpa_supplicant"
796  subsystem_name = "thirdparty"
797}
798
799ohos_shared_library("wpa") {
800  sanitize = {
801    cfi = true
802    cfi_cross_dso = true
803    debug = false
804  }
805  output_name = "wpa"
806  sources = wpa_base_sources
807
808  include_dirs = wpa_base_include_dirs
809  include_dirs += [ "hostapd/ap_ctrl_iface.h" ]
810
811  cflags = [
812    "-UANDROID",
813    "-fsigned-char",
814    "-DCONFIG_IEEE80211W",
815    "-DCONFIG_IEEE80211R",
816    "-DCONFIG_NO_VLAN",
817    "-DCONFIG_NO_RADIUS",
818    "-DCONFIG_NO_RANDOM_POOL",
819    "-DCONFIG_SHA256",
820    "-DCONFIG_CRYPTO_INTERNAL",
821    "-DCONFIG_INTERNAL_LIBTOMMATH",
822    "-DCONFIG_INTERNAL_SHA384",
823    "-DCONFIG_INTERNAL_SHA512",
824    "-DCONFIG_CTRL_IFACE",
825    "-DCONFIG_IBSS_RSN",
826    "-DIEEE8021X_EAPOL",
827    "-DUSERSPACE_CLIENT_SUPPORT",
828    "-DCONFIG_BACKEND_FILE",
829    "-DCONFIG_NO_CONFIG_BLOBS",
830    "-DCONFIG_NO_ACCOUNTING",
831    "-DEAP_SERVER_IDENTITY",
832    "-DCONFIG_IEEE80211N",
833    "-DHOSTAPD",
834    "-DNEED_AP_MLME",
835    "-DCONFIG_WPS",
836    "-DCONFIG_AP",
837    "-DCONFIG_P2P",
838    "-DEAP_WSC",
839    "-DEAP_SERVER_WSC",
840    "-DEAP_SERVER",
841    "-DCONFIG_GAS",
842    "-DCONFIG_OFFCHANNEL",
843    "-DCONFIG_MAGICLINK",
844    "-DCONFIG_MAGICLINK_PC",
845    "-DCONFIG_OPEN_HARMONY_PATCH",
846    "-DEAP_MSCHAPV2",
847    "-DEAP_TLS",
848    "-DEAP_PEAP",
849    "-DEAP_TTLS",
850    "-DEAP_SIM",
851    "-DEAP_PWD",
852    "-DEAP_MSCHAPv2",
853    "-DCONFIG_SHA256",
854    "-DCONFIG_ECC",
855    "-DEAP_AKA",
856    "-DEAP_AKA_PRIME",
857    "-DEAP_TLS_OPENSSL",
858    "-DCONFIG_SAE",
859    "-DCONFIG_SUITEB192",
860    "-DCONFIG_SHA384",
861    "-DCONFIG_SUITEB",
862    "-DCONFIG_SME",
863    "-DCONFIG_WEP",
864    "-DPKCS12_FUNCS",
865    "-DEAP_GTC",
866    "-DCONFIG_LIBWPA_VENDOR",
867  ]
868  if ("${CONFIG_CTRL_IFACE}" == "udp") {
869    cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ]
870  } else {
871    cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ]
872  }
873
874  if ("${CONFIG_MLO}" == "true") {
875    cflags += [ "-DCONFIG_MLD_PATCH" ]
876  }
877
878  if (wpa_supplicant_config_wfd) {
879    cflags += [ "-DCONFIG_WIFI_DISPLAY" ]
880  }
881
882  defines = [
883    "TLS_DEFAULT_CIPHERS = \"DEFAULT:!EXP:!LOW\"",
884    "OPENSSL_SUPPRESS_DEPRECATED",
885  ]
886
887  external_deps = [ "bounds_checking_function:libsec_static" ]
888  if (wpa_supplicant_config_openssl) {
889    external_deps += [
890      "openssl:libcrypto_shared",
891      "openssl:libssl_shared",
892    ]
893  }
894  external_deps += [
895    "drivers_peripheral_wlan:hostapd_hdi_client",
896    "drivers_peripheral_wlan:wifi_driver_client",
897    "drivers_peripheral_wlan:wpa_hdi_client",
898    "init:libbegetutil",
899  ]
900  if (wpa_supplicant_config_hilog) {
901    external_deps += [ "hilog:libhilog" ]
902  }
903
904  if ("${CONFIG_DRIVER}" == "nl80211") {
905    sources += [
906      "$WPA_ROOT_DIR/src/ap/ieee802_11_he.c",
907      "$WPA_ROOT_DIR/src/ap/ieee802_11_vht.c",
908      "$WPA_ROOT_DIR/src/drivers/driver_nl80211.c",
909      "$WPA_ROOT_DIR/src/drivers/driver_nl80211_capa.c",
910      "$WPA_ROOT_DIR/src/drivers/driver_nl80211_event.c",
911      "$WPA_ROOT_DIR/src/drivers/driver_nl80211_monitor.c",
912      "$WPA_ROOT_DIR/src/drivers/driver_nl80211_scan.c",
913      "$WPA_ROOT_DIR/src/drivers/linux_ioctl.c",
914      "$WPA_ROOT_DIR/src/drivers/netlink.c",
915      "$WPA_ROOT_DIR/src/drivers/rfkill.c",
916    ]
917    include_dirs += [
918      "$WPA_ROOT_DIR/libnl/include/libnl3",
919      "$WPA_ROOT_DIR/wpa_supplicant_lib",
920    ]
921
922    cflags += [
923      "-DCONFIG_DRIVER_NL80211",
924      "-DCONFIG_LIBNL32",
925      "-DCONFIG_LIBNL20",
926      "-DCONFIG_DEBUG_FILE",
927      "-DCONFIG_IEEE80211AC",
928      "-DCONFIG_IEEE80211AX",
929    ]
930    external_deps += [ "libnl:libnl_share" ]
931  } else {
932    sources += [
933      "$WPA_ROOT_DIR/src/drivers/wpa_hal.c",
934      "$WPA_ROOT_DIR/src/drivers/wpa_hal_event.c",
935    ]
936    cflags += [
937      "-DCONFIG_DRIVER_HDF",
938      "-DCONFIG_OHOS_P2P",
939    ]
940  }
941  if ("${CONFIG_HISI}" == "true") {
942    sources += [ "$WPA_ROOT_DIR/wpa_supplicant_lib/driver_nl80211_hisi.c" ]
943    cflags += [
944      "-DCONFIG_DRIVER_NL80211_HISI",
945      "-DCONFIG_P2P_160M",
946    ]
947    if (use_musl) {
948      cflags += [ "-DCONFIG_DRIVER_NL80211_HISI_TRUNK" ]
949    }
950  }
951  cflags += ext_cflags
952
953  if (wpa_supplicant_ohos_certmgr) {
954    sources += [ "$WPA_ROOT_DIR/wpa_supplicant_lib/wpa_evp_key.c" ]
955    sources += cert_manager_sources
956    external_deps += cert_manager_external_deps
957    include_dirs += cert_manager_include_dirs
958    defines += [ "CONFIG_OHOS_CERTMGR" ]
959  }
960  if (wpa_supplicant_vendor_ext) {
961    sources += wpa_vendor_ext_src
962    external_deps += [ "cJSON:cjson" ]
963    if (defined(global_parts_info.hiviewdfx_hisysevent)) {
964      external_deps += [ "hisysevent:libhisysevent" ]
965    }
966  }
967  if ("${CONFIG_EAPAUTH}" == "true") {
968    cflags += [ "-DCONFIG_EAP_AUTH" ]
969  }
970
971  public_configs = [ ":wpa_base_public_config" ]
972  install_images = [ chipset_base_dir ]
973  configs = [ ":wpa_warnings" ]
974  part_name = "wpa_supplicant"
975  subsystem_name = "thirdparty"
976}
977
978ohos_shared_library("wpa_updater") {
979  sanitize = {
980    cfi = true
981    cfi_cross_dso = true
982    debug = false
983  }
984  output_name = "wpa_updater"
985  sources = wpa_base_sources
986
987  include_dirs = wpa_base_include_dirs
988
989  cflags = [
990    "-UANDROID",
991    "-fsigned-char",
992    "-DCONFIG_IEEE80211W",
993    "-DCONFIG_NO_VLAN",
994    "-DCONFIG_NO_RADIUS",
995    "-DCONFIG_NO_RANDOM_POOL",
996    "-DCONFIG_SHA256",
997    "-DCONFIG_CRYPTO_INTERNAL",
998    "-DCONFIG_INTERNAL_LIBTOMMATH",
999    "-DCONFIG_INTERNAL_SHA384",
1000    "-DCONFIG_INTERNAL_SHA512",
1001    "-DCONFIG_CTRL_IFACE",
1002    "-DCONFIG_IBSS_RSN",
1003    "-DIEEE8021X_EAPOL",
1004    "-DUSERSPACE_CLIENT_SUPPORT",
1005    "-DCONFIG_BACKEND_FILE",
1006    "-DCONFIG_NO_CONFIG_BLOBS",
1007    "-DCONFIG_NO_ACCOUNTING",
1008    "-DCONFIG_IEEE80211N",
1009    "-DHOSTAPD",
1010    "-DNEED_AP_MLME",
1011    "-DCONFIG_WPS",
1012    "-DCONFIG_AP",
1013    "-DCONFIG_P2P",
1014    "-DCONFIG_GAS",
1015    "-DCONFIG_OFFCHANNEL",
1016    "-DCONFIG_MAGICLINK",
1017    "-DCONFIG_OPEN_HARMONY_PATCH",
1018    "-DCONFIG_SHA256",
1019    "-DCONFIG_ECC",
1020    "-DCONFIG_SAE",
1021    "-DCONFIG_SUITEB192",
1022    "-DCONFIG_SHA384",
1023    "-DCONFIG_SUITEB",
1024    "-DCONFIG_SME",
1025    "-DCONFIG_WEP",
1026    "-DPKCS12_FUNCS",
1027  ]
1028  if ("${CONFIG_CTRL_IFACE}" == "udp") {
1029    cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ]
1030  } else {
1031    cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ]
1032  }
1033
1034  if (wpa_supplicant_config_wfd) {
1035    cflags += [ "-DCONFIG_WIFI_DISPLAY" ]
1036  }
1037
1038  defines = [
1039    "TLS_DEFAULT_CIPHERS = \"DEFAULT:!EXP:!LOW\"",
1040    "OPENSSL_SUPPRESS_DEPRECATED",
1041    "OHOS_EUPDATER",
1042  ]
1043  external_deps = [
1044    "bounds_checking_function:libsec_static",
1045    "drivers_peripheral_wlan:wifi_driver_client",
1046    "drivers_peripheral_wlan:wpa_hdi_client",
1047    "init:libbegetutil",
1048  ]
1049  if (wpa_supplicant_config_openssl) {
1050    external_deps += [
1051      "openssl:libcrypto_shared",
1052      "openssl:libssl_shared",
1053    ]
1054  }
1055
1056  if (wpa_supplicant_config_hilog) {
1057    external_deps += [ "hilog:libhilog" ]
1058  }
1059
1060  if ("${CONFIG_DRIVER}" == "nl80211") {
1061    sources += [
1062      "$WPA_ROOT_DIR/src/ap/ieee802_11_he.c",
1063      "$WPA_ROOT_DIR/src/ap/ieee802_11_vht.c",
1064      "$WPA_ROOT_DIR/src/drivers/driver_nl80211.c",
1065      "$WPA_ROOT_DIR/src/drivers/driver_nl80211_capa.c",
1066      "$WPA_ROOT_DIR/src/drivers/driver_nl80211_event.c",
1067      "$WPA_ROOT_DIR/src/drivers/driver_nl80211_monitor.c",
1068      "$WPA_ROOT_DIR/src/drivers/driver_nl80211_scan.c",
1069      "$WPA_ROOT_DIR/src/drivers/linux_ioctl.c",
1070      "$WPA_ROOT_DIR/src/drivers/netlink.c",
1071      "$WPA_ROOT_DIR/src/drivers/rfkill.c",
1072    ]
1073    include_dirs += [
1074      "$WPA_ROOT_DIR/libnl/include/libnl3",
1075      "$WPA_ROOT_DIR/wpa_supplicant_lib",
1076    ]
1077
1078    cflags += [
1079      "-DCONFIG_DRIVER_NL80211",
1080      "-DCONFIG_LIBNL32",
1081      "-DCONFIG_LIBNL20",
1082      "-DCONFIG_DEBUG_FILE",
1083      "-DCONFIG_IEEE80211AC",
1084      "-DCONFIG_IEEE80211AX",
1085    ]
1086    external_deps += [ "libnl:libnl_share" ]
1087  } else {
1088    sources += [
1089      "$WPA_ROOT_DIR/src/drivers/wpa_hal.c",
1090      "$WPA_ROOT_DIR/src/drivers/wpa_hal_event.c",
1091    ]
1092    cflags += [
1093      "-DCONFIG_DRIVER_HDF",
1094      "-DCONFIG_OHOS_P2P",
1095    ]
1096  }
1097  if ("${CONFIG_HISI}" == "true") {
1098    sources += [ "$WPA_ROOT_DIR/wpa_supplicant_lib/driver_nl80211_hisi.c" ]
1099    cflags += [ "-DCONFIG_DRIVER_NL80211_HISI" ]
1100    if (use_musl) {
1101      cflags += [ "-DCONFIG_DRIVER_NL80211_HISI_TRUNK" ]
1102    }
1103  }
1104  symlink_target_name = [ "libwpa.z.so" ]
1105  configs = [ ":wpa_warnings" ]
1106  part_name = "wpa_supplicant"
1107  subsystem_name = "thirdparty"
1108  install_images = [ "updater" ]
1109}
1110
1111ohos_executable("wpa_cli") {
1112  sources = [
1113    "$WPA_ROOT_DIR/src/common/cli.c",
1114    "$WPA_ROOT_DIR/src/common/wpa_ctrl.c",
1115    "$WPA_ROOT_DIR/src/utils/${CONFIG_ELOOP}.c",
1116    "$WPA_ROOT_DIR/src/utils/common.c",
1117    "$WPA_ROOT_DIR/src/utils/edit_simple.c",
1118    "$WPA_ROOT_DIR/src/utils/os_${CONFIG_OS}.c",
1119    "$WPA_ROOT_DIR/src/utils/wpa_debug.c",
1120    "$WPA_ROOT_DIR/wpa_supplicant/wpa_cli.c",
1121  ]
1122
1123  include_dirs = [
1124    "$WPA_ROOT_DIR/src",
1125    "$WPA_ROOT_DIR/src/utils",
1126    "$WPA_ROOT_DIR/src/drivers",
1127    "$WPA_ROOT_DIR/wpa_supplicant",
1128    "$WPA_ROOT_DIR/build/include",
1129  ]
1130
1131  cflags = [
1132    "-UANDROID",
1133    "-fsigned-char",
1134    "-DCONFIG_IEEE80211W",
1135    "-DCONFIG_NO_VLAN",
1136    "-DCONFIG_NO_RADIUS",
1137    "-DCONFIG_NO_RANDOM_POOL",
1138    "-DCONFIG_SHA256",
1139    "-DCONFIG_CRYPTO_INTERNAL",
1140    "-DCONFIG_INTERNAL_LIBTOMMATH",
1141    "-DCONFIG_INTERNAL_SHA384",
1142    "-DCONFIG_INTERNAL_SHA512",
1143    "-DCONFIG_CTRL_IFACE",
1144    "-DCONFIG_IBSS_RSN",
1145    "-DIEEE8021X_EAPOL",
1146    "-DUSERSPACE_CLIENT_SUPPORT",
1147    "-DCONFIG_BACKEND_FILE",
1148    "-DCONFIG_NO_CONFIG_BLOBS",
1149    "-DCONFIG_WPS",
1150    "-DCONFIG_AP",
1151    "-DCONFIG_P2P",
1152    "-DEAP_WSC",
1153    "-DEAP_SERVER_WSC",
1154    "-DEAP_SERVER",
1155    "-DCONFIG_GAS",
1156    "-DCONFIG_OFFCHANNEL",
1157    "-DCONFIG_MAGICLINK",
1158    "-DCONFIG_DEBUG_FILE",
1159    "-DCONFIG_OPEN_HARMONY_PATCH",
1160  ]
1161  if ("${CONFIG_CTRL_IFACE}" == "udp") {
1162    cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ]
1163  } else {
1164    cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ]
1165  }
1166
1167  if (wpa_supplicant_config_wfd) {
1168    cflags += [ "-DCONFIG_WIFI_DISPLAY" ]
1169  }
1170
1171  if ("${CONFIG_DRIVER}" == "nl80211") {
1172    include_dirs += [ "$WPA_ROOT_DIR/libnl/include/libnl3" ]
1173    cflags += [
1174      "-DCONFIG_DRIVER_NL80211",
1175      "-DCONFIG_LIBNL32",
1176    ]
1177  } else {
1178    cflags += [
1179      "-DCONFIG_DRIVER_HDF",
1180      "-DCONFIG_OHOS_P2P",
1181    ]
1182  }
1183
1184  if (wpa_supplicant_vendor_ext) {
1185    include_dirs += wpa_vendor_ext_inc_path
1186    sources += wpa_vendor_ext_src_cli
1187    cflags += ext_cflags
1188  }
1189
1190  external_deps = [ "init:libbegetutil" ]
1191  if (wpa_supplicant_config_hilog) {
1192    external_deps += [ "hilog:libhilog" ]
1193  }
1194
1195  configs = [ ":wpa_warnings" ]
1196  part_name = "wpa_supplicant"
1197  subsystem_name = "thirdparty"
1198  install_images = [ chipset_base_dir ]
1199}
1200
1201ohos_executable("hostapd_cli") {
1202  sources = [
1203    "$WPA_ROOT_DIR/hostapd/hostapd_cli.c",
1204    "$WPA_ROOT_DIR/src/common/cli.c",
1205    "$WPA_ROOT_DIR/src/common/wpa_ctrl.c",
1206    "$WPA_ROOT_DIR/src/utils/${CONFIG_ELOOP}.c",
1207    "$WPA_ROOT_DIR/src/utils/common.c",
1208    "$WPA_ROOT_DIR/src/utils/edit_simple.c",
1209    "$WPA_ROOT_DIR/src/utils/os_${CONFIG_OS}.c",
1210    "$WPA_ROOT_DIR/src/utils/wpa_debug.c",
1211  ]
1212
1213  include_dirs = [
1214    "$WPA_ROOT_DIR/src",
1215    "$WPA_ROOT_DIR/src/utils",
1216    "$WPA_ROOT_DIR/src/drivers",
1217    "$WPA_ROOT_DIR/wpa_supplicant",
1218    "$WPA_ROOT_DIR/build/include",
1219    "$WPA_ROOT_DIR/libnl/include/libnl3",
1220  ]
1221
1222  cflags = [
1223    "-UANDROID",
1224    "-fsigned-char",
1225    "-DCONFIG_IEEE80211W",
1226    "-DCONFIG_NO_VLAN",
1227    "-DCONFIG_NO_RADIUS",
1228    "-DCONFIG_NO_RANDOM_POOL",
1229    "-DCONFIG_SHA256",
1230    "-DCONFIG_CRYPTO_INTERNAL",
1231    "-DCONFIG_INTERNAL_LIBTOMMATH",
1232    "-DCONFIG_INTERNAL_SHA384",
1233    "-DCONFIG_INTERNAL_SHA512",
1234    "-DCONFIG_CTRL_IFACE",
1235    "-DCONFIG_IBSS_RSN",
1236    "-DIEEE8021X_EAPOL",
1237    "-DUSERSPACE_CLIENT_SUPPORT",
1238    "-DCONFIG_BACKEND_FILE",
1239    "-DCONFIG_NO_CONFIG_BLOBS",
1240    "-DCONFIG_NO_ACCOUNTING",
1241    "-DEAP_SERVER_IDENTITY",
1242    "-DCONFIG_IEEE80211N",
1243    "-DHOSTAPD",
1244    "-DNEED_AP_MLME",
1245    "-DCONFIG_WPS",
1246    "-DCONFIG_AP",
1247    "-DCONFIG_P2P",
1248    "-DEAP_WSC",
1249    "-DEAP_SERVER_WSC",
1250    "-DEAP_SERVER",
1251    "-DCONFIG_GAS",
1252    "-DCONFIG_OFFCHANNEL",
1253    "-DCONFIG_DEBUG_FILE",
1254    "-DCONFIG_OPEN_HARMONY_PATCH",
1255  ]
1256
1257  if ("${CONFIG_CTRL_IFACE}" == "udp") {
1258    cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ]
1259  } else {
1260    cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ]
1261  }
1262
1263  if (wpa_supplicant_config_wfd) {
1264    cflags += [ "-DCONFIG_WIFI_DISPLAY" ]
1265  }
1266
1267  external_deps = [ "init:libbegetutil" ]
1268  if (wpa_supplicant_config_hilog) {
1269    external_deps += [ "hilog:libhilog" ]
1270  }
1271
1272  if ("${CONFIG_DRIVER}" == "nl80211") {
1273    cflags += [
1274      "-DCONFIG_DRIVER_NL80211",
1275      "-DCONFIG_LIBNL32",
1276    ]
1277  } else {
1278    cflags += [
1279      "-DCONFIG_DRIVER_HDF",
1280      "-DCONFIG_OHOS_P2P",
1281    ]
1282  }
1283  configs = [ ":wpa_warnings" ]
1284  part_name = "wpa_supplicant"
1285  subsystem_name = "thirdparty"
1286  install_images = [ chipset_base_dir ]
1287}
1288
1289ohos_executable("wpa_supplicant") {
1290  sources = [ "$WPA_ROOT_DIR/wpa_test/wpa_sample.c" ]
1291
1292  include_dirs = [ "$WPA_ROOT_DIR/build/include" ]
1293
1294  deps = [ ":wpa" ]
1295
1296  if (factory == true || build_variant != "user") {
1297    deps += [ ":wpa_cli" ]
1298  }
1299
1300  configs = [ ":wpa_warnings" ]
1301  cflags = [
1302    "-DCONFIG_DEBUG_FILE",
1303    "-DCONFIG_OPEN_HARMONY_PATCH",
1304  ]
1305  install_images = [ chipset_base_dir ]
1306  part_name = "wpa_supplicant"
1307  subsystem_name = "thirdparty"
1308}
1309
1310ohos_executable("hostapd") {
1311  sources = [ "$WPA_ROOT_DIR/hostapd_test/hostapd_sample.c" ]
1312
1313  include_dirs = [ "$WPA_ROOT_DIR/build/include" ]
1314
1315  deps = [ ":wpa" ]
1316
1317  configs = [ ":wpa_warnings" ]
1318  cflags = [
1319    "-DCONFIG_DEBUG_FILE",
1320    "-DCONFIG_OPEN_HARMONY_PATCH",
1321  ]
1322  install_images = [ chipset_base_dir ]
1323  part_name = "wpa_supplicant"
1324  subsystem_name = "thirdparty"
1325}
1326
1327group("wpa_supplicant_test") {
1328  testonly = true
1329  if (wpa_supplicant_vendor_ext) {
1330    deps = [ "//vendor/huawei/foundation/communication/wpa_supplicant_ext/test:wpa_vendor_test" ]
1331  }
1332}
1333