]> git.lizzy.rs Git - dragonblocks_alpha.git/blob - src/CMakeLists.txt
68e93a7dbba5cc6f1064b232d0420df5a05036c3
[dragonblocks_alpha.git] / src / CMakeLists.txt
1 cmake_minimum_required(VERSION 3.12)
2
3 project(Dragonblocks)
4
5 if(NOT CMAKE_BUILD_TYPE)
6   set(CMAKE_BUILD_TYPE Debug)
7 endif()
8
9 find_package(OpenGL REQUIRED)
10 find_package(GLEW REQUIRED)
11 find_package(glfw3 3.3 REQUIRED)
12 find_package(Freetype REQUIRED)
13
14 link_libraries(
15         pthread
16         m
17         z
18 )
19
20 include_directories(SYSTEM
21         "${CMAKE_SOURCE_DIR}/../deps/"
22 )
23
24 include_directories(BEFORE
25         ${CMAKE_SOURCE_DIR}
26 )
27
28 add_compile_options(-Wall -Wextra -Wpedantic -Werror)
29
30 set(SOURCES_COMMON
31         array.c
32         bintree.c
33         list.c
34         map.c
35         signal_handlers.c
36         util.c
37         types.c
38         node.c
39         queue.c
40 )
41
42 add_executable(Dragonblocks
43         ${SOURCES_COMMON}
44         client/blockmesh.c
45         client/camera.c
46         client/client.c
47         client/client_commands.c
48         client/client_map.c
49         client/client_node.c
50         client/client_player.c
51         client/cube.c
52         client/facecache.c
53         client/font.c
54         client/game.c
55         client/hud.c
56         client/input.c
57         client/mesh.c
58         client/object.c
59         client/scene.c
60         client/shader.c
61         client/texture.c
62         client/vertex.c
63         client/window.c
64 )
65
66 target_link_libraries(Dragonblocks
67         ${OPENGL_LIBRARIES}
68         ${GLEW_LIBRARIES}
69         glfw
70         ${FREETYPE_LIBRARIES}
71 )
72
73 target_include_directories(Dragonblocks PUBLIC
74         ${FREETYPE_INCLUDE_DIRS}
75 )
76
77 add_executable(DragonblocksServer
78         ${SOURCES_COMMON}
79         server/mapdb.c
80         server/mapgen.c
81         server/perlin.c
82         server/server.c
83         server/server_commands.c
84         server/server_map.c
85 )
86
87 target_link_libraries(DragonblocksServer
88         sqlite3
89 )
90
91 if (CMAKE_BUILD_TYPE STREQUAL "Release")
92         add_compile_definitions(RELEASE)
93 endif()