1if (PICO_CYW43_SUPPORTED) # set by BOARD=pico-w 2 if (TARGET cyw43_driver_picow) 3 pico_add_library(pico_cyw43_arch) 4 target_sources(pico_cyw43_arch INTERFACE 5 ${CMAKE_CURRENT_LIST_DIR}/cyw43_arch.c 6 ${CMAKE_CURRENT_LIST_DIR}/cyw43_arch_poll.c 7 ${CMAKE_CURRENT_LIST_DIR}/cyw43_arch_threadsafe_background.c 8 ${CMAKE_CURRENT_LIST_DIR}/cyw43_arch_freertos.c 9 ) 10 11 target_include_directories(pico_cyw43_arch_headers SYSTEM INTERFACE 12 ${CMAKE_CURRENT_LIST_DIR}/include) 13 14 pico_mirrored_target_link_libraries(pico_cyw43_arch INTERFACE 15 pico_unique_id 16 cyw43_driver_picow # driver for pico w 17 pico_cyw43_driver # integration with async_context 18 ) 19 20 if (NOT TARGET pico_lwip) 21 message(WARNING "lwIP is not available; Full Pico W wireless support will be unavailable") 22 else() 23 message("Pico W Wi-Fi build support available.") 24 pico_add_library(pico_cyw43_arch_poll NOFLAG) 25 target_compile_definitions(pico_cyw43_arch_poll_headers INTERFACE 26 PICO_CYW43_ARCH_POLL=1 27 ) 28 pico_mirrored_target_link_libraries(pico_cyw43_arch_poll INTERFACE 29 pico_cyw43_arch 30 pico_async_context_poll) 31 32 pico_add_library(pico_cyw43_arch_lwip_poll NOFLAG) 33 pico_mirrored_target_link_libraries(pico_cyw43_arch_lwip_poll INTERFACE 34 pico_lwip_nosys 35 pico_cyw43_arch_poll) 36 target_compile_definitions(pico_cyw43_arch_lwip_poll_headers INTERFACE 37 CYW43_LWIP=1 38 ) 39 40 pico_add_library(pico_cyw43_arch_threadsafe_background NOFLAG) 41 pico_mirrored_target_link_libraries(pico_cyw43_arch_threadsafe_background INTERFACE 42 pico_cyw43_arch 43 pico_async_context_threadsafe_background) 44 target_compile_definitions(pico_cyw43_arch_threadsafe_background_headers INTERFACE 45 PICO_CYW43_ARCH_THREADSAFE_BACKGROUND=1 46 ) 47 48 pico_add_library(pico_cyw43_arch_lwip_threadsafe_background NOFLAG) 49 pico_mirrored_target_link_libraries(pico_cyw43_arch_lwip_threadsafe_background INTERFACE 50 pico_lwip_nosys 51 pico_cyw43_arch_threadsafe_background) 52 target_compile_definitions(pico_cyw43_arch_lwip_threadsafe_background_headers INTERFACE 53 CYW43_LWIP=1 54 ) 55 56 pico_add_library(pico_cyw43_arch_sys_freertos NOFLAG) 57 pico_mirrored_target_link_libraries(pico_cyw43_arch_sys_freertos INTERFACE 58 pico_cyw43_arch 59 pico_async_context_freertos) 60 target_compile_definitions(pico_cyw43_arch_sys_freertos_headers INTERFACE 61 PICO_CYW43_ARCH_FREERTOS=1 62 ) 63 64 pico_add_library(pico_cyw43_arch_lwip_sys_freertos NOFLAG) 65 pico_mirrored_target_link_libraries(pico_cyw43_arch_lwip_sys_freertos INTERFACE 66 pico_lwip_freertos 67 pico_cyw43_arch_sys_freertos) 68 target_compile_definitions(pico_cyw43_arch_lwip_sys_freertos_headers INTERFACE 69 CYW43_LWIP=1 70 LWIP_PROVIDE_ERRNO=1 71 # now the default 72 #PICO_LWIP_CUSTOM_LOCK_TCPIP_CORE=1 # we want to override the lwip locking mechanism to use our mutex 73 ) 74 endif() 75 76 pico_add_library(pico_cyw43_arch_none NOFLAG) 77 pico_mirrored_target_link_libraries(pico_cyw43_arch_none INTERFACE 78 pico_cyw43_arch 79 pico_async_context_threadsafe_background) 80 target_compile_definitions(pico_cyw43_arch_none_headers INTERFACE 81 CYW43_LWIP=0 82 PICO_CYW43_ARCH_THREADSAFE_BACKGROUND=1 # none still uses threadsafe_background to make gpio use easy 83 ) 84 endif() 85endif() 86 87if (PICO_CYW43_DRIVER_PATH AND EXISTS "${PICO_CYW43_DRIVER_PATH}") 88 pico_add_doxygen(${PICO_CYW43_DRIVER_PATH}/src) 89endif()