reinstate accidentally removed CMakeLists
This commit is contained in:
parent
6f0d93097e
commit
8d4772fa43
|
@ -0,0 +1,201 @@
|
|||
cmake_minimum_required(VERSION 2.8.7)
|
||||
|
||||
project(unbound C)
|
||||
|
||||
find_package(OpenSSL REQUIRED)
|
||||
find_package(Threads)
|
||||
|
||||
include(configure_checks.cmake)
|
||||
|
||||
if (WIN32)
|
||||
set(USE_MINI_EVENT 1)
|
||||
set(USE_WINSOCK 1)
|
||||
else ()
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(LIBEVENT2 REQUIRED libevent)
|
||||
endif ()
|
||||
|
||||
set(RETSIGTYPE void)
|
||||
|
||||
add_definitions(-D_GNU_SOURCE)
|
||||
|
||||
option(USE_ECDSA "Use ECDSA algorithms" ON)
|
||||
option(USE_SHA2 "Enable SHA2 support" ON)
|
||||
set(ENABLE_DNSTAP 0)
|
||||
set(HAVE_SSL 1)
|
||||
if (CMAKE_USE_PTHREADS_INIT AND NOT CMAKE_USE_WIN32_THREADS_INIT)
|
||||
set(HAVE_PTHREAD 1)
|
||||
else ()
|
||||
set(HAVE_PTHREAD 0)
|
||||
endif ()
|
||||
if (CMAKE_USE_WIN32_THREADS_INIT)
|
||||
set(HAVE_WINDOWS_THREADS 1)
|
||||
else ()
|
||||
set(HAVE_WINDOWS_THREADS 0)
|
||||
endif ()
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/config.h")
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/dnstap/dnstap_config.h.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/dnstap/dnstap_config.h")
|
||||
|
||||
set(common_src
|
||||
services/cache/dns.c
|
||||
services/cache/infra.c
|
||||
services/cache/rrset.c
|
||||
util/data/dname.c
|
||||
util/data/msgencode.c
|
||||
util/data/msgparse.c
|
||||
util/data/msgreply.c
|
||||
util/data/packed_rrset.c
|
||||
iterator/iterator.c
|
||||
iterator/iter_delegpt.c
|
||||
iterator/iter_donotq.c
|
||||
iterator/iter_fwd.c
|
||||
iterator/iter_hints.c
|
||||
iterator/iter_priv.c
|
||||
iterator/iter_resptype.c
|
||||
iterator/iter_scrub.c
|
||||
iterator/iter_utils.c
|
||||
services/listen_dnsport.c
|
||||
services/localzone.c
|
||||
services/mesh.c
|
||||
services/modstack.c
|
||||
services/outbound_list.c
|
||||
services/outside_network.c
|
||||
util/alloc.c
|
||||
util/config_file.c
|
||||
util/configlexer.c
|
||||
util/configparser.c
|
||||
util/fptr_wlist.c
|
||||
util/locks.c
|
||||
util/log.c
|
||||
util/mini_event.c
|
||||
util/module.c
|
||||
util/netevent.c
|
||||
util/net_help.c
|
||||
util/random.c
|
||||
util/rbtree.c
|
||||
util/regional.c
|
||||
util/rtt.c
|
||||
util/storage/dnstree.c
|
||||
util/storage/lookup3.c
|
||||
util/storage/lruhash.c
|
||||
util/storage/slabhash.c
|
||||
util/timehist.c
|
||||
util/tube.c
|
||||
util/winsock_event.c
|
||||
validator/autotrust.c
|
||||
validator/val_anchor.c
|
||||
validator/validator.c
|
||||
validator/val_kcache.c
|
||||
validator/val_kentry.c
|
||||
validator/val_neg.c
|
||||
validator/val_nsec3.c
|
||||
validator/val_nsec.c
|
||||
validator/val_secalgo.c
|
||||
validator/val_sigcrypt.c
|
||||
validator/val_utils.c
|
||||
dns64/dns64.c
|
||||
|
||||
#$(CHECKLOCK_SRC)
|
||||
testcode/checklocks.c)
|
||||
|
||||
set(compat_src)
|
||||
|
||||
foreach (symbol IN ITEMS ctime_r gmtime_r inet_aton inet_ntop inet_pton malloc memcmp memmove snprintf strlcat strlcpy strptime explicit_bzero arc4random arc4random_uniform sha512)
|
||||
string(TOUPPER "${symbol}" upper_sym)
|
||||
if (NOT HAVE_${upper_sym})
|
||||
list(APPEND compat_src
|
||||
compat/${symbol}.c)
|
||||
endif ()
|
||||
endforeach ()
|
||||
|
||||
if (NOT HAVE_ARC4RANDOM)
|
||||
list(APPEND compat_src
|
||||
compat/arc4_lock.c)
|
||||
endif ()
|
||||
|
||||
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
list(APPEND compat_src
|
||||
compat/getentropy_linux.c)
|
||||
elseif (APPLE)
|
||||
list(APPEND compat_src
|
||||
compat/getentropy_osx.c)
|
||||
#elseif (SunOS)
|
||||
# list(APPEND compat_src
|
||||
# compat/getentropy_solaris.c)
|
||||
elseif (WIN32)
|
||||
list(APPEND compat_src
|
||||
compat/getentropy_win.c)
|
||||
endif ()
|
||||
|
||||
if (NOT HAVE_GETADDRINFO)
|
||||
list(APPEND compat_src
|
||||
compat/fake-rfc2553.c)
|
||||
endif ()
|
||||
|
||||
set(sldns_src
|
||||
ldns/keyraw.c
|
||||
ldns/sbuffer.c
|
||||
ldns/wire2str.c
|
||||
ldns/parse.c
|
||||
ldns/parseutil.c
|
||||
ldns/rrdef.c
|
||||
ldns/str2wire.c)
|
||||
|
||||
set(libunbound_src
|
||||
libunbound/context.c
|
||||
libunbound/libunbound.c
|
||||
libunbound/libworker.c)
|
||||
|
||||
include_directories("${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
include_directories("${CMAKE_CURRENT_BINARY_DIR}")
|
||||
include_directories(SYSTEM ${OPENSSL_INCLUDE_DIR})
|
||||
if (LIBEVENT2_FOUND)
|
||||
include_directories(SYSTEM ${LIBEVENT2_INCLUDE_DIRS})
|
||||
link_directories(${LIBEVENT2_LIBRARY_DIRS})
|
||||
endif ()
|
||||
add_library(unbound
|
||||
${common_src}
|
||||
${sldns_src}
|
||||
${compat_src}
|
||||
${libunbound_src})
|
||||
target_link_libraries(unbound
|
||||
LINK_PRIVATE
|
||||
${OPENSSL_LIBRARIES}
|
||||
${CMAKE_THREAD_LIBS_INIT})
|
||||
if (LIBEVENT2_FOUND)
|
||||
target_link_libraries(unbound
|
||||
LINK_PRIVATE
|
||||
${LIBEVENT2_LIBRARIES})
|
||||
endif ()
|
||||
|
||||
if (WIN32)
|
||||
target_link_libraries(unbound
|
||||
LINK_PRIVATE
|
||||
iphlpapi
|
||||
ws2_32)
|
||||
endif ()
|
||||
|
||||
# XXX: Hack for static builds.
|
||||
set(LIBEVENT2_LIBDIR
|
||||
"${LIBEVENT2_LIBDIR}"
|
||||
PARENT_SCOPE)
|
||||
|
||||
if (MINGW)
|
||||
# There is no variable for this (probably due to the fact that the pthread
|
||||
# library is implicit with a link in msys).
|
||||
find_library(win32pthread
|
||||
NAMES libwinpthread-1.dll)
|
||||
foreach (input IN LISTS win32pthread OPENSSL_LIBRARIES)
|
||||
# Copy shared libraries into the build tree so that no PATH manipulation is
|
||||
# necessary.
|
||||
get_filename_component(name "${input}" NAME)
|
||||
configure_file(
|
||||
"${input}"
|
||||
"${CMAKE_BINARY_DIR}/bin/${name}"
|
||||
COPYONLY)
|
||||
endforeach ()
|
||||
endif ()
|
Loading…
Reference in New Issue