should prob put this on git sometime
This commit is contained in:
27
cmake/compile_shaders.cmake
Normal file
27
cmake/compile_shaders.cmake
Normal file
@@ -0,0 +1,27 @@
|
||||
function(compile_glsl_to_spv target shader_src_dir shader_out_dir out_var)
|
||||
find_program(GLSLC glslc REQUIRED)
|
||||
|
||||
file(GLOB_RECURSE SHADERS
|
||||
"${shader_src_dir}/*.vert"
|
||||
"${shader_src_dir}/*.frag"
|
||||
"${shader_src_dir}/*.comp"
|
||||
)
|
||||
|
||||
set(SPV_OUTPUTS "")
|
||||
foreach(shader ${SHADERS})
|
||||
file(RELATIVE_PATH rel "${shader_src_dir}" "${shader}")
|
||||
set(out "${shader_out_dir}/${rel}.spv")
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${out}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "$<PATH:GET_PARENT_PATH,${out}>"
|
||||
COMMAND ${GLSLC} -o "${out}" "${shader}"
|
||||
DEPENDS "${shader}"
|
||||
VERBATIM
|
||||
)
|
||||
list(APPEND SPV_OUTPUTS "${out}")
|
||||
endforeach()
|
||||
|
||||
add_custom_target(${target}_shaders ALL DEPENDS ${SPV_OUTPUTS})
|
||||
set(${out_var} ${SPV_OUTPUTS} PARENT_SCOPE)
|
||||
endfunction()
|
||||
Reference in New Issue
Block a user