• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# This file is indended to be included in end-user CMakeLists.txt
2# include(/path/to/Filelists.cmake)
3# It assumes the variable LWIP_CONTRIB_DIR is defined pointing to the
4# root path of lwIP/contrib sources.
5#
6# This file is NOT designed (on purpose) to be used as cmake
7# subdir via add_subdirectory()
8# The intention is to provide greater flexibility to users to
9# create their own targets using the *_SRCS variables.
10
11if(NOT ${CMAKE_VERSION} VERSION_LESS "3.10.0")
12    include_guard(GLOBAL)
13endif()
14
15set(lwipcontribportunix_SRCS
16    ${LWIP_CONTRIB_DIR}/ports/unix/port/sys_arch.c
17    ${LWIP_CONTRIB_DIR}/ports/unix/port/perf.c
18)
19
20set(lwipcontribportunixnetifs_SRCS
21    ${LWIP_CONTRIB_DIR}/ports/unix/port/netif/tapif.c
22    ${LWIP_CONTRIB_DIR}/ports/unix/port/netif/list.c
23    ${LWIP_CONTRIB_DIR}/ports/unix/port/netif/sio.c
24    ${LWIP_CONTRIB_DIR}/ports/unix/port/netif/fifo.c
25)
26
27add_library(lwipcontribportunix EXCLUDE_FROM_ALL ${lwipcontribportunix_SRCS} ${lwipcontribportunixnetifs_SRCS})
28target_include_directories(lwipcontribportunix PRIVATE ${LWIP_INCLUDE_DIRS} ${LWIP_MBEDTLS_INCLUDE_DIRS})
29target_compile_options(lwipcontribportunix PRIVATE ${LWIP_COMPILER_FLAGS})
30target_compile_definitions(lwipcontribportunix PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
31target_link_libraries(lwipcontribportunix PUBLIC ${LWIP_MBEDTLS_LINK_LIBRARIES})
32
33if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
34    find_library(LIBUTIL util)
35    find_library(LIBPTHREAD pthread)
36    find_library(LIBRT rt)
37    target_link_libraries(lwipcontribportunix PUBLIC ${LIBUTIL} ${LIBPTHREAD} ${LIBRT})
38endif()
39
40if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
41    # Darwin doesn't have pthreads or POSIX real-time extensions libs
42    find_library(LIBUTIL util)
43    target_link_libraries(lwipcontribportunix PUBLIC ${LIBUTIL})
44endif()
45