• source navigation  • diff markup  • identifier search  • freetext search  • 

Sources/netifd/CMakeLists.txt

  1 cmake_minimum_required(VERSION 3.5)
  2 
  3 PROJECT(netifd C)
  4 
  5 include(CheckCCompilerFlag)
  6 check_c_compiler_flag(-Wimplicit-fallthrough HAS_IMPLICIT_FALLTHROUGH)
  7 
  8 ADD_DEFINITIONS(-Wall -Werror)
  9 IF(CMAKE_C_COMPILER_VERSION VERSION_GREATER 6)
 10         add_definitions(-Wextra -Werror=implicit-function-declaration)
 11         add_definitions(-Wformat -Werror=format-security -Werror=format-nonliteral)
 12 ENDIF()
 13 ADD_DEFINITIONS(-Os --std=gnu99 -Wmissing-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter)
 14 
 15 IF(HAS_IMPLICIT_FALLTHROUGH)
 16   ADD_DEFINITIONS(-Wimplicit-fallthrough)
 17 ENDIF()
 18 
 19 SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
 20 
 21 SET(SOURCES
 22         main.c utils.c system.c tunnel.c handler.c
 23         interface.c interface-ip.c interface-event.c
 24         iprule.c proto.c proto-static.c proto-shell.c
 25         config.c device.c bridge.c veth.c vlan.c alias.c
 26         macvlan.c ubus.c vlandev.c wireless.c
 27         extdev.c bonding.c)
 28 
 29 
 30 FIND_LIBRARY(uci NAMES uci)
 31 FIND_LIBRARY(ubox NAMES ubox)
 32 FIND_LIBRARY(ubus NAMES ubus)
 33 FIND_LIBRARY(json NAMES json-c json)
 34 FIND_LIBRARY(udebug NAMES udebug)
 35 FIND_LIBRARY(blobmsg_json NAMES blobmsg_json)
 36 
 37 SET(LIBS ${ubox} ${ubus} ${uci} ${json} ${blobmsg_json} ${udebug})
 38 
 39 FIND_PATH(ubox_include_dir libubox/usock.h)
 40 FIND_PATH(udebug_include_dir udebug.h)
 41 INCLUDE_DIRECTORIES(${ubox_include_dir})
 42 
 43 IF (NOT DEFINED LIBNL_LIBS)
 44         include(FindPkgConfig)
 45         pkg_search_module(LIBNL libnl-3.0 libnl-3 libnl nl-3 nl)
 46         IF (LIBNL_FOUND)
 47                 include_directories(${LIBNL_INCLUDE_DIRS})
 48                 SET(LIBNL_LIBS ${LIBNL_LIBRARIES})
 49         ENDIF()
 50 ENDIF()
 51 
 52 ADD_CUSTOM_COMMAND(
 53         OUTPUT ethtool-modes.h
 54         COMMAND ./make_ethtool_modes_h.sh ${CMAKE_C_COMPILER} > ./ethtool-modes.h
 55         DEPENDS ./make_ethtool_modes_h.sh
 56 )
 57 ADD_CUSTOM_TARGET(ethtool-modes-h DEPENDS ethtool-modes.h)
 58 
 59 IF("${CMAKE_SYSTEM_NAME}" MATCHES "Linux" AND NOT DUMMY_MODE)
 60         SET(SOURCES ${SOURCES} system-linux.c)
 61         SET(LIBS ${LIBS} ${LIBNL_LIBS})
 62 ELSE()
 63         ADD_DEFINITIONS(-DDUMMY_MODE=1)
 64         SET(SOURCES ${SOURCES} system-dummy.c)
 65 ENDIF()
 66 
 67 IF(DEBUG)
 68   ADD_DEFINITIONS(-DDEBUG -g3)
 69   IF(NO_OPTIMIZE)
 70     ADD_DEFINITIONS(-O0)
 71   ENDIF()
 72 ENDIF()
 73 
 74 
 75 ADD_EXECUTABLE(netifd ${SOURCES})
 76 
 77 TARGET_LINK_LIBRARIES(netifd ${LIBS})
 78 
 79 INSTALL(TARGETS netifd
 80         RUNTIME DESTINATION sbin
 81 )
 82 ADD_DEPENDENCIES(netifd ethtool-modes-h)

This page was automatically generated by LXR 0.3.1.  •  OpenWrt