bfaa3eb95b1a21ccf03fcc844ead95345bae21c3
[project/firewall3.git] / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.6)
2
3 PROJECT(firewall3 C)
4 ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -g3 -Wmissing-declarations)
5
6 SET(iptc_libs   ip4tc)
7
8 SET(sed_match   "^[[:space:]]*__ipt_module(\\(.*\\)).*")
9 SET(sed_replace "-Wl,--undefined=libxt_\\1_init -Wl,--undefined=libipt_\\1_init -Wl,--undefined=libip6t_\\1_init")
10
11 EXECUTE_PROCESS(COMMAND sed -n -e "s/${sed_match}/${sed_replace}/; T n; H; :n; \${ x; s/^\\n//; s/\\n/ /gp }" ${CMAKE_SOURCE_DIR}/iptables.h
12                 OUTPUT_VARIABLE ext_syms OUTPUT_STRIP_TRAILING_WHITESPACE)
13
14 SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
15 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--unresolved-symbols=ignore-all ${ext_syms}")
16
17 LIST(APPEND ext_libs iptext)
18 LIST(APPEND ext_libs iptext4)
19
20 IF (NOT DISABLE_IPV6)
21   LIST(APPEND ext_libs iptext6)
22   LIST(APPEND iptc_libs ip6tc)
23 ELSE()
24   ADD_DEFINITIONS(-DDISABLE_IPV6)
25 ENDIF()
26
27 ADD_EXECUTABLE(firewall3 main.c options.c defaults.c zones.c forwards.c rules.c redirects.c snats.c utils.c ubus.c ipsets.c includes.c iptables.c)
28 TARGET_LINK_LIBRARIES(firewall3 uci ubox ubus xtables m dl ${iptc_libs} ${ext_libs})
29
30 SET(CMAKE_INSTALL_PREFIX /usr)
31
32 INSTALL(TARGETS firewall3 RUNTIME DESTINATION sbin)