summaryrefslogtreecommitdiff
path: root/cmake/dependencies.cmake
blob: 109fe1d69b7f771f0e91532a4e44a682df0f4834 (plain)
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
find_package(PkgConfig QUIET)
include(CheckSymbolExists)

# System libraries and features
include(dependencies/system/protobufc)
include(dependencies/system/libraries)
include(dependencies/system/explicit_bzero)
include(dependencies/system/robustmutex)
include(dependencies/system/fuse)
include(dependencies/system/sysrandom)

# Cryptography
include(dependencies/crypt/openssl)
include(dependencies/crypt/libgcrypt)

# IRMd
include(dependencies/irmd/libtoml)

# Ethernet IPCP backends
include(dependencies/eth/rawsockets)
include(dependencies/eth/bpf)
include(dependencies/eth/netmap)
if(HAVE_RAW_SOCKETS OR HAVE_BPF OR HAVE_NETMAP)
  set(HAVE_ETH TRUE CACHE INTERNAL "Ethernet IPCP support available")
else()
  unset(HAVE_ETH CACHE)
endif()

# UDP IPCP
include(dependencies/udp/ddns)

# Coverage tools
include(dependencies/coverage/gcov)
include(dependencies/coverage/lcov)

# Validate that at least one secure random generator is available
if(NOT ((CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") OR APPLE OR
  HAVE_SYS_RANDOM OR HAVE_OPENSSL_RNG OR HAVE_LIBGCRYPT))
  message(FATAL_ERROR "No secure random generator found, "
                      "please install libgcrypt (> 1.7.0) or OpenSSL")
endif()