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

Sources/netifd/CMakeLists.txt

  1 cmake_minimum_required(VERSION 3.13)
  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 extdev.c bonding.c
 27         vrf.c ucode.c)
 28 
 29 FIND_LIBRARY(uci NAMES uci)
 30 FIND_LIBRARY(ubox NAMES ubox)
 31 FIND_LIBRARY(ubus NAMES ubus)
 32 FIND_LIBRARY(ucode NAMES ucode)
 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} ${ucode})
 38 
 39 FIND_PATH(ubox_include_dir libubox/usock.h)
 40 FIND_PATH(ucode_include_dir ucode/vm.h)
 41 FIND_PATH(udebug_include_dir udebug.h)
 42 INCLUDE_DIRECTORIES(${ubox_include_dir} ${ucode_include_dir})
 43 
 44 IF (NOT DEFINED LIBNL_LIBS)
 45         include(FindPkgConfig)
 46         pkg_search_module(LIBNL libnl-3.0 libnl-3 libnl nl-3 nl)
 47         IF (LIBNL_FOUND)
 48                 include_directories(${LIBNL_INCLUDE_DIRS})
 49                 SET(LIBNL_LIBS ${LIBNL_LIBRARIES})
 50         ENDIF()
 51 ENDIF()
 52 
 53 ADD_CUSTOM_COMMAND(
 54         OUTPUT ethtool-modes.h
 55         COMMAND ./make_ethtool_modes_h.sh ${CMAKE_C_COMPILER} > ./ethtool-modes.h
 56         DEPENDS ./make_ethtool_modes_h.sh
 57 )
 58 ADD_CUSTOM_TARGET(ethtool-modes-h DEPENDS ethtool-modes.h)
 59 
 60 IF("${CMAKE_SYSTEM_NAME}" MATCHES "Linux" AND NOT DUMMY_MODE)
 61         SET(SOURCES ${SOURCES} system-linux.c)
 62         SET(LIBS ${LIBS} ${LIBNL_LIBS})
 63 ELSE()
 64         ADD_DEFINITIONS(-DDUMMY_MODE=1)
 65         SET(SOURCES ${SOURCES} system-dummy.c)
 66 ENDIF()
 67 
 68 IF(DEBUG)
 69   ADD_DEFINITIONS(-DDEBUG -g3)
 70   IF(NO_OPTIMIZE)
 71     ADD_DEFINITIONS(-O0)
 72   ENDIF()
 73 ENDIF()
 74 
 75 
 76 ADD_EXECUTABLE(netifd ${SOURCES})
 77 
 78 TARGET_LINK_LIBRARIES(netifd ${LIBS})
 79 
 80 INSTALL(TARGETS netifd
 81         RUNTIME DESTINATION sbin
 82 )
 83 ADD_DEPENDENCIES(netifd ethtool-modes-h)

This page was automatically generated by LXR 0.3.1.  •  OpenWrt