mirror of https://github.com/bjornbytes/lovr.git
CMake: Don't recompile shaders on every build;
Recompile them only when needed.
This commit is contained in:
parent
4422df2a47
commit
b4b2b56c90
|
@ -476,9 +476,6 @@ if(LOVR_ENABLE_GRAPHICS)
|
||||||
target_sources(lovr PRIVATE src/core/gpu_webgpu.c)
|
target_sources(lovr PRIVATE src/core/gpu_webgpu.c)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_custom_target(compile_shaders ALL)
|
|
||||||
add_dependencies(lovr compile_shaders)
|
|
||||||
|
|
||||||
function(compile_shaders)
|
function(compile_shaders)
|
||||||
if(LOVR_USE_GLSLANG AND ENABLE_GLSLANG_BINARIES AND NOT ANDROID)
|
if(LOVR_USE_GLSLANG AND ENABLE_GLSLANG_BINARIES AND NOT ANDROID)
|
||||||
set(GLSLANG_VALIDATOR $<TARGET_FILE:glslangValidator>)
|
set(GLSLANG_VALIDATOR $<TARGET_FILE:glslangValidator>)
|
||||||
|
@ -494,15 +491,18 @@ if(LOVR_ENABLE_GRAPHICS)
|
||||||
foreach(shader_file ${shader_files})
|
foreach(shader_file ${shader_files})
|
||||||
string(REGEX MATCH "([^\/]+)\.${ARGV0}" shader ${shader_file})
|
string(REGEX MATCH "([^\/]+)\.${ARGV0}" shader ${shader_file})
|
||||||
string(REPLACE ".${ARGV0}" "" shader ${shader})
|
string(REPLACE ".${ARGV0}" "" shader ${shader})
|
||||||
add_custom_command(TARGET compile_shaders POST_BUILD
|
add_custom_command(
|
||||||
|
OUTPUT ${shader_file}.h
|
||||||
|
DEPENDS ${shader_file}
|
||||||
COMMAND
|
COMMAND
|
||||||
${GLSLANG_VALIDATOR}
|
${GLSLANG_VALIDATOR}
|
||||||
--quiet
|
--quiet
|
||||||
--target-env vulkan1.1
|
--target-env vulkan1.1
|
||||||
--vn lovr_shader_${shader}_${ARGV0}
|
--vn lovr_shader_${shader}_${ARGV0}
|
||||||
-o ${shader_file}.h
|
-o ${shader_file}.h
|
||||||
${shader_file}
|
${shader_file}
|
||||||
)
|
)
|
||||||
|
target_sources(lovr PRIVATE ${shader_file}.h)
|
||||||
endforeach()
|
endforeach()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue