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 wpa_supplicant_config_okc_roam = false 34 wpa_supplicant_config_ext_auth = false 35} 36 37if (wpa_supplicant_ohos_certmgr) { 38 cert_manager_sources = [ 39 "$WPA_ROOT_DIR/wpa_supplicant_lib/cert_mgr_deps/src/cert_manager_api.c", 40 "$WPA_ROOT_DIR/wpa_supplicant_lib/cert_mgr_deps/src/cm_ipc_client.c", 41 "$WPA_ROOT_DIR/wpa_supplicant_lib/cert_mgr_deps/src/cm_ipc_client_serialization.c", 42 "$WPA_ROOT_DIR/wpa_supplicant_lib/cert_mgr_deps/src/cm_load_sa.cpp", 43 "$WPA_ROOT_DIR/wpa_supplicant_lib/cert_mgr_deps/src/cm_mem.c", 44 "$WPA_ROOT_DIR/wpa_supplicant_lib/cert_mgr_deps/src/cm_param.c", 45 "$WPA_ROOT_DIR/wpa_supplicant_lib/cert_mgr_deps/src/cm_request.cpp", 46 ] 47 48 cert_manager_include_dirs = 49 [ "$WPA_ROOT_DIR/wpa_supplicant_lib/cert_mgr_deps/include" ] 50 51 cert_manager_external_deps = [ 52 "c_utils:utils", 53 "ipc:ipc_single", 54 "openssl:libcrypto_shared", 55 "samgr:samgr_proxy", 56 ] 57} 58 59if (wpa_supplicant_driver_nl80211_hisi) { 60 CONFIG_HISI = "true" 61} else { 62 CONFIG_HISI = "false" 63} 64if (wpa_supplicant_driver_nl80211) { 65 CONFIG_DRIVER = "nl80211" 66} else { 67 CONFIG_DRIVER = "hdf" 68} 69if (wpa_supplicant_ohos_eapauth) { 70 CONFIG_EAPAUTH = "true" 71} else { 72 CONFIG_EAPAUTH = "false" 73} 74if (wpa_supplicant_config_mlo) { 75 CONFIG_MLO = "true" 76} else { 77 CONFIG_MLO = "false" 78} 79 80CONFIG_OS = "unix" 81CONFIG_ELOOP = "eloop" 82if ("${CONFIG_DRIVER}" == "nl80211") { 83 CONFIG_L2_PACKET = "linux" 84} else { 85 CONFIG_L2_PACKET = "rtos" 86} 87 88CONFIG_MAIN = "main" 89 90config("wpa_warnings") { 91 cflags = [ "-Wno-error=sign-compare" ] 92 if (wpa_supplicant_config_ext_auth) { 93 cflags += [ "-DEXT_AUTHENTICATION_SUPPORT" ] 94 } 95 ldflags = [ 96 "-flto", 97 "-fsanitize=cfi", 98 "-Wl,-plugin-opt,O1", 99 ] 100} 101 102wpa_client_base_sources = [ 103 "$WPA_ROOT_DIR/src/common/wpa_ctrl.c", 104 "$WPA_ROOT_DIR/src/utils/common.c", 105 "$WPA_ROOT_DIR/src/utils/os_${CONFIG_OS}.c", 106 "$WPA_ROOT_DIR/src/utils/wpa_debug.c", 107] 108 109wpa_client_base_include_dirs = [ 110 "$WPA_ROOT_DIR/src", 111 "$WPA_ROOT_DIR/src/utils", 112 "$WPA_ROOT_DIR/src/drivers", 113 "$WPA_ROOT_DIR/wpa_supplicant", 114 "$WPA_ROOT_DIR/build/include", 115] 116 117wpa_client_vendor_base_include_dirs = [ 118 "$WPA_ROOT_DIR/src", 119 "$WPA_ROOT_DIR/src/utils", 120 "$WPA_ROOT_DIR/src/drivers", 121 "$WPA_ROOT_DIR/wpa_supplicant", 122 "$WPA_ROOT_DIR/build/include", 123] 124 125config("wpa_base_public_config") { 126 include_dirs = [ 127 "$WPA_ROOT_DIR/src", 128 "$WPA_ROOT_DIR/src/common", 129 "$WPA_ROOT_DIR/src/utils", 130 "$WPA_ROOT_DIR/wpa_supplicant", 131 "$WPA_ROOT_DIR/hostapd", 132 "$WPA_ROOT_DIR/wpa_supplicant_lib", 133 ] 134} 135 136wpa_client_base_cflags = [ 137 "-UANDROID", 138 "-fsigned-char", 139 "-DCONFIG_IEEE80211W", 140 "-DCONFIG_IEEE80211R", 141 "-DCONFIG_NO_VLAN", 142 "-DCONFIG_NO_RADIUS", 143 "-DCONFIG_NO_RANDOM_POOL", 144 "-DCONFIG_SHA256", 145 "-DCONFIG_INTERNAL_LIBTOMMATH", 146 "-DCONFIG_INTERNAL_SHA384", 147 "-DCONFIG_INTERNAL_SHA512", 148 "-DCONFIG_CTRL_IFACE", 149 "-DCONFIG_IBSS_RSN", 150 "-DIEEE8021X_EAPOL", 151 "-DCONFIG_BACEND_FILE", 152 "-DCONFIG_NO_CONFIG_BLOBS", 153 "-DUSERSPACE_CLIENT_SUPPORT", 154 "-DCONFIG_DEBUG_FILE", 155 "-DCONFIG_OPEN_HARMONY_PATCH", 156] 157 158ohos_shared_library("wpa_client") { 159 sanitize = { 160 cfi = true 161 cfi_cross_dso = true 162 debug = false 163 } 164 165 output_name = "wpa_client" 166 sources = wpa_client_base_sources 167 168 include_dirs = wpa_client_base_include_dirs 169 170 cflags = wpa_client_base_cflags 171 if (wpa_supplicant_config_ext_auth) { 172 cflags += [ "-DEXT_AUTHENTICATION_SUPPORT" ] 173 } 174 if ("${CONFIG_CTRL_IFACE}" == "udp") { 175 cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ] 176 } else { 177 cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ] 178 } 179 180 external_deps = [ "init:libbegetutil" ] 181 if (wpa_supplicant_config_hilog) { 182 external_deps += [ "hilog:libhilog" ] 183 } 184 if ("${CONFIG_DRIVER}" == "nl80211") { 185 include_dirs += [ "$WPA_ROOT_DIR/libnl/include/libnl3" ] 186 cflags += [ 187 "-DCONFIG_DRIVER_NL80211", 188 "-DCONFIG_LIBNL32", 189 ] 190 } else { 191 cflags += [ 192 "-DCONFIG_DRIVER_HDF", 193 "-DCONFIG_OHOS_P2P", 194 ] 195 } 196 public_configs = [ ":wpa_base_public_config" ] 197 configs = [ ":wpa_warnings" ] 198 part_name = "wpa_supplicant" 199 subsystem_name = "thirdparty" 200 install_images = [ "system" ] 201} 202 203ohos_shared_library("wpa_client_vendor") { 204 sanitize = { 205 cfi = true 206 cfi_cross_dso = true 207 debug = false 208 } 209 210 output_name = "wpa_client_vendor" 211 sources = wpa_client_base_sources 212 213 include_dirs = wpa_client_vendor_base_include_dirs 214 215 cflags = wpa_client_base_cflags 216 if (wpa_supplicant_config_ext_auth) { 217 cflags += [ "-DEXT_AUTHENTICATION_SUPPORT" ] 218 } 219 if ("${CONFIG_CTRL_IFACE}" == "udp") { 220 cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ] 221 } else { 222 cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ] 223 } 224 225 external_deps = [ "init:libbegetutil" ] 226 if (wpa_supplicant_config_hilog) { 227 external_deps += [ "hilog:libhilog" ] 228 } 229 if ("${CONFIG_DRIVER}" == "nl80211") { 230 include_dirs += [ "$WPA_ROOT_DIR/libnl/include/libnl3" ] 231 cflags += [ 232 "-DCONFIG_DRIVER_NL80211", 233 "-DCONFIG_LIBNL32", 234 ] 235 } else { 236 cflags += [ 237 "-DCONFIG_DRIVER_HDF", 238 "-DCONFIG_OHOS_P2P", 239 ] 240 } 241 public_configs = [ ":wpa_base_public_config" ] 242 configs = [ ":wpa_warnings" ] 243 part_name = "wpa_supplicant" 244 subsystem_name = "thirdparty" 245 install_images = [ 246 chipset_base_dir, 247 updater_vendor_base_dir 248 ] 249} 250 251wpa_base_sources = [ 252 # wpa & hostapd 253 "$WPA_ROOT_DIR/hostapd/ap_config_file.c", 254 "$WPA_ROOT_DIR/hostapd/ap_ctrl_iface.c", 255 "$WPA_ROOT_DIR/hostapd/ap_eap_register.c", 256 257 # hostapd 258 "$WPA_ROOT_DIR/hostapd/ap_main.c", 259 "$WPA_ROOT_DIR/src/ap/ap_config.c", 260 "$WPA_ROOT_DIR/src/ap/ap_drv_ops.c", 261 "$WPA_ROOT_DIR/src/ap/ap_list.c", 262 "$WPA_ROOT_DIR/src/ap/ap_mlme.c", 263 "$WPA_ROOT_DIR/src/ap/ap_rrm.c", 264 "$WPA_ROOT_DIR/src/ap/authsrv.c", 265 "$WPA_ROOT_DIR/src/ap/beacon.c", 266 "$WPA_ROOT_DIR/src/ap/bss_load.c", 267 "$WPA_ROOT_DIR/src/ap/comeback_token.c", 268 "$WPA_ROOT_DIR/src/ap/ctrl_iface_ap.c", 269 "$WPA_ROOT_DIR/src/ap/dfs.c", 270 "$WPA_ROOT_DIR/src/ap/drv_callbacks.c", 271 "$WPA_ROOT_DIR/src/ap/eap_user_db.c", 272 "$WPA_ROOT_DIR/src/ap/hostapd.c", 273 "$WPA_ROOT_DIR/src/ap/hw_features.c", 274 "$WPA_ROOT_DIR/src/ap/ieee802_11.c", 275 "$WPA_ROOT_DIR/src/ap/ieee802_11_auth.c", 276 "$WPA_ROOT_DIR/src/ap/ieee802_11_ht.c", 277 "$WPA_ROOT_DIR/src/ap/ieee802_11_shared.c", 278 "$WPA_ROOT_DIR/src/ap/ieee802_1x.c", 279 "$WPA_ROOT_DIR/src/ap/neighbor_db.c", 280 "$WPA_ROOT_DIR/src/ap/pmksa_cache_auth.c", 281 "$WPA_ROOT_DIR/src/ap/preauth_auth.c", 282 "$WPA_ROOT_DIR/src/ap/sta_info.c", 283 "$WPA_ROOT_DIR/src/ap/tkip_countermeasures.c", 284 "$WPA_ROOT_DIR/src/ap/utils.c", 285 "$WPA_ROOT_DIR/src/ap/wmm.c", 286 "$WPA_ROOT_DIR/src/ap/wpa_auth.c", 287 "$WPA_ROOT_DIR/src/ap/wpa_auth_glue.c", 288 "$WPA_ROOT_DIR/src/ap/wpa_auth_ie.c", 289 "$WPA_ROOT_DIR/src/common/ctrl_iface_common.c", 290 "$WPA_ROOT_DIR/src/common/hw_features_common.c", 291 "$WPA_ROOT_DIR/src/common/ieee802_11_common.c", 292 "$WPA_ROOT_DIR/src/common/ptksa_cache.c", 293 "$WPA_ROOT_DIR/src/common/wpa_common.c", 294 "$WPA_ROOT_DIR/src/crypto/aes-internal.c", 295 "$WPA_ROOT_DIR/src/crypto/aes-omac1.c", 296 "$WPA_ROOT_DIR/src/crypto/sha1-prf.c", 297 "$WPA_ROOT_DIR/src/crypto/sha256-prf.c", 298 "$WPA_ROOT_DIR/src/drivers/driver_common.c", 299 "$WPA_ROOT_DIR/src/drivers/drivers.c", 300 "$WPA_ROOT_DIR/src/eap_common/eap_common.c", 301 "$WPA_ROOT_DIR/src/eap_peer/eap.c", 302 "$WPA_ROOT_DIR/src/eap_peer/eap_methods.c", 303 "$WPA_ROOT_DIR/src/eap_server/eap_server.c", 304 "$WPA_ROOT_DIR/src/eap_server/eap_server_identity.c", 305 "$WPA_ROOT_DIR/src/eap_server/eap_server_methods.c", 306 "$WPA_ROOT_DIR/src/eapol_auth/eapol_auth_sm.c", 307 "$WPA_ROOT_DIR/src/eapol_supp/eapol_supp_sm.c", 308 "$WPA_ROOT_DIR/src/l2_packet/l2_packet_${CONFIG_L2_PACKET}.c", 309 "$WPA_ROOT_DIR/src/pasn/pasn_common.c", 310 "$WPA_ROOT_DIR/src/pasn/pasn_responder.c", 311 "$WPA_ROOT_DIR/src/rsn_supp/pmksa_cache.c", 312 "$WPA_ROOT_DIR/src/rsn_supp/preauth.c", 313 "$WPA_ROOT_DIR/src/rsn_supp/wpa.c", 314 "$WPA_ROOT_DIR/src/rsn_supp/wpa_ft.c", 315 "$WPA_ROOT_DIR/src/rsn_supp/wpa_i.h", 316 "$WPA_ROOT_DIR/src/rsn_supp/wpa_ie.c", 317 "$WPA_ROOT_DIR/src/utils/${CONFIG_ELOOP}.c", 318 "$WPA_ROOT_DIR/src/utils/bitfield.c", 319 "$WPA_ROOT_DIR/src/utils/common.c", 320 "$WPA_ROOT_DIR/src/utils/ip_addr.c", 321 "$WPA_ROOT_DIR/src/utils/os_${CONFIG_OS}.c", 322 "$WPA_ROOT_DIR/src/utils/radiotap.c", 323 "$WPA_ROOT_DIR/src/utils/wpa_debug.c", 324 "$WPA_ROOT_DIR/src/utils/wpabuf.c", 325 "$WPA_ROOT_DIR/wpa_supplicant/${CONFIG_MAIN}.c", 326 "$WPA_ROOT_DIR/wpa_supplicant/bss.c", 327 "$WPA_ROOT_DIR/wpa_supplicant/bssid_ignore.c", 328 329 # wpa_supplicant 330 "$WPA_ROOT_DIR/src/crypto/sha384-kdf.c", 331 "$WPA_ROOT_DIR/src/crypto/sha384-prf.c", 332 "$WPA_ROOT_DIR/wpa_supplicant/config.c", 333 "$WPA_ROOT_DIR/wpa_supplicant/config_file.c", 334 "$WPA_ROOT_DIR/wpa_supplicant/ctrl_iface.c", 335 "$WPA_ROOT_DIR/wpa_supplicant/ctrl_iface_${CONFIG_CTRL_IFACE}.c", 336 "$WPA_ROOT_DIR/wpa_supplicant/eap_register.c", 337 "$WPA_ROOT_DIR/wpa_supplicant/events.c", 338 "$WPA_ROOT_DIR/wpa_supplicant/ibss_rsn.c", 339 "$WPA_ROOT_DIR/wpa_supplicant/notify.c", 340 "$WPA_ROOT_DIR/wpa_supplicant/op_classes.c", 341 "$WPA_ROOT_DIR/wpa_supplicant/robust_av.c", 342 "$WPA_ROOT_DIR/wpa_supplicant/rrm.c", 343 "$WPA_ROOT_DIR/wpa_supplicant/scan.c", 344 "$WPA_ROOT_DIR/wpa_supplicant/wmm_ac.c", 345 "$WPA_ROOT_DIR/wpa_supplicant/wpa_supplicant.c", 346 "$WPA_ROOT_DIR/wpa_supplicant/wpas_glue.c", 347 348 #sae 349 "$WPA_ROOT_DIR/src/common/sae.c", 350 "$WPA_ROOT_DIR/wpa_supplicant/sme.c", 351 352 #p2p 353 "$WPA_ROOT_DIR/src/ap/p2p_hostapd.c", 354 "$WPA_ROOT_DIR/src/ap/wps_hostapd.c", 355 "$WPA_ROOT_DIR/src/common/dragonfly.c", 356 "$WPA_ROOT_DIR/src/common/gas.c", 357 "$WPA_ROOT_DIR/src/crypto/crypto_openssl.c", 358 "$WPA_ROOT_DIR/src/crypto/dh_groups.c", 359 "$WPA_ROOT_DIR/src/crypto/fips_prf_openssl.c", 360 "$WPA_ROOT_DIR/src/crypto/ms_funcs.c", 361 "$WPA_ROOT_DIR/src/crypto/sha1-tlsprf.c", 362 "$WPA_ROOT_DIR/src/crypto/sha256-kdf.c", 363 "$WPA_ROOT_DIR/src/crypto/tls_openssl.c", 364 "$WPA_ROOT_DIR/src/crypto/tls_openssl_ocsp.c", 365 "$WPA_ROOT_DIR/src/eap_common/chap.c", 366 "$WPA_ROOT_DIR/src/eap_common/eap_peap_common.c", 367 "$WPA_ROOT_DIR/src/eap_common/eap_pwd_common.c", 368 "$WPA_ROOT_DIR/src/eap_common/eap_sim_common.c", 369 "$WPA_ROOT_DIR/src/eap_common/eap_wsc_common.c", 370 "$WPA_ROOT_DIR/src/eap_common/ext_authentication.c", 371 "$WPA_ROOT_DIR/src/eap_peer/eap_aka.c", 372 "$WPA_ROOT_DIR/src/eap_peer/eap_gtc.c", 373 "$WPA_ROOT_DIR/src/eap_peer/eap_mschapv2.c", 374 "$WPA_ROOT_DIR/src/eap_peer/eap_peap.c", 375 "$WPA_ROOT_DIR/src/eap_peer/eap_pwd.c", 376 "$WPA_ROOT_DIR/src/eap_peer/eap_sim.c", 377 "$WPA_ROOT_DIR/src/eap_peer/eap_tls.c", 378 "$WPA_ROOT_DIR/src/eap_peer/eap_tls_common.c", 379 "$WPA_ROOT_DIR/src/eap_peer/eap_ttls.c", 380 "$WPA_ROOT_DIR/src/eap_peer/eap_wsc.c", 381 "$WPA_ROOT_DIR/src/eap_peer/mschapv2.c", 382 "$WPA_ROOT_DIR/src/eap_server/eap_server_wsc.c", 383 "$WPA_ROOT_DIR/src/p2p/p2p.c", 384 "$WPA_ROOT_DIR/src/p2p/p2p_build.c", 385 "$WPA_ROOT_DIR/src/p2p/p2p_dev_disc.c", 386 "$WPA_ROOT_DIR/src/p2p/p2p_go_neg.c", 387 "$WPA_ROOT_DIR/src/p2p/p2p_group.c", 388 "$WPA_ROOT_DIR/src/p2p/p2p_invitation.c", 389 "$WPA_ROOT_DIR/src/p2p/p2p_parse.c", 390 "$WPA_ROOT_DIR/src/p2p/p2p_pd.c", 391 "$WPA_ROOT_DIR/src/p2p/p2p_sd.c", 392 "$WPA_ROOT_DIR/src/p2p/p2p_utils.c", 393 "$WPA_ROOT_DIR/src/tls/bignum.c", 394 "$WPA_ROOT_DIR/src/utils/base64.c", 395 "$WPA_ROOT_DIR/src/utils/config.c", 396 "$WPA_ROOT_DIR/src/utils/crc32.c", 397 "$WPA_ROOT_DIR/src/utils/uuid.c", 398 "$WPA_ROOT_DIR/src/wps/wps.c", 399 "$WPA_ROOT_DIR/src/wps/wps_attr_build.c", 400 "$WPA_ROOT_DIR/src/wps/wps_attr_parse.c", 401 "$WPA_ROOT_DIR/src/wps/wps_attr_process.c", 402 "$WPA_ROOT_DIR/src/wps/wps_common.c", 403 "$WPA_ROOT_DIR/src/wps/wps_dev_attr.c", 404 "$WPA_ROOT_DIR/src/wps/wps_enrollee.c", 405 "$WPA_ROOT_DIR/src/wps/wps_registrar.c", 406 "$WPA_ROOT_DIR/wpa_supplicant/ap.c", 407 "$WPA_ROOT_DIR/wpa_supplicant/gas_query.c", 408 "$WPA_ROOT_DIR/wpa_supplicant/offchannel.c", 409 "$WPA_ROOT_DIR/wpa_supplicant/p2p_supplicant.c", 410 "$WPA_ROOT_DIR/wpa_supplicant/p2p_supplicant_sd.c", 411 "$WPA_ROOT_DIR/wpa_supplicant/wps_supplicant.c", 412 "$WPA_ROOT_DIR/wpa_supplicant_lib/wpa_magiclink.c", 413] 414 415if ("${CONFIG_EAPAUTH}" == "true") { 416 wpa_base_sources += [ 417 "$WPA_ROOT_DIR/src/crypto/aes-encblock.c", 418 "$WPA_ROOT_DIR/src/crypto/milenage.c", 419 ] 420} 421 422if (wpa_supplicant_config_wfd) { 423 wpa_base_sources += [ "$WPA_ROOT_DIR/wpa_supplicant/wifi_display.c" ] 424} 425 426wpa_base_include_dirs = [ 427 "$WPA_ROOT_DIR/src", 428 "$WPA_ROOT_DIR/src/ap", 429 "$WPA_ROOT_DIR/src/common", 430 "$WPA_ROOT_DIR/src/utils", 431 "$WPA_ROOT_DIR/src/drivers", 432 "$WPA_ROOT_DIR/src/pasn", 433 "$WPA_ROOT_DIR/wpa_supplicant", 434 "$WPA_ROOT_DIR/build/include", 435 "$WPA_ROOT_DIR/wpa_supplicant_lib", 436 "$WPA_ROOT_DIR/src/crypto", 437 "$WPA_ROOT_DIR/src/eap_common", 438] 439 440if (wpa_supplicant_vendor_ext) { 441 wpa_base_include_dirs += wpa_vendor_ext_inc_path 442} 443 444if (wpa_supplicant_vendor_ext == false || wpa_supplicant_wapi == false) { 445 wpa_base_include_dirs += [ "$WPA_ROOT_DIR/wpa_supplicant/wapi" ] 446 wpa_base_sources += [ "$WPA_ROOT_DIR/wpa_supplicant/wapi/wapi_asue_i.c" ] 447} 448 449ohos_shared_library("wpa") { 450 version_script = "libwpa.map.txt" 451 sanitize = { 452 cfi = true 453 cfi_cross_dso = true 454 debug = false 455 } 456 output_name = "wpa" 457 sources = wpa_base_sources 458 459 include_dirs = wpa_base_include_dirs 460 include_dirs += [ "hostapd/ap_ctrl_iface.h" ] 461 462 cflags = [ 463 "-UANDROID", 464 "-fsigned-char", 465 "-DCONFIG_IEEE80211W", 466 "-DCONFIG_IEEE80211R", 467 "-DCONFIG_NO_VLAN", 468 "-DCONFIG_NO_RADIUS", 469 "-DCONFIG_NO_RANDOM_POOL", 470 "-DCONFIG_SHA256", 471 "-DCONFIG_INTERNAL_LIBTOMMATH", 472 "-DCONFIG_INTERNAL_SHA384", 473 "-DCONFIG_INTERNAL_SHA512", 474 "-DCONFIG_CTRL_IFACE", 475 "-DCONFIG_IBSS_RSN", 476 "-DIEEE8021X_EAPOL", 477 "-DUSERSPACE_CLIENT_SUPPORT", 478 "-DCONFIG_BACKEND_FILE", 479 "-DCONFIG_NO_CONFIG_BLOBS", 480 "-DCONFIG_NO_ACCOUNTING", 481 "-DEAP_SERVER_IDENTITY", 482 "-DCONFIG_IEEE80211N", 483 "-DHOSTAPD", 484 "-DNEED_AP_MLME", 485 "-DCONFIG_WPS", 486 "-DCONFIG_AP", 487 "-DCONFIG_P2P", 488 "-DEAP_WSC", 489 "-DEAP_SERVER_WSC", 490 "-DEAP_SERVER", 491 "-DCONFIG_GAS", 492 "-DCONFIG_OFFCHANNEL", 493 "-DCONFIG_MAGICLINK", 494 "-DCONFIG_MAGICLINK_PC", 495 "-DCONFIG_OPEN_HARMONY_PATCH", 496 "-DEAP_MSCHAPV2", 497 "-DEAP_TLS", 498 "-DEAP_PEAP", 499 "-DEAP_TTLS", 500 "-DEAP_SIM", 501 "-DEAP_PWD", 502 "-DEAP_MSCHAPv2", 503 "-DCONFIG_SHA256", 504 "-DCONFIG_ECC", 505 "-DEAP_AKA", 506 "-DEAP_AKA_PRIME", 507 "-DEAP_TLS_OPENSSL", 508 "-DCONFIG_SAE", 509 "-DCONFIG_SUITEB192", 510 "-DCONFIG_SHA384", 511 "-DCONFIG_SUITEB", 512 "-DCONFIG_SME", 513 "-DCONFIG_WEP", 514 "-DPKCS12_FUNCS", 515 "-DEAP_GTC", 516 "-DCONFIG_LIBWPA_VENDOR", 517 "-DCONFIG_P2P_USER_REJECT", 518 "-DCONFIG_HUKS_ENCRYPTION_SUPPORT", 519 ] 520 if (wpa_supplicant_config_ext_auth) { 521 cflags += [ "-DEXT_AUTHENTICATION_SUPPORT" ] 522 } 523 if ("${CONFIG_CTRL_IFACE}" == "udp") { 524 cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ] 525 } else { 526 cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ] 527 } 528 529 if ("${CONFIG_MLO}" == "true") { 530 cflags += [ "-DCONFIG_MLD_PATCH" ] 531 } 532 533 if (wpa_supplicant_config_wfd) { 534 cflags += [ "-DCONFIG_WIFI_DISPLAY" ] 535 } 536 537 if (wpa_supplicant_config_okc_roam) { 538 cflags += [ "-DCONFIG_OKC_ROAM" ] 539 } 540 541 defines = [ 542 "TLS_DEFAULT_CIPHERS = \"DEFAULT:!EXP:!LOW\"", 543 "OPENSSL_SUPPRESS_DEPRECATED", 544 ] 545 546 external_deps = [ "bounds_checking_function:libsec_static" ] 547 if (wpa_supplicant_config_openssl) { 548 external_deps += [ 549 "openssl:libcrypto_shared", 550 "openssl:libssl_shared", 551 ] 552 } 553 external_deps += [ 554 "drivers_peripheral_wlan:hostapd_hdi_client", 555 "drivers_peripheral_wlan:wifi_driver_client", 556 "drivers_peripheral_wlan:wpa_hdi_client", 557 "huks:libhukssdk", 558 "init:libbegetutil", 559 ] 560 if (wpa_supplicant_config_hilog) { 561 external_deps += [ "hilog:libhilog" ] 562 } 563 if (wpa_supplicant_config_ext_auth) { 564 cflags += [ "-DCONFIG_DRIVER_WIRED" ] 565 sources += [ 566 "$WPA_ROOT_DIR/src/drivers/driver_wired.c", 567 "$WPA_ROOT_DIR/src/drivers/driver_wired_common.c", 568 ] 569 external_deps += [ "drivers_peripheral_ethernet:ethernet_hdi_client" ] 570 } 571 572 if ("${CONFIG_DRIVER}" == "nl80211") { 573 sources += [ 574 "$WPA_ROOT_DIR/src/ap/ieee802_11_he.c", 575 "$WPA_ROOT_DIR/src/ap/ieee802_11_vht.c", 576 "$WPA_ROOT_DIR/src/drivers/driver_nl80211.c", 577 "$WPA_ROOT_DIR/src/drivers/driver_nl80211_capa.c", 578 "$WPA_ROOT_DIR/src/drivers/driver_nl80211_event.c", 579 "$WPA_ROOT_DIR/src/drivers/driver_nl80211_monitor.c", 580 "$WPA_ROOT_DIR/src/drivers/driver_nl80211_scan.c", 581 "$WPA_ROOT_DIR/src/drivers/linux_ioctl.c", 582 "$WPA_ROOT_DIR/src/drivers/netlink.c", 583 "$WPA_ROOT_DIR/src/drivers/rfkill.c", 584 ] 585 include_dirs += [ 586 "$WPA_ROOT_DIR/libnl/include/libnl3", 587 "$WPA_ROOT_DIR/wpa_supplicant_lib", 588 ] 589 590 cflags += [ 591 "-DCONFIG_DRIVER_NL80211", 592 "-DCONFIG_LIBNL32", 593 "-DCONFIG_LIBNL20", 594 "-DCONFIG_DEBUG_FILE", 595 "-DCONFIG_IEEE80211AC", 596 "-DCONFIG_IEEE80211AX", 597 ] 598 if (wpa_supplicant_ieee80211be) { 599 sources += [ "$WPA_ROOT_DIR/src/ap/ieee802_11_eht.c" ] 600 cflags += [ "-DCONFIG_IEEE80211BE" ] 601 } 602 external_deps += [ "libnl:libnl_share" ] 603 } else { 604 sources += [ 605 "$WPA_ROOT_DIR/src/drivers/wpa_hal.c", 606 "$WPA_ROOT_DIR/src/drivers/wpa_hal_event.c", 607 ] 608 cflags += [ 609 "-DCONFIG_DRIVER_HDF", 610 "-DCONFIG_OHOS_P2P", 611 ] 612 } 613 if ("${CONFIG_HISI}" == "true") { 614 sources += [ "$WPA_ROOT_DIR/wpa_supplicant_lib/driver_nl80211_hisi.c" ] 615 cflags += [ 616 "-DCONFIG_DRIVER_NL80211_HISI", 617 "-DCONFIG_P2P_160M", 618 ] 619 if (use_musl) { 620 cflags += [ "-DCONFIG_DRIVER_NL80211_HISI_TRUNK" ] 621 } 622 } 623 cflags += ext_cflags 624 625 if (wpa_supplicant_ohos_certmgr) { 626 sources += [ "$WPA_ROOT_DIR/wpa_supplicant_lib/wpa_evp_key.c" ] 627 sources += cert_manager_sources 628 external_deps += cert_manager_external_deps 629 include_dirs += cert_manager_include_dirs 630 defines += [ "CONFIG_OHOS_CERTMGR" ] 631 } 632 if (wpa_supplicant_vendor_ext) { 633 sources += wpa_vendor_ext_src 634 external_deps += [ "cJSON:cjson" ] 635 if (wpa_supplicant_hisysevent_module != "") { 636 external_deps += [ wpa_supplicant_hisysevent_module ] 637 } 638 } 639 if ("${CONFIG_EAPAUTH}" == "true") { 640 cflags += [ "-DCONFIG_EAP_AUTH" ] 641 } 642 643 public_configs = [ ":wpa_base_public_config" ] 644 install_images = [ 645 chipset_base_dir, 646 updater_vendor_base_dir 647 ] 648 configs = [ ":wpa_warnings" ] 649 part_name = "wpa_supplicant" 650 subsystem_name = "thirdparty" 651} 652 653ohos_executable("wpa_cli") { 654 sources = [ 655 "$WPA_ROOT_DIR/src/common/cli.c", 656 "$WPA_ROOT_DIR/src/common/wpa_ctrl.c", 657 "$WPA_ROOT_DIR/src/utils/${CONFIG_ELOOP}.c", 658 "$WPA_ROOT_DIR/src/utils/common.c", 659 "$WPA_ROOT_DIR/src/utils/edit_simple.c", 660 "$WPA_ROOT_DIR/src/utils/os_${CONFIG_OS}.c", 661 "$WPA_ROOT_DIR/src/utils/wpa_debug.c", 662 "$WPA_ROOT_DIR/wpa_supplicant/wpa_cli.c", 663 ] 664 665 include_dirs = [ 666 "$WPA_ROOT_DIR/src", 667 "$WPA_ROOT_DIR/src/utils", 668 "$WPA_ROOT_DIR/src/drivers", 669 "$WPA_ROOT_DIR/wpa_supplicant", 670 "$WPA_ROOT_DIR/build/include", 671 ] 672 673 cflags = [ 674 "-UANDROID", 675 "-fsigned-char", 676 "-DCONFIG_IEEE80211W", 677 "-DCONFIG_NO_VLAN", 678 "-DCONFIG_NO_RADIUS", 679 "-DCONFIG_NO_RANDOM_POOL", 680 "-DCONFIG_SHA256", 681 "-DCONFIG_INTERNAL_LIBTOMMATH", 682 "-DCONFIG_INTERNAL_SHA384", 683 "-DCONFIG_INTERNAL_SHA512", 684 "-DCONFIG_CTRL_IFACE", 685 "-DCONFIG_IBSS_RSN", 686 "-DIEEE8021X_EAPOL", 687 "-DUSERSPACE_CLIENT_SUPPORT", 688 "-DCONFIG_BACKEND_FILE", 689 "-DCONFIG_NO_CONFIG_BLOBS", 690 "-DCONFIG_WPS", 691 "-DCONFIG_AP", 692 "-DCONFIG_P2P", 693 "-DEAP_WSC", 694 "-DEAP_SERVER_WSC", 695 "-DEAP_SERVER", 696 "-DCONFIG_GAS", 697 "-DCONFIG_OFFCHANNEL", 698 "-DCONFIG_MAGICLINK", 699 "-DCONFIG_DEBUG_FILE", 700 "-DCONFIG_OPEN_HARMONY_PATCH", 701 ] 702 if (wpa_supplicant_config_ext_auth) { 703 cflags += [ "-DEXT_AUTHENTICATION_SUPPORT" ] 704 } 705 706 if ("${CONFIG_CTRL_IFACE}" == "udp") { 707 cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ] 708 } else { 709 cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ] 710 } 711 712 if (wpa_supplicant_config_wfd) { 713 cflags += [ "-DCONFIG_WIFI_DISPLAY" ] 714 } 715 716 if ("${CONFIG_DRIVER}" == "nl80211") { 717 include_dirs += [ "$WPA_ROOT_DIR/libnl/include/libnl3" ] 718 cflags += [ 719 "-DCONFIG_DRIVER_NL80211", 720 "-DCONFIG_LIBNL32", 721 ] 722 } else { 723 cflags += [ 724 "-DCONFIG_DRIVER_HDF", 725 "-DCONFIG_OHOS_P2P", 726 ] 727 } 728 729 if (wpa_supplicant_vendor_ext) { 730 include_dirs += wpa_vendor_ext_inc_path 731 sources += wpa_vendor_ext_src_cli 732 cflags += ext_cflags 733 } 734 735 external_deps = [ "init:libbegetutil" ] 736 if (wpa_supplicant_config_hilog) { 737 external_deps += [ "hilog:libhilog" ] 738 } 739 740 configs = [ ":wpa_warnings" ] 741 part_name = "wpa_supplicant" 742 subsystem_name = "thirdparty" 743 install_images = [ chipset_base_dir ] 744} 745 746ohos_executable("hostapd_cli") { 747 sources = [ 748 "$WPA_ROOT_DIR/hostapd/hostapd_cli.c", 749 "$WPA_ROOT_DIR/src/common/cli.c", 750 "$WPA_ROOT_DIR/src/common/wpa_ctrl.c", 751 "$WPA_ROOT_DIR/src/utils/${CONFIG_ELOOP}.c", 752 "$WPA_ROOT_DIR/src/utils/common.c", 753 "$WPA_ROOT_DIR/src/utils/edit_simple.c", 754 "$WPA_ROOT_DIR/src/utils/os_${CONFIG_OS}.c", 755 "$WPA_ROOT_DIR/src/utils/wpa_debug.c", 756 ] 757 758 include_dirs = [ 759 "$WPA_ROOT_DIR/src", 760 "$WPA_ROOT_DIR/src/utils", 761 "$WPA_ROOT_DIR/src/drivers", 762 "$WPA_ROOT_DIR/wpa_supplicant", 763 "$WPA_ROOT_DIR/build/include", 764 "$WPA_ROOT_DIR/libnl/include/libnl3", 765 ] 766 767 cflags = [ 768 "-UANDROID", 769 "-fsigned-char", 770 "-DCONFIG_IEEE80211W", 771 "-DCONFIG_NO_VLAN", 772 "-DCONFIG_NO_RADIUS", 773 "-DCONFIG_NO_RANDOM_POOL", 774 "-DCONFIG_SHA256", 775 "-DCONFIG_INTERNAL_LIBTOMMATH", 776 "-DCONFIG_INTERNAL_SHA384", 777 "-DCONFIG_INTERNAL_SHA512", 778 "-DCONFIG_CTRL_IFACE", 779 "-DCONFIG_IBSS_RSN", 780 "-DIEEE8021X_EAPOL", 781 "-DUSERSPACE_CLIENT_SUPPORT", 782 "-DCONFIG_BACKEND_FILE", 783 "-DCONFIG_NO_CONFIG_BLOBS", 784 "-DCONFIG_NO_ACCOUNTING", 785 "-DEAP_SERVER_IDENTITY", 786 "-DCONFIG_IEEE80211N", 787 "-DHOSTAPD", 788 "-DNEED_AP_MLME", 789 "-DCONFIG_WPS", 790 "-DCONFIG_AP", 791 "-DCONFIG_P2P", 792 "-DEAP_WSC", 793 "-DEAP_SERVER_WSC", 794 "-DEAP_SERVER", 795 "-DCONFIG_GAS", 796 "-DCONFIG_OFFCHANNEL", 797 "-DCONFIG_DEBUG_FILE", 798 "-DCONFIG_OPEN_HARMONY_PATCH", 799 ] 800 if (wpa_supplicant_config_ext_auth) { 801 cflags += [ "-DEXT_AUTHENTICATION_SUPPORT" ] 802 } 803 804 if ("${CONFIG_CTRL_IFACE}" == "udp") { 805 cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ] 806 } else { 807 cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ] 808 } 809 810 if (wpa_supplicant_config_wfd) { 811 cflags += [ "-DCONFIG_WIFI_DISPLAY" ] 812 } 813 814 external_deps = [ "init:libbegetutil" ] 815 if (wpa_supplicant_config_hilog) { 816 external_deps += [ "hilog:libhilog" ] 817 } 818 819 if ("${CONFIG_DRIVER}" == "nl80211") { 820 cflags += [ 821 "-DCONFIG_DRIVER_NL80211", 822 "-DCONFIG_LIBNL32", 823 ] 824 } else { 825 cflags += [ 826 "-DCONFIG_DRIVER_HDF", 827 "-DCONFIG_OHOS_P2P", 828 ] 829 } 830 configs = [ ":wpa_warnings" ] 831 part_name = "wpa_supplicant" 832 subsystem_name = "thirdparty" 833 install_images = [ chipset_base_dir ] 834} 835 836ohos_executable("wpa_supplicant") { 837 sources = [ "$WPA_ROOT_DIR/wpa_test/wpa_sample.c" ] 838 839 include_dirs = [ "$WPA_ROOT_DIR/build/include" ] 840 841 deps = [ ":wpa" ] 842 843 if (factory == true || build_variant != "user") { 844 deps += [ ":wpa_cli" ] 845 } 846 847 configs = [ ":wpa_warnings" ] 848 cflags = [ 849 "-DCONFIG_DEBUG_FILE", 850 "-DCONFIG_OPEN_HARMONY_PATCH", 851 ] 852 if (wpa_supplicant_config_ext_auth) { 853 cflags += [ "-DEXT_AUTHENTICATION_SUPPORT" ] 854 } 855 install_images = [ chipset_base_dir ] 856 part_name = "wpa_supplicant" 857 subsystem_name = "thirdparty" 858} 859 860ohos_executable("hostapd") { 861 sources = [ "$WPA_ROOT_DIR/hostapd_test/hostapd_sample.c" ] 862 863 include_dirs = [ "$WPA_ROOT_DIR/build/include" ] 864 865 deps = [ ":wpa" ] 866 867 configs = [ ":wpa_warnings" ] 868 cflags = [ 869 "-DCONFIG_DEBUG_FILE", 870 "-DCONFIG_OPEN_HARMONY_PATCH", 871 ] 872 if (wpa_supplicant_config_ext_auth) { 873 cflags += [ "-DEXT_AUTHENTICATION_SUPPORT" ] 874 } 875 install_images = [ chipset_base_dir ] 876 part_name = "wpa_supplicant" 877 subsystem_name = "thirdparty" 878} 879 880group("wpa_supplicant_test") { 881 testonly = true 882 if (wpa_supplicant_vendor_ext) { 883 deps = [ "//vendor/huawei/foundation/communication/wpa_supplicant_ext/test:wpa_vendor_test" ] 884 } 885} 886