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