Initialize smart traffic control iptables package
[platform/core/connectivity/stc-iptables.git] / src / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2
3 SET(REQUIRES_LIST ${REQUIRES_LIST}
4         ${COMMON_DEPS}
5         libiptc
6         libip6tc
7         )
8
9 INCLUDE(FindPkgConfig)
10 PKG_CHECK_MODULES(iptables_pkgs REQUIRED "${REQUIRES_LIST}")
11
12 FOREACH(flag ${iptables_pkgs_CFLAGS})
13         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
14 ENDFOREACH(flag)
15
16 SET(INTERFACES_DIR      ${CMAKE_SOURCE_DIR}/interfaces)
17 SET(SOURCE_DIR          ${CMAKE_SOURCE_DIR}/src)
18 SET(HELPER_SOURCE_DIR   ${SOURCE_DIR}/helper)
19
20 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
21 INCLUDE_DIRECTORIES(${SOURCE_DIR})
22 INCLUDE_DIRECTORIES(${HELPER_SOURCE_DIR})
23
24 FILE(GLOB SOURCE_SRCS           ${SOURCE_DIR}/*.c)
25 FILE(GLOB HELPER_SRCS           ${HELPER_SOURCE_DIR}/*.c)
26
27 SET(SRCS ${SRCS} ${SOURCE_SRCS} ${HELPER_SRCS})
28
29 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fpic -Wall -Werror-implicit-function-declaration -fvisibility=hidden")
30 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
31
32 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
33
34 ADD_CUSTOM_COMMAND(
35         WORKING_DIRECTORY
36         OUTPUT ${SOURCE_DIR}/generated-code.c
37         COMMAND gdbus-codegen --interface-prefix net.stc.iptables.
38                         --generate-c-code generated-code
39                         --c-namespace Stc
40                         --c-generate-object-manager
41                         --generate-docbook generated-code-docs
42                         ${INTERFACES_DIR}/stc-iptables-iface.xml
43                         COMMENT "Generating GDBus .c/.h")
44
45 SET(SRCS ${SRCS} ${SOURCE_DIR}/generated-code.c)
46 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
47 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${iptables_pkgs_LDFLAGS} -ldl)
48
49 INSTALL(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${BIN_DIR})