CMake: Don't recompile shaders on every build;

Recompile them only when needed.
This commit is contained in:
bjorn 2022-11-26 14:20:09 -08:00
parent 4422df2a47
commit b4b2b56c90
1 changed files with 10 additions and 10 deletions

View File

@ -476,9 +476,6 @@ if(LOVR_ENABLE_GRAPHICS)
target_sources(lovr PRIVATE src/core/gpu_webgpu.c)
endif()
add_custom_target(compile_shaders ALL)
add_dependencies(lovr compile_shaders)
function(compile_shaders)
if(LOVR_USE_GLSLANG AND ENABLE_GLSLANG_BINARIES AND NOT ANDROID)
set(GLSLANG_VALIDATOR $<TARGET_FILE:glslangValidator>)
@ -494,15 +491,18 @@ if(LOVR_ENABLE_GRAPHICS)
foreach(shader_file ${shader_files})
string(REGEX MATCH "([^\/]+)\.${ARGV0}" shader ${shader_file})
string(REPLACE ".${ARGV0}" "" shader ${shader})
add_custom_command(TARGET compile_shaders POST_BUILD
add_custom_command(
OUTPUT ${shader_file}.h
DEPENDS ${shader_file}
COMMAND
${GLSLANG_VALIDATOR}
--quiet
--target-env vulkan1.1
--vn lovr_shader_${shader}_${ARGV0}
-o ${shader_file}.h
${shader_file}
${GLSLANG_VALIDATOR}
--quiet
--target-env vulkan1.1
--vn lovr_shader_${shader}_${ARGV0}
-o ${shader_file}.h
${shader_file}
)
target_sources(lovr PRIVATE ${shader_file}.h)
endforeach()
endfunction()