1 cmake_minimum_required(VERSION 3.12)
3 project(DragonnetExample)
5 set(CMAKE_BUILD_TYPE Debug)
11 set(DEPS_DIR "${CMAKE_SOURCE_DIR}/deps/")
13 add_compile_definitions(DRAGONTYPE_ENDIAN_HEADER="${DEPS_DIR}/endian.h/endian.h")
15 include_directories(SYSTEM
19 add_compile_options(-Wall -Wextra -Werror -fmax-errors=4)
22 "${DEPS_DIR}/dragontype/implementation.c"
23 "${DEPS_DIR}/dragonport/asprintf.c"
24 "${DEPS_DIR}/dragonnet/addr.c"
25 "${DEPS_DIR}/dragonnet/listen.c"
26 "${DEPS_DIR}/dragonnet/peer.c"
27 "${DEPS_DIR}/dragonnet/recv_thread.c"
30 add_executable(DragonnetGenMessages
32 "${DEPS_DIR}/dragonnet/gen_messages.c"
36 OUTPUT "${CMAKE_SOURCE_DIR}/messages.h"
37 COMMAND "${CMAKE_BINARY_DIR}/DragonnetGenMessages"
38 MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/messages.dnet"
39 DEPENDS DragonnetGenMessages
40 WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
43 add_custom_target(ExampleMessages
44 DEPENDS "${CMAKE_SOURCE_DIR}/messages.h"
47 add_executable(ExampleClient
52 add_dependencies(ExampleClient ExampleMessages)
54 add_executable(ExampleServer
59 add_dependencies(ExampleServer ExampleMessages)