]> git.lizzy.rs Git - dragonnet-example.git/blob - CMakeLists.txt
ExampleMessages -> ExampleTypes
[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/array.c"
21         "${DEPS_DIR}/dragontype/bintree.c"
22         "${DEPS_DIR}/dragontype/list.c"
23         "${DEPS_DIR}/dragontype/number.c"
24         "${DEPS_DIR}/dragontype/queue.c"
25         "${DEPS_DIR}/dragonport/asprintf.c"
26         "${DEPS_DIR}/dragonnet/addr.c"
27         "${DEPS_DIR}/dragonnet/listen.c"
28         "${DEPS_DIR}/dragonnet/peer.c"
29         "${DEPS_DIR}/dragonnet/recv_thread.c"
30 )
31
32 add_executable(DragonnetTypegen
33         ${SOURCES_COMMON}
34         "${DEPS_DIR}/dragonnet/typegen/main.c"
35 )
36
37 add_custom_command(
38         OUTPUT "${CMAKE_SOURCE_DIR}/dnet-types.h"
39         COMMAND "${CMAKE_BINARY_DIR}/DragonnetTypegen"
40         MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/types.dnet"
41         DEPENDS DragonnetTypegen
42         WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
43 )
44
45 add_custom_target(ExampleTypes
46         DEPENDS "${CMAKE_SOURCE_DIR}/dnet-types.h"
47 )
48
49 add_executable(ExampleClient
50         ${SOURCES_COMMON}
51         client.c
52 )
53
54 add_dependencies(ExampleClient ExampleTypes)
55
56 add_executable(ExampleServer
57         ${SOURCES_COMMON}
58         server.c
59 )
60
61 add_dependencies(ExampleServer ExampleTypes)