@@ -49,15 +49,7 @@ if (Vulkan_FOUND)
4949 ../../include /ggml-vulkan.h
5050 )
5151
52- set (VULKAN_SHADER_GEN_CMAKE_ARGS
53- -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}
54- -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
55- )
56-
57- set (VULKAN_SHADER_GEN_CMAKE_BUILD_ARGS "" )
58- if (CMAKE_BUILD_TYPE AND CMAKE_BUILD_TYPE MATCHES "Debug|Release|MinSizeRel|RelWithDebInfo" )
59- list (APPEND VULKAN_SHADER_GEN_CMAKE_BUILD_ARGS --config=${CMAKE_BUILD_TYPE} )
60- endif ()
52+ set (VULKAN_SHADER_GEN_CMAKE_ARGS "" )
6153
6254 # Test all shader extensions
6355 test_shader_extension_support(
@@ -136,38 +128,37 @@ if (Vulkan_FOUND)
136128 set (HOST_CMAKE_TOOLCHAIN_FILE "" )
137129 endif ()
138130
139- # Always use ExternalProject_Add approach
140131 include (ExternalProject)
141132
142- # Add toolchain file if cross-compiling
143133 if (CMAKE_CROSSCOMPILING )
144134 list (APPEND VULKAN_SHADER_GEN_CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${HOST_CMAKE_TOOLCHAIN_FILE} )
145135 message (STATUS "vulkan-shaders-gen toolchain file: ${HOST_CMAKE_TOOLCHAIN_FILE} " )
146136 endif ()
147137
148- # Native build through ExternalProject_Add
149138 ExternalProject_Add(
150139 vulkan-shaders-gen
151140 SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} /vulkan-shaders
152- CMAKE_ARGS ${VULKAN_SHADER_GEN_CMAKE_ARGS}
153- BUILD_COMMAND ${CMAKE_COMMAND} --build . ${VULKAN_SHADER_GEN_CMAKE_BUILD_ARGS}
154- INSTALL_COMMAND ${CMAKE_COMMAND} --install .
155- INSTALL_DIR ${CMAKE_BINARY_DIR}
141+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} /$<CONFIG>
142+ -DCMAKE_BUILD_TYPE=$<CONFIG>
143+ ${VULKAN_SHADER_GEN_CMAKE_ARGS}
144+
145+ BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
156146 )
157- ExternalProject_Add_StepTargets(vulkan-shaders-gen build install )
147+ ExternalProject_Add_StepTargets(vulkan-shaders-gen build )
158148
159149 set (_ggml_vk_host_suffix $<IF:$<STREQUAL :${CMAKE_HOST_SYSTEM_NAME} ,Windows>,.exe,>)
160- set (_ggml_vk_genshaders_cmd ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /vulkan-shaders-gen${_ggml_vk_host_suffix} )
161- set (_ggml_vk_header ${CMAKE_CURRENT_BINARY_DIR} /ggml-vulkan-shaders.hpp)
162- set (_ggml_vk_source ${CMAKE_CURRENT_BINARY_DIR} /ggml-vulkan-shaders.cpp)
163- set (_ggml_vk_input_dir ${CMAKE_CURRENT_SOURCE_DIR} /vulkan-shaders)
164- set (_ggml_vk_output_dir ${CMAKE_CURRENT_BINARY_DIR} /vulkan-shaders.spv)
150+ set (_ggml_vk_genshaders_dir "$<TARGET_PROPERTY:vulkan-shaders-gen,_EP_BINARY_DIR>" )
151+ set (_ggml_vk_genshaders_cmd "${_ggml_vk_genshaders_dir} /$<CONFIG>/vulkan-shaders-gen${_ggml_vk_host_suffix} " )
152+ set (_ggml_vk_header "${CMAKE_CURRENT_BINARY_DIR} /ggml-vulkan-shaders.hpp" )
153+ set (_ggml_vk_source "${CMAKE_CURRENT_BINARY_DIR} /ggml-vulkan-shaders.cpp" )
154+ set (_ggml_vk_input_dir "${CMAKE_CURRENT_SOURCE_DIR} /vulkan-shaders" )
155+ set (_ggml_vk_output_dir "${CMAKE_CURRENT_BINARY_DIR} /vulkan-shaders.spv" )
165156
166157 file (GLOB _ggml_vk_shader_deps "${_ggml_vk_input_dir} /*.comp" )
167158 set (_ggml_vk_shader_deps ${_ggml_vk_shader_deps} vulkan-shaders-gen)
168159
169- # Add build and install dependencies for all builds
170- set (_ggml_vk_shader_deps ${_ggml_vk_shader_deps} vulkan-shaders-gen-build vulkan-shaders-gen- install )
160+ # Add build dependencies for all builds
161+ set (_ggml_vk_shader_deps ${_ggml_vk_shader_deps} vulkan-shaders-gen-build )
171162
172163 add_custom_command (
173164 OUTPUT ${_ggml_vk_header}
0 commit comments