Skip to content

Commit 2742b9f

Browse files
Add compute shader compilation to cmake (#362)
* Add compute shader to build targets (if present) Fixes #351 Fixes #361 * Add compute shader to build targets (if present) Fixes #351 Fixes #361 * Add compute shader to build targets (if present) Fixes #351 Fixes #361
1 parent fe86b76 commit 2742b9f

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

code/CMakeLists.txt

+10-3
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,23 @@ function (add_shaders_target TARGET)
2828
OUTPUT ${SHADERS_DIR}
2929
COMMAND ${CMAKE_COMMAND} -E make_directory ${SHADERS_DIR}
3030
)
31+
set (SHADERS ${SHADERS_DIR}/frag.spv ${SHADERS_DIR}/vert.spv)
32+
# Some chapters may have compute shaders in addition to vertex and fragment shaders,
33+
# so we conditionally check this and add them to the target
34+
string(FIND "${SHADER_SOURCES}" "${CHAPTER_SHADER}.comp" COMPUTE_SHADER_INDEX)
35+
if (${COMPUTE_SHADER_INDEX} GREATER -1)
36+
set (SHADERS ${SHADERS} ${SHADERS_DIR}/comp.spv)
37+
endif()
3138
add_custom_command (
32-
OUTPUT ${SHADERS_DIR}/frag.spv ${SHADERS_DIR}/vert.spv
39+
OUTPUT ${SHADERS}
3340
COMMAND glslang::validator
3441
ARGS --target-env vulkan1.0 ${SHADER_SOURCES} --quiet
3542
WORKING_DIRECTORY ${SHADERS_DIR}
3643
DEPENDS ${SHADERS_DIR} ${SHADER_SOURCES}
3744
COMMENT "Compiling Shaders"
3845
VERBATIM
3946
)
40-
add_custom_target (${TARGET} DEPENDS ${SHADERS_DIR}/frag.spv ${SHADERS_DIR}/vert.spv)
47+
add_custom_target (${TARGET} DEPENDS ${SHADERS})
4148
endfunction ()
4249

4350
function (add_chapter CHAPTER_NAME)
@@ -52,7 +59,7 @@ function (add_chapter CHAPTER_NAME)
5259

5360
if (DEFINED CHAPTER_SHADER)
5461
set (CHAPTER_SHADER_TARGET ${CHAPTER_NAME}_shader)
55-
file (GLOB SHADER_SOURCES ${CHAPTER_SHADER}.frag ${CHAPTER_SHADER}.vert)
62+
file (GLOB SHADER_SOURCES ${CHAPTER_SHADER}.frag ${CHAPTER_SHADER}.vert ${CHAPTER_SHADER}.comp)
5663
add_shaders_target (${CHAPTER_SHADER_TARGET} CHAPTER_NAME ${CHAPTER_NAME} SOURCES ${SHADER_SOURCES})
5764
add_dependencies (${CHAPTER_NAME} ${CHAPTER_SHADER_TARGET})
5865
endif ()

0 commit comments

Comments
 (0)