1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
3 SET(REQUIRES_LIST ${REQUIRES_LIST}
10 PKG_CHECK_MODULES(iptables_pkgs REQUIRED "${REQUIRES_LIST}")
12 FOREACH(flag ${iptables_pkgs_CFLAGS})
13 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
16 SET(INTERFACES_DIR ${CMAKE_SOURCE_DIR}/interfaces)
17 SET(SOURCE_DIR ${CMAKE_SOURCE_DIR}/src)
18 SET(HELPER_SOURCE_DIR ${SOURCE_DIR}/helper)
20 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
21 INCLUDE_DIRECTORIES(${SOURCE_DIR})
22 INCLUDE_DIRECTORIES(${HELPER_SOURCE_DIR})
24 FILE(GLOB SOURCE_SRCS ${SOURCE_DIR}/*.c)
25 FILE(GLOB HELPER_SRCS ${HELPER_SOURCE_DIR}/*.c)
27 SET(SRCS ${SRCS} ${SOURCE_SRCS} ${HELPER_SRCS})
29 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fpic -Wall -Werror-implicit-function-declaration -fvisibility=hidden")
30 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
32 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
36 OUTPUT ${SOURCE_DIR}/generated-code.c
37 COMMAND gdbus-codegen --interface-prefix net.stc.iptables.
38 --generate-c-code generated-code
40 --c-generate-object-manager
41 --generate-docbook generated-code-docs
42 ${INTERFACES_DIR}/stc-iptables-iface.xml
43 COMMENT "Generating GDBus .c/.h")
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)
49 INSTALL(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${BIN_DIR})