aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt98
1 files changed, 93 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 25c7560..c480daf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,8 +1,96 @@
1cmake_minimum_required(VERSION 3.0) 1cmake_minimum_required(VERSION 3.5)
2 2
3project(gfx-all) 3add_subdirectory(contrib/cgltf)
4add_subdirectory(contrib/cgltf-tangents)
5add_subdirectory(contrib/stb)
4 6
5add_subdirectory(app) 7add_subdirectory(app)
6add_subdirectory(gfx) 8
7add_subdirectory(gfx-iso) 9project(gfx)
8add_subdirectory(game) 10
11include(cmake/shader.txt)
12
13set(CMAKE_C_STANDARD 23)
14set(CMAKE_C_STANDARD_REQUIRED On)
15set(CMAKE_C_EXTENSIONS Off)
16
17add_shader_library(shaders
18 shaders/brdf_integration_map.frag
19 shaders/cook_torrance.frag
20 shaders/cook_torrance.vert
21 shaders/cubemap_filtering.vert
22 shaders/debug3d.frag
23 shaders/debug3d.vert
24 shaders/immediate_mode.frag
25 shaders/immediate_mode.vert
26 shaders/irradiance_map.frag
27 shaders/prefiltered_environment_map.frag
28 shaders/quad.vert
29 shaders/skyquad.frag
30 shaders/skyquad.vert
31 shaders/view_normal_mapped_normals.frag
32 shaders/view_normal_mapped_normals.vert
33 shaders/view_normals.frag
34 shaders/view_normals.vert
35 shaders/view_tangents.frag
36 shaders/view_tangents.vert
37 shaders/view_texture.frag
38 shaders/view_texture.vert)
39
40add_library(gfx SHARED
41 src/asset/asset_cache.c
42 src/asset/model.c
43 src/asset/texture.c
44 src/core/buffer.c
45 src/core/core.c
46 src/core/framebuffer.c
47 src/core/geometry.c
48 src/core/renderbuffer.c
49 src/core/shader_program.c
50 src/core/shader.c
51 src/core/texture.c
52 src/llr/llr.c
53 src/llr/light.c
54 src/llr/material.c
55 src/llr/mesh.c
56 src/renderer/imm_renderer.c
57 src/renderer/renderer.c
58 src/scene/animation.c
59 src/scene/camera.c
60 src/scene/model.c
61 src/scene/node.c
62 src/scene/object.c
63 src/scene/scene.c
64 src/scene/scene_memory.c
65 src/gfx.c
66 src/util/geometry.c
67 src/util/ibl.c
68 src/util/shader.c
69 src/util/skyquad.c)
70
71target_include_directories(gfx PUBLIC
72 include)
73
74target_include_directories(gfx PRIVATE
75 src)
76
77target_compile_options(gfx PRIVATE -std=gnu11 -Wall -Wextra -Wpedantic)
78
79target_link_libraries(gfx PUBLIC
80 cstring
81 math)
82
83target_link_libraries(gfx PRIVATE
84 cassert
85 cgltf
86 cgltf-tangents
87 error
88 gfx-app
89 log
90 mempool
91 shaders
92 stb
93 # System libraries.
94 GL
95 # Required to initialize GLAD.
96 -ldl)