Fix crash issue
[platform/upstream/dnsmasq.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(dnsmasq C)
3
4 SET(SRCS
5         src/arp.c
6         src/auth.c
7         src/blockdata.c
8         src/bpf.c
9         src/cache.c
10         src/conntrack.c
11         src/crypto.c
12         src/dbus.c
13         src/dhcp6.c
14         src/dhcp.c
15         src/dhcp-common.c
16         src/dnsmasq.c
17         src/dnssec.c
18         src/domain.c
19         src/edns0.c
20         src/forward.c
21         src/helper.c
22         src/inotify.c
23         src/ipset.c
24         src/lease.c
25         src/log.c
26         src/loop.c
27         src/netlink.c
28         src/network.c
29         src/option.c
30         src/outpacket.c
31         src/poll.c
32         src/radv.c
33         src/rfc1035.c
34         src/rfc2131.c
35         src/rfc3315.c
36         src/rrfilter.c
37         src/slaac.c
38         src/tables.c
39         src/tftp.c
40         src/util.c
41 )
42
43 SET(PACKAGE ${PROJECT_NAME})
44 SET(PKGNAME ${PACKAGE})
45 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
46 SET(BINDIR "${PREFIX}/bin")
47
48 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
49         SET(CMAKE_BUILD_TYPE "Release")
50 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
51 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
52
53 #INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
54
55 INCLUDE(FindPkgConfig)
56 pkg_check_modules(pkgs REQUIRED dbus-1)
57
58 FOREACH(flag ${pkgs_CFLAGS})
59         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
60 ENDFOREACH(flag)
61 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
62
63 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -fPIE")
64 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
65 SET(CMAKE_C_FLAGS_RELEASE "-O2")
66 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
67
68 ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
69 ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
70 ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
71
72 FIND_PROGRAM(UNAME NAMES uname)
73 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
74 #IF("${ARCH}" STREQUAL "arm")
75 #       ADD_DEFINITIONS("-D_MMICHECK_ARM_CODE_")
76 #ENDIF("${ARCH}" STREQUAL "arm")
77
78 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
79 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
80
81 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})