Skip to content

Commit 481d57f

Browse files
authored
Merge pull request #3 from sparkleholic/master_fix2
fix: normalize vulkan-shaders-gen output path for MSVC
2 parents b6ebd4f + ce14d9b commit 481d57f

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

ggml/src/ggml-vulkan/CMakeLists.txt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

ggml/src/ggml-vulkan/host_toolchain.cmake.in

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,10 @@ set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER)
66
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER)
77
set(CMAKE_C_COMPILER @HOST_C_COMPILER@)
88
set(CMAKE_CXX_COMPILER @HOST_CXX_COMPILER@)
9+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY @CMAKE_RUNTIME_OUTPUT_DIRECTORY@)
10+
11+
if("@CMAKE_C_COMPILER_ID@" STREQUAL "MSVC")
12+
foreach(CONFIG IN ITEMS DEBUG RELEASE MINSIZEREL RELWITHDEBINFO)
13+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONFIG} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
14+
endforeach()
15+
endif()

0 commit comments

Comments
 (0)