1# SPDX-License-Identifier: Apache-2.0 2 3zephyr_library() 4zephyr_library_include_directories(${ZEPHYR_BASE}/subsys/net/ip) 5zephyr_library_include_directories_ifdef( 6 CONFIG_NET_L2_WIFI_SHELL ${ZEPHYR_BASE}/subsys/net/lib/shell 7 ) 8zephyr_library_compile_definitions_ifdef( 9 CONFIG_NEWLIB_LIBC __LINUX_ERRNO_EXTENSIONS__ 10 ) 11zephyr_library_include_directories_ifdef( 12 CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE test_certs 13 ) 14 15zephyr_library_sources_ifdef(CONFIG_NET_L2_WIFI_MGMT wifi_mgmt.c) 16zephyr_library_sources_ifdef(CONFIG_WIFI_CERTIFICATE_LIB wifi_certs.c) 17zephyr_library_sources_ifdef(CONFIG_NET_L2_WIFI_SHELL wifi_shell.c) 18zephyr_library_sources_ifdef(CONFIG_WIFI_NM wifi_nm.c) 19zephyr_library_sources_ifdef(CONFIG_NET_L2_WIFI_UTILS wifi_utils.c) 20 21# Linker section placement for wifi_nm_instance iterable structure 22zephyr_linker_sources_ifdef(CONFIG_WIFI_NM DATA_SECTIONS wifi_nm.ld) 23if (CONFIG_WIFI_NM) 24zephyr_iterable_section(NAME wifi_nm_instance GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT}) 25endif() 26 27if(CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE AND CONFIG_NET_L2_WIFI_SHELL) 28 # Wi-Fi Enterprise test certificates handling 29 set(gen_inc_dir ${ZEPHYR_BINARY_DIR}/misc/generated) 30 set(gen_dir ${gen_inc_dir}/wifi_enterprise_test_certs) 31 if(NOT DEFINED WIFI_TEST_CERTS_DIR) 32 set(WIFI_TEST_CERTS_DIR ${ZEPHYR_BASE}/samples/net/wifi/test_certs/rsa3k) 33 endif() 34 # Create output directory for test certs 35 file(MAKE_DIRECTORY ${gen_dir}) 36 37 # convert .pem files to array data at build time 38 zephyr_include_directories(${gen_inc_dir}) 39 40 foreach(cert_file IN ITEMS 41 ${WIFI_TEST_CERTS_DIR}/client.pem 42 ${WIFI_TEST_CERTS_DIR}/client-key.pem 43 ${WIFI_TEST_CERTS_DIR}/ca.pem 44 ${WIFI_TEST_CERTS_DIR}/client2.pem 45 ${WIFI_TEST_CERTS_DIR}/client-key2.pem 46 ${WIFI_TEST_CERTS_DIR}/ca2.pem 47 ${WIFI_TEST_CERTS_DIR}/server.pem 48 ${WIFI_TEST_CERTS_DIR}/server-key.pem 49 ) 50 if(EXISTS ${cert_file}) 51 get_filename_component(cert_name ${cert_file} NAME) 52 generate_inc_file_for_target( 53 app 54 ${cert_file} 55 ${gen_dir}/${cert_name}.inc 56 ) 57 else() 58 get_filename_component(cert_name ${cert_file} NAME) 59 file(WRITE ${gen_dir}/${cert_name}.inc "// Empty file generated because ${cert_file} does not exist\n") 60 endif() 61 endforeach() 62 63 # Add explicit dependency on app target for ZEPHYR_CURRENT_LIBRARY, so these 64 # headers are generated at the correct point in the build 65 add_dependencies(${ZEPHYR_CURRENT_LIBRARY} app) 66endif() #CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE AND CONFIG_NET_L2_WIFI_SHELL 67