• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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