@@ -51,6 +51,7 @@ if (Vulkan_FOUND)
5151
5252 set (VULKAN_SHADER_GEN_CMAKE_ARGS
5353 -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}
54+ # CMAKE_RUNTIME_OUTPUT_DIRECTORY 这里保持原样,因为 _ggml_vk_genshaders_cmd 接下来会使用硬编码路径
5455 -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
5556 )
5657
@@ -88,7 +89,7 @@ if (Vulkan_FOUND)
8889 target_include_directories (ggml-vulkan PRIVATE ${CMAKE_CURRENT_BINARY_DIR} )
8990
9091 # Workaround to the "can't dereference invalidated vector iterator" bug in clang-cl debug build
91- # Posssibly relevant: https://stackoverflow.com/questions/74748276/visual-studio-no-displays-the- correct-length-of-stdvector
92+ # Posssibly relevant: https://stackoverflow.com/questions/74748276/visual-studio-no-displays-the. correct-length-of-stdvector
9293 if (MSVC AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang" )
9394 add_compile_definitions (_ITERATOR_DEBUG_LEVEL=0)
9495 endif ()
@@ -151,13 +152,18 @@ if (Vulkan_FOUND)
151152 SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} /vulkan-shaders
152153 CMAKE_ARGS ${VULKAN_SHADER_GEN_CMAKE_ARGS}
153154 BUILD_COMMAND ${CMAKE_COMMAND} --build . ${VULKAN_SHADER_GEN_CMAKE_BUILD_ARGS}
154- INSTALL_COMMAND ${CMAKE_COMMAND} --install .
155- INSTALL_DIR ${CMAKE_BINARY_DIR}
155+ INSTALL_COMMAND "" # <-- 关键修改:强制为空命令
156+ # INSTALL_DIR ${CMAKE_BINARY_DIR} # <-- 保持注释,因为 INSTALL_COMMAND 已经为空
157+ BUILD_IN_SOURCE ON # <-- 保持新增
156158 )
157- ExternalProject_Add_StepTargets(vulkan-shaders-gen build install )
159+ # 修改 ExternalProject_Add_StepTargets, 移除 'install' 目标
160+ ExternalProject_Add_StepTargets(vulkan-shaders-gen build )
158161
159162 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} )
163+ # 修改 _ggml_vk_genshaders_cmd 的路径,直接指向构建后的文件位置
164+ # CMAKE_BINARY_DIR 是主项目的构建目录(例如 /data/data/com.termux/files/home/llama.cpp/build)
165+ # bin/ 是 CMAKE_RUNTIME_OUTPUT_DIRECTORY 的默认子目录,vulkan-shaders-gen 实际链接到这里
166+ set (_ggml_vk_genshaders_cmd ${CMAKE_BINARY_DIR} /bin/vulkan-shaders-gen${_ggml_vk_host_suffix} )
161167 set (_ggml_vk_header ${CMAKE_CURRENT_BINARY_DIR} /ggml-vulkan-shaders.hpp)
162168 set (_ggml_vk_source ${CMAKE_CURRENT_BINARY_DIR} /ggml-vulkan-shaders.cpp)
163169 set (_ggml_vk_input_dir ${CMAKE_CURRENT_SOURCE_DIR} /vulkan-shaders)
@@ -167,7 +173,8 @@ if (Vulkan_FOUND)
167173 set (_ggml_vk_shader_deps ${_ggml_vk_shader_deps} vulkan-shaders-gen)
168174
169175 # 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 )
176+ # 修改 _ggml_vk_shader_deps,移除对 'vulkan-shaders-gen-install' 的依赖
177+ set (_ggml_vk_shader_deps ${_ggml_vk_shader_deps} vulkan-shaders-gen-build )
171178
172179 add_custom_command (
173180 OUTPUT ${_ggml_vk_header}
@@ -189,4 +196,4 @@ if (Vulkan_FOUND)
189196
190197else ()
191198 message (WARNING "Vulkan not found" )
192- endif ()
199+ endif ()
0 commit comments