@@ -109,6 +109,13 @@ if (Vulkan_FOUND)
109109
110110 if (NOT CMAKE_CROSSCOMPILING )
111111 add_subdirectory (vulkan-shaders)
112+ if (MSVC )
113+ foreach (CONFIG ${CMAKE_CONFIGURATION_TYPES} )
114+ string (TOUPPER ${CONFIG} CONFIG)
115+ set_target_properties (vulkan-shaders-gen PROPERTIES
116+ RUNTIME_OUTPUT_DIRECTORY_${CONFIG} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} )
117+ endforeach ()
118+ endif ()
112119 else ()
113120 if (GGML_SHADERS_GEN_TOOLCHAIN)
114121 set (HOST_CMAKE_TOOLCHAIN_FILE ${GGML_SHADERS_GEN_TOOLCHAIN} )
@@ -137,13 +144,15 @@ if (Vulkan_FOUND)
137144 )
138145 ExternalProject_Add_StepTargets(vulkan-shaders-gen build install )
139146 endif ()
140- set (_ggml_vk_genshaders_cmd ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /vulkan-shaders-gen)
147+ set (_ggml_vk_host_suffix $<IF:$<STREQUAL :${CMAKE_HOST_SYSTEM_NAME} ,Windows>,.exe,>)
148+ set (_ggml_vk_genshaders_cmd ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /vulkan-shaders-gen${_ggml_vk_host_suffix} )
141149 set (_ggml_vk_header ${CMAKE_CURRENT_BINARY_DIR} /ggml-vulkan-shaders.hpp)
142150 set (_ggml_vk_source ${CMAKE_CURRENT_BINARY_DIR} /ggml-vulkan-shaders.cpp)
143151 set (_ggml_vk_input_dir ${CMAKE_CURRENT_SOURCE_DIR} /vulkan-shaders)
144152 set (_ggml_vk_output_dir ${CMAKE_CURRENT_BINARY_DIR} /vulkan-shaders.spv)
145153
146154 file (GLOB _ggml_vk_shader_deps "${_ggml_vk_input_dir} /*.comp" )
155+ set (_ggml_vk_shader_deps ${_ggml_vk_shader_deps} vulkan-shaders-gen)
147156
148157 if (CMAKE_CROSSCOMPILING )
149158 set (_ggml_vk_shader_deps ${_ggml_vk_shader_deps} vulkan-shaders-gen-build vulkan-shaders-gen-install )
@@ -161,7 +170,7 @@ if (Vulkan_FOUND)
161170 --target -cpp ${_ggml_vk_source}
162171 --no -clean
163172
164- DEPENDS ${_ggml_vk_shader_deps} ${_ggml_vk_genshaders_cmd}
173+ DEPENDS ${_ggml_vk_shader_deps}
165174 COMMENT "Generate vulkan shaders"
166175 )
167176
0 commit comments