-
Notifications
You must be signed in to change notification settings - Fork 10
/
CMakeLists.txt
75 lines (60 loc) · 2.3 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
PROJECT(librdns C)
SET(RSPAMD_VERSION_MAJOR 0)
SET(RSPAMD_VERSION_MINOR 0)
SET(RSPAMD_VERSION_PATCH 0)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0 FATAL_ERROR)
OPTION(ENABLE_CURVE "Enable DNSCurve plugin" OFF)
INCLUDE(CheckFunctionExists)
INCLUDE(CheckSymbolExists)
CHECK_SYMBOL_EXISTS(IPV6_V6ONLY "sys/socket.h;netinet/in.h" HAVE_IPV6_V6ONLY)
CHECK_SYMBOL_EXISTS(getaddrinfo "sys/types.h;sys/socket.h;netdb.h" HAVE_GETADDRINFO)
IF(NOT HAVE_GETADDRINFO)
MESSAGE(FATAL_ERROR "Your system does not support getaddrinfo call, please consider upgrading it to run librdns")
ENDIF(NOT HAVE_GETADDRINFO)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g")
IF(ENABLE_CURVE MATCHES "ON")
FIND_LIBRARY(LIBSODIUM NAMES sodium PATH_SUFFIXES lib64 lib
PATHS
~/Library/Frameworks
/Library/Frameworks
/usr/local
/usr
/sw
/opt/local
/opt/csw
/opt
DOC "Path where the libsodium library can be found")
IF(NOT LIBSODIUM)
MESSAGE(FATAL_ERROR "libsodium is required for DNSCurve support")
ENDIF(NOT LIBSODIUM)
FIND_PATH(LIBSODIUM_INCLUDE sodium.h PATHS /opt/include
/usr/include
/usr/local/include
DOC "Path where the libsodium header files can be found")
IF(NOT LIBSODIUM_INCLUDE)
MESSAGE(FATAL_ERROR "libsodium header is required for DNSCurve support")
ENDIF(NOT LIBSODIUM_INCLUDE)
GET_FILENAME_COMPONENT(LIBSODIUM_PATH "${LIBSODIUM}" PATH)
INCLUDE_DIRECTORIES("${LIBSODIUM_INCLUDE}")
LINK_DIRECTORIES("${LIBSODIUM_PATH}")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_SODIUM")
ENDIF(ENABLE_CURVE MATCHES "ON")
SET(LIBRDNSSRC src/util.c
src/punycode.c
src/curve.c
src/parse.c
src/packet.c
src/resolver.c)
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/src"
"${CMAKE_SOURCE_DIR}/include"
"${CMAKE_BINARY_DIR}/src"
"${CMAKE_BINARY_DIR}/include"
"${CMAKE_SOURCE_DIR}/contrib/uthash"
"${CMAKE_SOURCE_DIR}/contrib/libottery")
ADD_SUBDIRECTORY(contrib/libottery)
ADD_SUBDIRECTORY(test)
ADD_LIBRARY(rdns STATIC ${LIBRDNSSRC})
TARGET_LINK_LIBRARIES(rdns rdns-ottery)
IF(ENABLE_CURVE MATCHES "ON")
TARGET_LINK_LIBRARIES(rdns sodium)
ENDIF(ENABLE_CURVE MATCHES "ON")