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