]> git.lizzy.rs Git - dragonnet-example.git/blob - CMakeLists.txt
Use new dragonnet hook API
[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 )
27
28 set(SOURCES_DRAGONNET
29         "${DEPS_DIR}/dragonnet/addr.c"
30         "${DEPS_DIR}/dragonnet/listen.c"
31         "${DEPS_DIR}/dragonnet/peer.c"
32         "${DEPS_DIR}/dragonnet/recv.c"
33         "${DEPS_DIR}/dragonnet/recv_thread.c"
34         "${DEPS_DIR}/dragonnet/send.c"
35 )
36
37 add_executable(DragonnetTypegen
38         ${SOURCES_COMMON}
39         "${DEPS_DIR}/dragonnet/typegen/main.c"
40 )
41
42 add_custom_command(
43         OUTPUT "${CMAKE_SOURCE_DIR}/dnet-types.c" "${CMAKE_SOURCE_DIR}/dnet-types.h"
44         COMMAND "${CMAKE_BINARY_DIR}/DragonnetTypegen"
45         MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/types.dnet"
46         DEPENDS DragonnetTypegen
47         WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
48 )
49
50 add_custom_target(ExampleTypes
51         DEPENDS "${CMAKE_SOURCE_DIR}/dnet-types.c" "${CMAKE_SOURCE_DIR}/dnet-types.h"
52 )
53
54 add_executable(ExampleCS
55         ${SOURCES_COMMON}
56         ${SOURCES_DRAGONNET}
57         dnet-types.c
58         cs_example.c
59 )
60
61 add_dependencies(ExampleCS ExampleTypes)