summaryrefslogtreecommitdiff
path: root/gfx/CMakeLists.txt
blob: f5c9b5add3af0085819fb726d8259bf2b3a4031c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
cmake_minimum_required(VERSION 3.0)

include(cmake/shader.txt)

add_subdirectory(contrib/cgltf)
add_subdirectory(contrib/cgltf-tangents)
add_subdirectory(contrib/glad)
add_subdirectory(contrib/stb)

project(gfx)

add_shader_library(shaders
  shaders/brdf_integration_map.frag
  shaders/cook_torrance.frag
  shaders/cook_torrance.vert
  shaders/cubemap_filtering.vert
  shaders/debug3d.frag
  shaders/debug3d.vert
  shaders/immediate_mode.frag
  shaders/immediate_mode.vert
  shaders/irradiance_map.frag
  shaders/prefiltered_environment_map.frag
  shaders/quad.vert
  shaders/skyquad.frag
  shaders/skyquad.vert
  shaders/view_normal_mapped_normals.frag
  shaders/view_normal_mapped_normals.vert
  shaders/view_normals.frag
  shaders/view_normals.vert
  shaders/view_tangents.frag
  shaders/view_tangents.vert
  shaders/view_texture.frag
  shaders/view_texture.vert)

add_library(gfx SHARED
  src/render/buffer.c
  src/render/framebuffer.c
  src/render/geometry.c
  src/render/render_backend.c
  src/render/renderbuffer.c
  src/render/shader_program.c
  src/render/shader.c
  src/render/texture.c
  src/renderer/imm_renderer.c
  src/renderer/renderer.c
  src/scene/animation.c
  src/scene/camera.c
  src/scene/light.c
  src/scene/material.c
  src/scene/mesh.c
  src/scene/node.c
  src/scene/object.c
  src/scene/scene.c
  src/scene/scene_memory.c
  src/error.c
  src/gfx.c
  src/util/geometry.c
  src/util/ibl.c
  src/util/shader.c
  src/util/scene.c
  src/util/skyquad.c
  src/util/texture.c)

target_include_directories(gfx PUBLIC
  include)

target_include_directories(gfx PRIVATE
  src)

target_compile_options(gfx PRIVATE -std=gnu11 -Wall -Wextra -Wpedantic)

target_link_libraries(gfx PUBLIC
  cstring)

target_link_libraries(gfx PRIVATE
  cgltf
  cgltf-tangents
  glad
  listpool
  log
  math
  mempool
  shaders
  stb
  # System libraries.
  GL
  # Required to initialize GLAD.
  -ldl)