1cmake_minimum_required(VERSION 3.8) 2 3project(lwip C) 4 5set (BUILD_SHARED_LIBS ON) 6 7if (NOT CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT CMAKE_SYSTEM_NAME STREQUAL "GNU") 8 message(FATAL_ERROR "Lwip shared library is only working on Linux or the Hurd") 9endif() 10 11set(LWIP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../..) 12include(${LWIP_DIR}/contrib/ports/CMakeCommon.cmake) 13 14set (LWIP_DEFINITIONS -DLWIP_DEBUG) 15set (LWIP_INCLUDE_DIRS 16 "${LWIP_DIR}/src/include" 17 "${LWIP_CONTRIB_DIR}/" 18 "${LWIP_CONTRIB_DIR}/ports/unix/port/include" 19 "${CMAKE_CURRENT_SOURCE_DIR}/" 20) 21 22set (LWIP_EXCLUDE_SLIPIF TRUE) 23include(${LWIP_CONTRIB_DIR}/ports/unix/Filelists.cmake) 24include(${LWIP_DIR}/src/Filelists.cmake) 25 26add_library(lwip ${lwipnoapps_SRCS} ${lwipcontribportunix_SRCS} ${lwipcontribportunixnetifs_SRCS}) 27target_compile_options(lwip PRIVATE ${LWIP_COMPILER_FLAGS}) 28target_compile_definitions(lwip PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS}) 29target_include_directories(lwip PRIVATE ${LWIP_INCLUDE_DIRS} ${LWIP_MBEDTLS_INCLUDE_DIRS}) 30target_link_libraries(lwip ${LWIP_SANITIZER_LIBS}) 31 32find_library(LIBPTHREAD pthread) 33target_link_libraries(lwip ${LIBPTHREAD}) 34