Browse Source

Simplify CMAKE application project

Restructure adding compile definitions / include dirs to be more convenient for the user
master
Dirk Ziegelmeier 8 years ago
parent
commit
33fa79f4bc
  1. 6
      Filelists.cmake
  2. 21
      ports/CMakeCommon.cmake
  3. 4
      ports/unix/Filelists.cmake
  4. 31
      ports/unix/example_app/CMakeLists.txt
  5. 5
      ports/win32/Filelists.cmake
  6. 29
      ports/win32/example_app/CMakeLists.txt

6
Filelists.cmake

@ -23,6 +23,8 @@ set(lwipcontribexamples_SRCS
)
add_library(lwipcontribexamples EXCLUDE_FROM_ALL ${lwipcontribexamples_SRCS})
target_compile_options(lwipcontribexamples PRIVATE ${LWIP_COMPILER_FLAGS})
target_compile_definitions(lwipcontribexamples PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_include_directories(lwipcontribexamples PRIVATE ${LWIP_INCLUDE_DIRS} ${LWIP_MBEDTLS_INCLUDE_DIRS})
set(lwipcontribapps_SRCS
${LWIP_CONTRIB_DIR}/apps/httpserver/httpserver-netconn.c
@ -39,6 +41,8 @@ set(lwipcontribapps_SRCS
)
add_library(lwipcontribapps EXCLUDE_FROM_ALL ${lwipcontribapps_SRCS})
target_compile_options(lwipcontribapps PRIVATE ${LWIP_COMPILER_FLAGS})
target_compile_definitions(lwipcontribapps PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_include_directories(lwipcontribapps PRIVATE ${LWIP_INCLUDE_DIRS} ${LWIP_MBEDTLS_INCLUDE_DIRS})
set(lwipcontribaddons_SRCS
${LWIP_CONTRIB_DIR}/addons/tcp_isn/tcp_isn.c
@ -48,3 +52,5 @@ set(lwipcontribaddons_SRCS
)
add_library(lwipcontribaddons EXCLUDE_FROM_ALL ${lwipcontribaddons_SRCS})
target_compile_options(lwipcontribaddons PRIVATE ${LWIP_COMPILER_FLAGS})
target_compile_definitions(lwipcontribaddons PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_include_directories(lwipcontribaddons PRIVATE ${LWIP_INCLUDE_DIRS} ${LWIP_MBEDTLS_INCLUDE_DIRS})

21
ports/CMakeCommon.cmake

@ -23,12 +23,9 @@ if(EXISTS ${MBEDTLSDIR}/include/mbedtls/ssl.h)
mbedcrypto
mbedx509
)
else()
set (LWIP_MBEDTLS_INCLUDE_DIRS "")
set (LWIP_MBEDTLS_LINK_LIBRARIES "")
endif()
set(LWIP_COMPILER_FLAGS
set(LWIP_COMPILER_FLAGS_GNU_CLANG
-g
-Wall
-pedantic
@ -54,41 +51,43 @@ set(LWIP_COMPILER_FLAGS
)
if (NOT LWIP_HAVE_MBEDTLS)
list(APPEND LWIP_COMPILER_FLAGS
list(APPEND LWIP_COMPILER_FLAGS_GNU_CLANG
-Wredundant-decls
)
endif()
if(CMAKE_C_COMPILER_ID STREQUAL GNU)
list(APPEND LWIP_COMPILER_FLAGS
list(APPEND LWIP_COMPILER_FLAGS_GNU_CLANG
-Wlogical-op
-Wtrampolines
)
if (NOT LWIP_HAVE_MBEDTLS)
list(APPEND LWIP_COMPILER_FLAGS
list(APPEND LWIP_COMPILER_FLAGS_GNU_CLANG
-Wc90-c99-compat
)
endif()
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9)
list(APPEND LWIP_COMPILER_FLAGS
list(APPEND LWIP_COMPILER_FLAGS_GNU_CLANG
-fsanitize=address
-fstack-protector
-fstack-check
-fsanitize=undefined
-fno-sanitize=alignment
-fstack-protector
-fstack-check
)
endif()
set(LWIP_COMPILER_FLAGS ${LWIP_COMPILER_FLAGS_GNU_CLANG})
endif()
if(CMAKE_C_COMPILER_ID STREQUAL Clang)
list(APPEND LWIP_COMPILER_FLAGS
list(APPEND LWIP_COMPILER_FLAGS_GNU_CLANG
-fsanitize=address
-fsanitize=undefined
-fno-sanitize=alignment
-Wdocumentation
-Wno-documentation-deprecated-sync
)
set(LWIP_COMPILER_FLAGS ${LWIP_COMPILER_FLAGS_GNU_CLANG})
endif()
if(CMAKE_C_COMPILER_ID STREQUAL MSVC)

4
ports/unix/Filelists.cmake

@ -21,8 +21,10 @@ set(lwipcontribportunixnetifs_SRCS
)
add_library(lwipcontribportunix EXCLUDE_FROM_ALL ${lwipcontribportunix_SRCS} ${lwipcontribportunixnetifs_SRCS})
target_include_directories(lwipcontribportunix PRIVATE "${WPDPACK_DIR}/include")
target_include_directories(lwipcontribportunix PRIVATE ${LWIP_INCLUDE_DIRS} ${LWIP_MBEDTLS_INCLUDE_DIRS})
target_compile_options(lwipcontribportunix PRIVATE ${LWIP_COMPILER_FLAGS})
target_compile_definitions(lwipcontribaddons PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_link_libraries(lwipcontribportunix PUBLIC ${LWIP_MBEDTLS_LINK_LIBRARIES})
if (CMAKE_SYSTEM_NAME STREQUAL Linux)
find_library(LIBUTIL util)

31
ports/unix/example_app/CMakeLists.txt

@ -9,38 +9,23 @@ set(LWIP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../lwip)
include(${LWIP_CONTRIB_DIR}/ports/CMakeCommon.cmake)
include(${LWIP_DIR}/src/Filelists.cmake)
include(${LWIP_CONTRIB_DIR}/Filelists.cmake)
include(${LWIP_CONTRIB_DIR}/ports/unix/Filelists.cmake)
set (LWIP_DEFINITIONS -DLWIP_DEBUG)
set (LWIP_INCLUDE_DIRS
"${LWIP_DIR}/src/include"
"${LWIP_CONTRIB_DIR}/"
"${LWIP_CONTRIB_DIR}/ports/unix/port/include"
"${LWIP_CONTRIB_DIR}/examples/example_app"
${LWIP_MBEDTLS_INCLUDE_DIRS}
)
include(${LWIP_DIR}/src/Filelists.cmake)
include(${LWIP_CONTRIB_DIR}/Filelists.cmake)
include(${LWIP_CONTRIB_DIR}/ports/unix/Filelists.cmake)
add_executable(example_app ${LWIP_CONTRIB_DIR}/examples/example_app/test.c default_netif.c)
target_include_directories(example_app PRIVATE ${LWIP_INCLUDE_DIRS})
target_compile_options(example_app PRIVATE ${LWIP_COMPILER_FLAGS})
target_link_libraries(example_app lwipcontribexamples lwipcontribapps lwipcontribaddons lwipallapps lwipcontribportunix lwipcore ${LWIP_MBEDTLS_LINK_LIBRARIES})
target_include_directories(example_app PRIVATE ${LWIP_INCLUDE_DIRS})
target_include_directories(lwipcore PRIVATE ${LWIP_INCLUDE_DIRS})
target_include_directories(lwipallapps PRIVATE ${LWIP_INCLUDE_DIRS})
target_include_directories(lwipcontribaddons PRIVATE ${LWIP_INCLUDE_DIRS})
target_include_directories(lwipcontribapps PRIVATE ${LWIP_INCLUDE_DIRS})
target_include_directories(lwipcontribexamples PRIVATE ${LWIP_INCLUDE_DIRS})
target_include_directories(lwipcontribportunix PRIVATE ${LWIP_INCLUDE_DIRS})
set (LWIP_DEFINITIONS -DLWIP_DEBUG)
target_compile_definitions(example_app PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_compile_definitions(lwipcore PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_compile_definitions(lwipallapps PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_compile_definitions(lwipcontribaddons PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_compile_definitions(lwipcontribapps PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_compile_definitions(lwipcontribexamples PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_compile_definitions(lwipcontribportunix PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_compile_definitions(example_app PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_link_libraries(example_app lwipcontribexamples lwipcontribapps lwipcontribaddons lwipallapps lwipcontribportunix lwipcore)
add_executable(makefsdata ${lwipmakefsdata_SRCS})
target_compile_options(makefsdata PRIVATE ${LWIP_COMPILER_FLAGS})

5
ports/win32/Filelists.cmake

@ -21,6 +21,7 @@ find_library(WPCAP wpcap HINTS ${WPDPACK_DIR}/lib)
find_library(PACKET packet HINTS ${WPDPACK_DIR}/lib)
add_library(lwipcontribportwindows EXCLUDE_FROM_ALL ${lwipcontribportwindows_SRCS})
target_include_directories(lwipcontribportwindows PRIVATE "${WPDPACK_DIR}/include")
target_link_libraries(lwipcontribportwindows PUBLIC ${WPCAP} ${PACKET})
target_include_directories(lwipcontribportwindows PRIVATE ${LWIP_INCLUDE_DIRS} "${WPDPACK_DIR}/include" ${LWIP_MBEDTLS_INCLUDE_DIRS})
target_compile_options(lwipcontribportwindows PRIVATE ${LWIP_COMPILER_FLAGS})
target_compile_definitions(lwipcontribaddons PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_link_libraries(lwipcontribportwindows PUBLIC ${WPCAP} ${PACKET} ${LWIP_MBEDTLS_LINK_LIBRARIES})

29
ports/win32/example_app/CMakeLists.txt

@ -9,39 +9,24 @@ set(LWIP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../lwip)
include(${LWIP_CONTRIB_DIR}/ports/CMakeCommon.cmake)
include(${LWIP_DIR}/src/Filelists.cmake)
include(${LWIP_CONTRIB_DIR}/Filelists.cmake)
include(${LWIP_CONTRIB_DIR}/ports/win32/Filelists.cmake)
set (LWIP_DEFINITIONS -DLWIP_DEBUG)
set (LWIP_INCLUDE_DIRS
"${LWIP_DIR}/src/include"
"${LWIP_CONTRIB_DIR}/"
"${LWIP_CONTRIB_DIR}/ports/win32/include"
"${LWIP_CONTRIB_DIR}/examples/example_app"
${LWIP_MBEDTLS_INCLUDE_DIRS}
)
include(${LWIP_DIR}/src/Filelists.cmake)
include(${LWIP_CONTRIB_DIR}/Filelists.cmake)
include(${LWIP_CONTRIB_DIR}/ports/win32/Filelists.cmake)
add_executable(example_app ${LWIP_CONTRIB_DIR}/examples/example_app/test.c default_netif.c)
target_include_directories(example_app PRIVATE ${LWIP_INCLUDE_DIRS})
target_compile_options(example_app PRIVATE ${LWIP_COMPILER_FLAGS})
target_compile_definitions(example_app PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_link_libraries(example_app lwipcontribexamples lwipcontribapps lwipcontribaddons lwipallapps lwipcore lwipcontribportwindows)
target_include_directories(example_app PRIVATE ${LWIP_INCLUDE_DIRS})
target_include_directories(lwipcore PRIVATE ${LWIP_INCLUDE_DIRS})
target_include_directories(lwipallapps PRIVATE ${LWIP_INCLUDE_DIRS})
target_include_directories(lwipcontribaddons PRIVATE ${LWIP_INCLUDE_DIRS})
target_include_directories(lwipcontribapps PRIVATE ${LWIP_INCLUDE_DIRS})
target_include_directories(lwipcontribexamples PRIVATE ${LWIP_INCLUDE_DIRS})
target_include_directories(lwipcontribportwindows PRIVATE ${LWIP_INCLUDE_DIRS})
set (LWIP_DEFINITIONS -DLWIP_DEBUG)
target_compile_definitions(example_app PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_compile_definitions(lwipcore PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_compile_definitions(lwipallapps PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_compile_definitions(lwipcontribaddons PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_compile_definitions(lwipcontribapps PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_compile_definitions(lwipcontribexamples PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_compile_definitions(lwipcontribportwindows PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
add_executable(makefsdata ${lwipmakefsdata_SRCS})
target_compile_options(makefsdata PRIVATE ${LWIP_COMPILER_FLAGS})
target_include_directories(makefsdata PRIVATE ${LWIP_INCLUDE_DIRS})

Loading…
Cancel
Save