-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCMakeLists.txt
99 lines (82 loc) · 2.9 KB
/
CMakeLists.txt
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
89
90
91
92
93
94
95
96
97
98
99
cmake_minimum_required(VERSION 3.10)
project(vukpbr CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_definitions(-DGLM_FORCE_RADIANS -DGLM_FORCE_DEPTH_ZERO_TO_ONE)
add_compile_definitions(PROJECT_ABSOLUTE_PATH="${CMAKE_CURRENT_SOURCE_DIR}")
set(Source
Source/main.cpp
Source/Resource.cpp
Source/Mesh.cpp
Source/GfxUtil.cpp
Source/STB.cpp
Source/Context.cpp
Source/Renderer.cpp
Source/Scene.cpp
Source/Frustum.cpp
Source/Perspective.cpp
Source/PipelineStore.cpp
Source/GfxParts/CascadedShadows.cpp
Source/GfxParts/SSAO.cpp
Source/GfxParts/GBuffer.cpp
Source/GfxParts/VolumetricLights.cpp
Source/GfxParts/Atmosphere.cpp
)
set(Resources
Resources/Shaders/pbr.vert
Resources/Shaders/pbr.frag
Resources/Shaders/cubemap.vert
Resources/Shaders/equirectangular_to_cubemap.frag
Resources/Shaders/irradiance_convolution.frag
Resources/Shaders/prefilter.frag
Resources/Shaders/brdf.vert
Resources/Shaders/brdf.frag
Resources/Shaders/depth_only.vert
Resources/Shaders/depth_only.frag
Resources/Shaders/debug_shadow_map.vert
Resources/Shaders/debug_shadow_map.frag
Resources/Shaders/ssao.vert
Resources/Shaders/ssao.frag
Resources/Shaders/gbuffer.vert
Resources/Shaders/gbuffer.frag
Resources/Shaders/debug.vert
Resources/Shaders/debug.frag
Resources/Shaders/ssao_blur.frag
Resources/Shaders/volumetric_light.vert
Resources/Shaders/volumetric_light.frag
Resources/Shaders/volumetric_light_blur.vert
Resources/Shaders/volumetric_light_blur.frag
Resources/Shaders/composite.vert
Resources/Shaders/composite.frag
Resources/Shaders/sky.vert
Resources/Shaders/sky.frag
Resources/Shaders/skybox.vert
Resources/Shaders/skybox.frag
Resources/Textures/rust_albedo.jpg
Resources/Textures/rust_metallic.png
Resources/Textures/rust_roughness.jpg
Resources/Textures/rust_normal.jpg
Resources/Textures/rust_ao.jpg
Resources/Textures/forest_slope_1k.hdr
Resources/Textures/kloppenheim_2k.hdr
Resources/Textures/random_normal.jpg
Resources/Textures/flat_normal.png
Resources/Meshes/Sphere.obj
Resources/Meshes/Pillars.obj
)
add_executable(vukpbr ${Source})
include(CMakeRC.cmake)
cmrc_add_resource_library(VPBRResources ALIAS VPBR::Resources NAMESPACE vpbr ${Resources})
set(GLFW_BUILD_EXAMPLES OFF)
set(GLFW_BUILD_TESTS OFF)
set(GLFW_BUILD_DOCS OFF)
add_subdirectory(ThirdParty/vuk)
add_subdirectory(ThirdParty/glfw)
add_subdirectory(ThirdParty/spdlog)
add_subdirectory(ThirdParty/vk-bootstrap)
add_subdirectory(ThirdParty/glm)
add_subdirectory(ThirdParty/entt)
add_subdirectory(ThirdParty/tinyobjloader)
target_link_libraries(vukpbr PRIVATE VPBR::Resources vuk glfw spdlog vk-bootstrap glm EnTT tinyobjloader)
target_include_directories(vukpbr PRIVATE ThirdParty/stb)
target_compile_features(vukpbr PRIVATE cxx_std_20)