|
1 | 1 | set(SOURCES |
2 | | - main.cpp |
3 | | - Cluster.h |
4 | | - Cluster.cpp |
5 | | - Config.h |
6 | | - Config.cpp |
7 | | - UI.h |
8 | | - UI.cpp |
9 | | - Scene/Scene.h |
10 | | - Scene/Scene.cpp |
11 | | - Scene/Camera.h |
12 | | - Scene/Camera.cpp |
13 | | - Scene/Mesh.h |
14 | | - Scene/Mesh.cpp |
15 | | - Scene/Material.h |
16 | | - Scene/Light.h |
17 | | - Renderer/Renderer.h |
18 | | - Renderer/Renderer.cpp |
19 | | - Renderer/ForwardRenderer.h |
20 | | - Renderer/ForwardRenderer.cpp |
21 | | - Renderer/DeferredRenderer.h |
22 | | - Renderer/DeferredRenderer.cpp |
23 | | - Renderer/ClusteredRenderer.h |
24 | | - Renderer/ClusteredRenderer.cpp |
25 | | - Renderer/PBRShader.h |
26 | | - Renderer/PBRShader.cpp |
27 | | - Log/Log.h |
28 | | - Log/Log.cpp |
29 | | - Log/UISink.h |
30 | | - Log/AssimpSource.h |
31 | | - vs_forward.sc |
32 | | - fs_forward.sc |
33 | | - vs_tonemap.sc |
34 | | - fs_tonemap.sc |
35 | | - tonemapping.sh |
36 | | - pbr_shader.sh |
37 | | - varying.def.sc |
| 2 | + main.cpp |
| 3 | + Cluster.h |
| 4 | + Cluster.cpp |
| 5 | + Config.h |
| 6 | + Config.cpp |
| 7 | + UI.h |
| 8 | + UI.cpp |
| 9 | + |
| 10 | + Log/Log.h |
| 11 | + Log/Log.cpp |
| 12 | + Log/UISink.h |
| 13 | + Log/AssimpSource.h |
| 14 | + |
| 15 | + Renderer/Renderer.h |
| 16 | + Renderer/Renderer.cpp |
| 17 | + Renderer/ForwardRenderer.h |
| 18 | + Renderer/ForwardRenderer.cpp |
| 19 | + Renderer/DeferredRenderer.h |
| 20 | + Renderer/DeferredRenderer.cpp |
| 21 | + Renderer/ClusteredRenderer.h |
| 22 | + Renderer/ClusteredRenderer.cpp |
| 23 | + Renderer/PBRShader.h |
| 24 | + Renderer/PBRShader.cpp |
| 25 | + Renderer/LightShader.h |
| 26 | + Renderer/LightShader.cpp |
| 27 | + |
| 28 | + Scene/Scene.h |
| 29 | + Scene/Scene.cpp |
| 30 | + Scene/Camera.h |
| 31 | + Scene/Camera.cpp |
| 32 | + Scene/Mesh.h |
| 33 | + Scene/Mesh.cpp |
| 34 | + Scene/Material.h |
| 35 | + Scene/Light.h |
| 36 | +) |
| 37 | + |
| 38 | +set(SHADERS |
| 39 | + Renderer/Shaders/varying.def.sc |
| 40 | + Renderer/Shaders/vs_forward.sc |
| 41 | + Renderer/Shaders/fs_forward.sc |
| 42 | + Renderer/Shaders/vs_tonemap.sc |
| 43 | + Renderer/Shaders/fs_tonemap.sc |
| 44 | + Renderer/Shaders/tonemapping.sh |
| 45 | + Renderer/Shaders/pbr.sh |
| 46 | + Renderer/Shaders/lights.sh |
38 | 47 | ) |
39 | 48 |
|
40 | | -add_executable(Cluster ${SOURCES}) |
| 49 | +add_executable(Cluster ${SOURCES} ${SHADERS}) |
41 | 50 | target_include_directories(Cluster PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) |
42 | 51 | target_link_libraries(Cluster PRIVATE bigg IconFontCppHeaders assimp spdlog) |
43 | 52 | target_compile_definitions(Cluster PRIVATE GLM_FORCE_LEFT_HANDED) |
44 | 53 |
|
45 | 54 | set_target_properties(Cluster PROPERTIES |
46 | | - RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}" |
| 55 | + RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}" |
47 | 56 | ) |
48 | 57 |
|
49 | 58 | configure_debugging(Cluster WORKING_DIR ${PROJECT_BINARY_DIR}) |
50 | 59 |
|
51 | 60 | if(MSVC) |
52 | | - # disable macro redefinition warning |
53 | | - # ideally 3rd party include folders were marked as SYSTEM so we wouldn't get these warnings |
54 | | - target_compile_options(Cluster PRIVATE "/wd4005") |
55 | | - # hide console window |
56 | | - target_link_options(Cluster PRIVATE "/SUBSYSTEM:WINDOWS" "/ENTRY:mainCRTStartup") |
| 61 | + # disable macro redefinition warning |
| 62 | + # ideally 3rd party include folders were marked as SYSTEM so we wouldn't get these warnings |
| 63 | + target_compile_options(Cluster PRIVATE "/wd4005") |
| 64 | + # hide console window |
| 65 | + target_link_options(Cluster PRIVATE "/SUBSYSTEM:WINDOWS" "/ENTRY:mainCRTStartup") |
57 | 66 | endif() |
58 | 67 |
|
59 | 68 | set(SHADER_DIR "${PROJECT_BINARY_DIR}/shaders") |
60 | 69 | set(ASSETS_DIR "${PROJECT_BINARY_DIR}/assets") |
61 | 70 |
|
62 | | -add_shader(vs_forward.sc VERTEX OUTPUT ${SHADER_DIR} DX11_MODEL 5_0 GLSL_VERSION 130) |
63 | | -add_shader(fs_forward.sc FRAGMENT OUTPUT ${SHADER_DIR} DX11_MODEL 5_0 GLSL_VERSION 130) |
64 | | -add_shader(vs_tonemap.sc VERTEX OUTPUT ${SHADER_DIR} DX11_MODEL 5_0 GLSL_VERSION 130) |
65 | | -add_shader(fs_tonemap.sc FRAGMENT OUTPUT ${SHADER_DIR} DX11_MODEL 5_0 GLSL_VERSION 130) |
| 71 | +foreach(SHADER ${SHADERS}) |
| 72 | + get_filename_component(SHADER_NAME "${SHADER}" NAME) |
| 73 | + get_filename_component(SHADER_FILE "${SHADER}" ABSOLUTE) |
| 74 | + if(SHADER_NAME MATCHES "^vs_") |
| 75 | + add_shader("${SHADER_FILE}" VERTEX OUTPUT "${SHADER_DIR}" PLATFORMS dx11 glsl) |
| 76 | + elseif(SHADER_NAME MATCHES "^fs_") |
| 77 | + add_shader("${SHADER_FILE}" FRAGMENT OUTPUT "${SHADER_DIR}" PLATFORMS dx11 glsl) |
| 78 | + elseif(SHADER_NAME MATCHES "^cs_") |
| 79 | + add_shader("${SHADER_FILE}" COMPUTE OUTPUT "${SHADER_DIR}" PLATFORMS dx11 glsl) |
| 80 | + else() |
| 81 | + # add_shader does this, do it manually for includes/varying.def.sc |
| 82 | + source_group("Shader Files" FILES ${SHADERS}) |
| 83 | + endif() |
| 84 | +endforeach() |
66 | 85 |
|
67 | 86 | file(COPY ../assets/ DESTINATION ${ASSETS_DIR}) |
68 | 87 |
|
|
0 commit comments