blob: 21fdf364651df4f74e8c1182bce5439529caf0cd [file] [log] [blame]
#
# Copyright 2020, Data61
# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
# ABN 41 687 119 230.
#
# This software may be distributed and modified according to the terms of
# the BSD 2-Clause license. Note that NO WARRANTY is provided.
# See "LICENSE_BSD2.txt" for details.
#
# @TAG(DATA61_BSD)
#
cmake_minimum_required(VERSION 3.8.2)
project(liblwip C)
set(configure_string "")
config_option(LibLwip LIB_LWIP "Build LwIP" DEFAULT OFF)
mark_as_advanced(LibLwip)
add_config_library(lwip "${configure_string}")
if(LibLwip)
set(projects_dir "${CMAKE_CURRENT_LIST_DIR}/../..")
find_file(LWIP_PATH lwip PATHS ${projects_dir} CMAKE_FIND_ROOT_PATH_BOTH)
mark_as_advanced(FORCE LWIP_PATH)
if("${LWIP_PATH}" STREQUAL "LWIP_PATH-NOTFOUND")
message(FATAL_ERROR "Failed to find lwIP. Consider cmake -DLWIP_PATH=/path/to/lwip")
endif()
get_property(compile_options DIRECTORY PROPERTY COMPILE_OPTIONS)
separate_arguments(cmake_c_flags_sep NATIVE_COMMAND "${CMAKE_C_FLAGS}")
list(APPEND compile_options "${cmake_c_flags_sep}")
add_custom_target(get_muslc)
add_dependencies(get_muslc muslc)
file(
GLOB
sources
${LWIP_PATH}/src/*/*.c
${LWIP_PATH}/src/core/ipv4/*.c
${LWIP_PATH}/src/apps/snmp/*.c
)
add_library(lwip STATIC EXCLUDE_FROM_ALL ${sources})
target_include_directories(
lwip
PUBLIC
${LWIP_PATH}/src/include
# Include the header files in this directory which contain header configs
include include/lwip
)
target_link_libraries(lwip muslc liblwip_config)
target_compile_options(lwip PRIVATE ${compile_options})
endif()