CMAKE_MINIMUM_REQUIRED(VERSION 2.6) SET(REQUIRES_LIST ${REQUIRES_LIST} ${COMMON_DEPS} libiptc libip6tc ) INCLUDE(FindPkgConfig) PKG_CHECK_MODULES(iptables_pkgs REQUIRED "${REQUIRES_LIST}") FOREACH(flag ${iptables_pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) SET(INTERFACES_DIR ${CMAKE_SOURCE_DIR}/interfaces) SET(SOURCE_DIR ${CMAKE_SOURCE_DIR}/src) SET(HELPER_SOURCE_DIR ${SOURCE_DIR}/helper) INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include) INCLUDE_DIRECTORIES(${SOURCE_DIR}) INCLUDE_DIRECTORIES(${HELPER_SOURCE_DIR}) FILE(GLOB SOURCE_SRCS ${SOURCE_DIR}/*.c) FILE(GLOB HELPER_SRCS ${HELPER_SOURCE_DIR}/*.c) SET(SRCS ${SRCS} ${SOURCE_SRCS} ${HELPER_SRCS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fpic -Wall -Werror-implicit-function-declaration -fvisibility=hidden") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie") ADD_CUSTOM_COMMAND( WORKING_DIRECTORY OUTPUT ${SOURCE_DIR}/generated-code.c COMMAND gdbus-codegen --interface-prefix net.stc.iptables. --generate-c-code generated-code --c-namespace Stc --c-generate-object-manager --generate-docbook generated-code-docs ${INTERFACES_DIR}/stc-iptables-iface.xml COMMENT "Generating GDBus .c/.h") SET(SRCS ${SRCS} ${SOURCE_DIR}/generated-code.c) ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${iptables_pkgs_LDFLAGS} -ldl) INSTALL(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${BIN_DIR})