CMakeLists.txt 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. cmake_minimum_required(VERSION 2.6)
  2. PROJECT(netifd C)
  3. IF(NOT ${CMAKE_VERSION} LESS 3.0)
  4. include(CheckCCompilerFlag)
  5. check_c_compiler_flag(-Wimplicit-fallthrough HAS_IMPLICIT_FALLTHROUGH)
  6. ENDIF()
  7. ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -Wmissing-declarations -Wno-unknown-warning-option -Wno-format-truncation)
  8. IF(HAS_IMPLICIT_FALLTHROUGH)
  9. ADD_DEFINITIONS(-Wimplicit-fallthrough)
  10. ENDIF()
  11. SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
  12. SET(SOURCES
  13. main.c utils.c system.c tunnel.c handler.c
  14. interface.c interface-ip.c interface-event.c
  15. iprule.c proto.c proto-static.c proto-shell.c
  16. config.c device.c bridge.c veth.c vlan.c alias.c
  17. macvlan.c ubus.c vlandev.c wireless.c)
  18. SET(LIBS
  19. ubox ubus uci json-c blobmsg_json)
  20. IF (NOT DEFINED LIBNL_LIBS)
  21. FIND_LIBRARY(libnl NAMES libnl-3 libnl nl-3 nl)
  22. SET(LIBNL_LIBS ${libnl})
  23. ENDIF()
  24. IF("${CMAKE_SYSTEM_NAME}" MATCHES "Linux" AND NOT DUMMY_MODE)
  25. SET(SOURCES ${SOURCES} system-linux.c)
  26. SET(LIBS ${LIBS} ${LIBNL_LIBS})
  27. ELSE()
  28. ADD_DEFINITIONS(-DDUMMY_MODE=1)
  29. SET(SOURCES ${SOURCES} system-dummy.c)
  30. ENDIF()
  31. IF(DEBUG)
  32. ADD_DEFINITIONS(-DDEBUG -g3)
  33. IF(NO_OPTIMIZE)
  34. ADD_DEFINITIONS(-O0)
  35. ENDIF()
  36. ENDIF()
  37. ADD_EXECUTABLE(netifd ${SOURCES})
  38. TARGET_LINK_LIBRARIES(netifd ${LIBS})
  39. INSTALL(TARGETS netifd
  40. RUNTIME DESTINATION sbin
  41. )