# LwIP 2.2.1 CMake configuration for STM32F407VET6 cmake_minimum_required(VERSION 3.22) # Define LwIP library add_library(lwip) # Set LwIP source directories set(LWIP_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src) set(LWIP_INCLUDE_DIR ${LWIP_SRC_DIR}/include) # Core LwIP sources target_sources(lwip PRIVATE # Core IPv4 ${LWIP_SRC_DIR}/core/ipv4/acd.c ${LWIP_SRC_DIR}/core/ipv4/autoip.c ${LWIP_SRC_DIR}/core/ipv4/dhcp.c ${LWIP_SRC_DIR}/core/ipv4/etharp.c ${LWIP_SRC_DIR}/core/ipv4/icmp.c ${LWIP_SRC_DIR}/core/ipv4/igmp.c ${LWIP_SRC_DIR}/core/ipv4/ip4.c ${LWIP_SRC_DIR}/core/ipv4/ip4_addr.c ${LWIP_SRC_DIR}/core/ipv4/ip4_frag.c # Core IPv6 ${LWIP_SRC_DIR}/core/ipv6/dhcp6.c ${LWIP_SRC_DIR}/core/ipv6/ethip6.c ${LWIP_SRC_DIR}/core/ipv6/icmp6.c ${LWIP_SRC_DIR}/core/ipv6/inet6.c ${LWIP_SRC_DIR}/core/ipv6/ip6.c ${LWIP_SRC_DIR}/core/ipv6/ip6_addr.c ${LWIP_SRC_DIR}/core/ipv6/ip6_frag.c ${LWIP_SRC_DIR}/core/ipv6/mld6.c ${LWIP_SRC_DIR}/core/ipv6/nd6.c # Core common ${LWIP_SRC_DIR}/core/altcp.c ${LWIP_SRC_DIR}/core/altcp_alloc.c ${LWIP_SRC_DIR}/core/altcp_tcp.c ${LWIP_SRC_DIR}/core/def.c ${LWIP_SRC_DIR}/core/dns.c ${LWIP_SRC_DIR}/core/inet_chksum.c ${LWIP_SRC_DIR}/core/init.c ${LWIP_SRC_DIR}/core/ip.c ${LWIP_SRC_DIR}/core/mem.c ${LWIP_SRC_DIR}/core/memp.c ${LWIP_SRC_DIR}/core/netif.c ${LWIP_SRC_DIR}/core/pbuf.c ${LWIP_SRC_DIR}/core/raw.c ${LWIP_SRC_DIR}/core/stats.c ${LWIP_SRC_DIR}/core/sys.c ${LWIP_SRC_DIR}/core/tcp.c ${LWIP_SRC_DIR}/core/tcp_in.c ${LWIP_SRC_DIR}/core/tcp_out.c ${LWIP_SRC_DIR}/core/timeouts.c ${LWIP_SRC_DIR}/core/udp.c # API ${LWIP_SRC_DIR}/api/api_lib.c ${LWIP_SRC_DIR}/api/api_msg.c ${LWIP_SRC_DIR}/api/err.c ${LWIP_SRC_DIR}/api/if_api.c ${LWIP_SRC_DIR}/api/netbuf.c ${LWIP_SRC_DIR}/api/netdb.c ${LWIP_SRC_DIR}/api/netifapi.c ${LWIP_SRC_DIR}/api/sockets.c ${LWIP_SRC_DIR}/api/tcpip.c # Netif ${LWIP_SRC_DIR}/netif/ethernet.c ) # Include directories target_include_directories(lwip PUBLIC ${LWIP_INCLUDE_DIR} ${LWIP_INCLUDE_DIR}/lwip ${LWIP_INCLUDE_DIR}/netif ${CMAKE_CURRENT_SOURCE_DIR}/port ${CMAKE_SOURCE_DIR}/Drivers/STM32F4xx_HAL_Driver/Inc ${CMAKE_SOURCE_DIR}/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy ${CMAKE_SOURCE_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Include ${CMAKE_SOURCE_DIR}/Drivers/CMSIS/Include ${CMAKE_SOURCE_DIR}/BSP/Inc ${CMAKE_SOURCE_DIR}/HAL/Inc ${CMAKE_SOURCE_DIR}/Core/Inc ) # Compiler definitions for STM32F407 target_compile_definitions(lwip PRIVATE STM32F407xx LWIP_PLATFORM_DIAGNOSTIC=1 LWIP_NOASSERT=0 ) # Compiler options target_compile_options(lwip PRIVATE -Wall -Wextra -Wpedantic -ffunction-sections -fdata-sections ) # Add port directory (will contain sys_arch.c and ethernetif.c) add_subdirectory(port)