]> git.lizzy.rs Git - dragonnet-example.git/blob - CMakeLists.txt
bd77846d04ac8c42986679778876c8d64cbf015c
[dragonnet-example.git] / CMakeLists.txt
1 cmake_minimum_required(VERSION 3.12)
2
3 project(DragonnetExample)
4
5 set(CMAKE_BUILD_TYPE Debug)
6
7 link_libraries(
8         pthread
9 )
10
11 set(DEPS_DIR "${CMAKE_SOURCE_DIR}/deps/")
12
13 include_directories(SYSTEM
14         ${DEPS_DIR}
15 )
16
17 add_compile_options(-Wall -Wextra -Werror -fmax-errors=4)
18
19 set(SOURCES_COMMON
20         "${DEPS_DIR}/dragontype/implementation.c"
21         "${DEPS_DIR}/dragonport/asprintf.c"
22         "${DEPS_DIR}/dragonnet/addr.c"
23         "${DEPS_DIR}/dragonnet/listen.c"
24         "${DEPS_DIR}/dragonnet/peer.c"
25         "${DEPS_DIR}/dragonnet/recv_thread.c"
26 )
27
28 add_executable(DragonnetGenMessages
29         ${SOURCES_COMMON}
30         "${DEPS_DIR}/dragonnet/gen_messages.c"
31 )
32
33 add_custom_command(
34         OUTPUT "${CMAKE_SOURCE_DIR}/messages.h"
35         COMMAND "${CMAKE_BINARY_DIR}/DragonnetGenMessages"
36         MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/messages.dnet"
37         DEPENDS DragonnetGenMessages
38         WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
39 )
40
41 add_custom_target(ExampleMessages
42         DEPENDS "${CMAKE_SOURCE_DIR}/messages.h"
43 )
44
45 add_executable(ExampleClient
46         ${SOURCES_COMMON}
47         client.c
48 )
49
50 add_dependencies(ExampleClient ExampleMessages)
51
52 add_executable(ExampleServer
53         ${SOURCES_COMMON}
54         server.c
55 )
56
57 add_dependencies(ExampleServer ExampleMessages)