Skip to content

Commit dc13427

Browse files
stokitomwarning
authored andcommitted
Add CMakeLists.txt
1 parent 5613957 commit dc13427

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

CMakeLists.txt

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
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

Comments
 (0)