|
| 1 | +cmake_minimum_required(VERSION 3.23) |
| 2 | +project(KadNode C) |
| 3 | + |
| 4 | +#NOTE: The file is not used by build but useful for IDE |
| 5 | + |
| 6 | +OPTION(DNS "DNS Proxy" ON) |
| 7 | +OPTION(TLS "TLS Authentication" ON) |
| 8 | +OPTION(BOB "BOB Authentication" ON) |
| 9 | +OPTION(LPD "Local Peer Discovery (LPD) Support" ON) |
| 10 | +OPTION(CMD "kadnode-ctl KadNode Control Program" ON) |
| 11 | +OPTION(NATPMP "Port Forwarding NAT-PMP/PCP" OFF) |
| 12 | +OPTION(UPNP "Port Forwarding UPnP" OFF) |
| 13 | + |
| 14 | +SET(CMAKE_C_STANDARD 11) |
| 15 | +ADD_DEFINITIONS(-Os -Wall -Wwrite-strings -pedantic) |
| 16 | + |
| 17 | +SET(SOURCES src/announces.c |
| 18 | + src/conf.c |
| 19 | + src/kad.c |
| 20 | + src/log.c |
| 21 | + src/main.c |
| 22 | + src/net.c |
| 23 | + src/peerfile.c |
| 24 | + src/searches.c |
| 25 | + src/utils.c |
| 26 | +) |
| 27 | + |
| 28 | +if(CMAKE_BUILD_TYPE STREQUAL "Debug") |
| 29 | + SET(SOURCES ${SOURCES} src/tests.c) |
| 30 | + ADD_DEFINITIONS(-DDEBUG) |
| 31 | +endif() |
| 32 | + |
| 33 | +IF(UNIX) |
| 34 | + SET(SOURCES ${SOURCES} src/unix.c) |
| 35 | +ENDIF() |
| 36 | +IF(WIN32) |
| 37 | + SET(SOURCES ${SOURCES} src/unix.c src/windows.c) |
| 38 | +ENDIF() |
| 39 | + |
| 40 | + |
| 41 | +IF(CMD) |
| 42 | + SET(SOURCES ${SOURCES} src/ext-cmd.c) |
| 43 | + ADD_DEFINITIONS(-DCMD) |
| 44 | +ENDIF() |
| 45 | +IF(BOB) |
| 46 | + SET(SOURCES ${SOURCES} src/ext-bob.c src/ecc_point_compression.c) |
| 47 | + ADD_DEFINITIONS(-DBOB) |
| 48 | +ENDIF() |
| 49 | +IF(DNS) |
| 50 | + SET(SOURCES ${SOURCES} src/ext-dns.c) |
| 51 | + ADD_DEFINITIONS(-DDNS) |
| 52 | +ENDIF() |
| 53 | +IF(TLS) |
| 54 | + SET(SOURCES ${SOURCES} src/ext-tls-server.c src/ext-tls-client.c) |
| 55 | + ADD_DEFINITIONS(-DTLS) |
| 56 | +ENDIF() |
| 57 | +IF(LPD) |
| 58 | + SET(SOURCES ${SOURCES} src/ext-lpd.c) |
| 59 | + ADD_DEFINITIONS(-DLPD) |
| 60 | +ENDIF() |
| 61 | + |
| 62 | +IF(NATPMP) |
| 63 | + SET(SOURCES ${SOURCES} src/ext-fwd.c src/natpmp.c) |
| 64 | + ADD_DEFINITIONS(-DFWD -DFWD_NATPMP) |
| 65 | + ADD_LINK_OPTIONS(-Wl,-Bdynamic -lnatpmp) |
| 66 | +ENDIF() |
| 67 | +IF(UPNP) |
| 68 | + SET(SOURCES ${SOURCES} src/ext-fwd.c src/upnp.c) |
| 69 | + ADD_DEFINITIONS(-DFWD -DFWD_UPNP) |
| 70 | + ADD_LINK_OPTIONS(-Wl,-Bdynamic -lminiupnpc) |
| 71 | +ENDIF() |
| 72 | + |
| 73 | + |
| 74 | +add_executable(kadnode ${SOURCES}) |
| 75 | +target_link_libraries(kadnode mbedtls mbedx509 mbedcrypto) |
0 commit comments