@@ -143,7 +143,8 @@ if (Vulkan_FOUND)
143143 -DCMAKE_BUILD_TYPE=$<CONFIG>
144144 ${VULKAN_SHADER_GEN_CMAKE_ARGS}
145145
146- BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
146+ BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
147+ BUILD_ALWAYS TRUE
147148
148149 # NOTE: When DESTDIR is set using Makefile generators and
149150 # "make install" triggers the build step, vulkan-shaders-gen
@@ -153,7 +154,6 @@ if (Vulkan_FOUND)
153154 INSTALL_COMMAND ${CMAKE_COMMAND} -E env --unset=DESTDIR
154155 ${CMAKE_COMMAND} --install . --config $<CONFIG>
155156 )
156- ExternalProject_Add_StepTargets(vulkan-shaders-gen build install )
157157
158158 set (_ggml_vk_host_suffix $<IF:$<STREQUAL :${CMAKE_HOST_SYSTEM_NAME} ,Windows>,.exe,>)
159159 set (_ggml_vk_genshaders_dir "${CMAKE_BINARY_DIR} /$<CONFIG>" )
@@ -165,6 +165,14 @@ if (Vulkan_FOUND)
165165
166166 file (GLOB _ggml_vk_shader_files CONFIGURE_DEPENDS "${_ggml_vk_input_dir} /*.comp" )
167167
168+ # Because external projects do not provide source-level tracking,
169+ # the vulkan-shaders-gen sources need to be explicitly added to
170+ # ensure that changes will cascade into shader re-generation.
171+
172+ file (GLOB _ggml_vk_shaders_gen_sources
173+ CONFIGURE_DEPENDS "${_ggml_vk_input_dir} /*.cpp"
174+ "${_ggml_vk_input_dir} /*.h" )
175+
168176 add_custom_command (
169177 OUTPUT ${_ggml_vk_header}
170178 ${_ggml_vk_source}
@@ -178,9 +186,8 @@ if (Vulkan_FOUND)
178186 --no -clean
179187
180188 DEPENDS ${_ggml_vk_shader_files}
189+ ${_ggml_vk_shaders_gen_sources}
181190 vulkan-shaders-gen
182- vulkan-shaders-gen-build
183- vulkan-shaders-gen-install
184191
185192 COMMENT "Generate vulkan shaders"
186193 )
0 commit comments