[ggml,llama-cpp,whisper-cpp] Update, features, cleanup (#46569)

This commit is contained in:
Kai Pastor 2025-07-30 07:08:57 +02:00 committed by GitHub
parent dc1ace36b8
commit 507dfce6a1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
22 changed files with 288 additions and 158 deletions

View File

@ -0,0 +1,14 @@
diff --git a/src/ggml-vulkan/CMakeLists.txt b/src/ggml-vulkan/CMakeLists.txt
index b97e7bf9..6de2b2fc 100644
--- a/src/ggml-vulkan/CMakeLists.txt
+++ b/src/ggml-vulkan/CMakeLists.txt
@@ -48,6 +48,9 @@ if (Vulkan_FOUND)
ggml-vulkan.cpp
../../include/ggml-vulkan.h
)
+ if(ANDROID)
+ target_compile_definitions(ggml-vulkan PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1)
+ endif()
set(VULKAN_SHADER_GEN_CMAKE_ARGS "")

15
ports/ggml/blas.diff Normal file
View File

@ -0,0 +1,15 @@
diff --git a/cmake/ggml-config.cmake.in b/cmake/ggml-config.cmake.in
index fe34cda4..2322c6cd 100644
--- a/cmake/ggml-config.cmake.in
+++ b/cmake/ggml-config.cmake.in
@@ -34,8 +34,8 @@ if (NOT GGML_SHARED_LIB)
if (GGML_BLAS)
find_dependency(BLAS)
- list(APPEND GGML_CPU_INTERFACE_LINK_LIBRARIES ${BLAS_LIBRARIES})
- list(APPEND GGML_CPU_INTERFACE_LINK_OPTIONS ${BLAS_LINKER_FLAGS})
+ list(APPEND GGML_BLAS_INTERFACE_LINK_LIBRARIES ${BLAS_LIBRARIES})
+ list(APPEND GGML_BLAS_INTERFACE_LINK_OPTIONS ${BLAS_LINKER_FLAGS})
endif()
if (GGML_CUDA)

View File

@ -1,54 +1,21 @@
diff --git a/cmake/ggml-config.cmake.in b/cmake/ggml-config.cmake.in
index 8c2dc31c..d6470b79 100644
index fe34cda4..723acac4 100644
--- a/cmake/ggml-config.cmake.in
+++ b/cmake/ggml-config.cmake.in
@@ -4,9 +4,11 @@
@PACKAGE_INIT@
@@ -98,7 +98,7 @@ if (NOT GGML_SHARED_LIB)
endif()
set_and_check(GGML_INCLUDE_DIR "@PACKAGE_GGML_INCLUDE_INSTALL_DIR@")
-set_and_check(GGML_LIB_DIR "@PACKAGE_GGML_LIB_INSTALL_DIR@")
+#set_and_check(GGML_LIB_DIR "@PACKAGE_GGML_LIB_INSTALL_DIR@")
#set_and_check(GGML_BIN_DIR "@PACKAGE_GGML_BIN_INSTALL_DIR@")
+if(NOT TARGET ggml::ggml)
+
find_package(Threads REQUIRED)
if(NOT TARGET ggml::ggml)
@@ -112,6 +112,7 @@ if(NOT TARGET ggml::ggml)
add_library(ggml::ggml UNKNOWN IMPORTED)
set_target_properties(ggml::ggml
PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${GGML_INCLUDE_DIR}"
IMPORTED_LOCATION "${GGML_LIBRARY}")
find_library(GGML_LIBRARY ggml
@@ -53,6 +55,17 @@ if (NOT GGML_SHARED_LIB)
if (GGML_CUDA)
find_package(CUDAToolkit REQUIRED)
+ if (GGML_STATIC)
+ list(APPEND GGML_CUDA_INTERFACE_LINK_LIBRARIES $<LINK_ONLY:CUDA::cudart_static>)
+ if (WIN32)
+ list(APPEND GGML_CUDA_INTERFACE_LINK_LIBRARIES $<LINK_ONLY:CUDA::cublas> $<LINK_ONLY:CUDA::cublasLt>)
+ else()
+ list(APPEND GGML_CUDA_INTERFACE_LINK_LIBRARIES $<LINK_ONLY:CUDA::cublas_static> $<LINK_ONLY:CUDA::cublasLt_static>)
+ endif()
+ endif()
+ if (NOT GGML_CUDA_NO_VMM)
+ list(APPEND GGML_CUDA_INTERFACE_LINK_LIBRARIES $<LINK_ONLY:CUDA::cuda_driver>)
+ endif()
endif()
if (GGML_METAL)
@@ -64,6 +77,11 @@ if (NOT GGML_SHARED_LIB)
${FOUNDATION_LIBRARY} ${METAL_FRAMEWORK} ${METALKIT_FRAMEWORK})
endif()
+ if (GGML_OPENCL)
+ find_package(OpenCL REQUIRED)
+ list(APPEND GGML_OPENCL_INTERFACE_LINK_LIBRARIES $<LINK_ONLY:OpenCL::OpenCL>)
+ endif()
+
if (GGML_VULKAN)
find_package(Vulkan REQUIRED)
list(APPEND GGML_VULKAN_INTERFACE_LINK_LIBRARIES Vulkan::Vulkan)
@@ -149,4 +167,6 @@ set_target_properties(ggml::all
PROPERTIES
INTERFACE_LINK_LIBRARIES "${_ggml_all_targets}")
+endif() # TARGET ggml::ggml
+
check_required_components(ggml)
find_library(GGML_BASE_LIBRARY ggml-base

13
ports/ggml/fix-32bit.diff Normal file
View File

@ -0,0 +1,13 @@
diff --git a/src/ggml-vulkan/ggml-vulkan.cpp b/src/ggml-vulkan/ggml-vulkan.cpp
index 3019a545..b8e3a0e5 100644
--- a/src/ggml-vulkan/ggml-vulkan.cpp
+++ b/src/ggml-vulkan/ggml-vulkan.cpp
@@ -1256,7 +1256,7 @@ static void ggml_vk_create_pipeline_func(vk_device& device, vk_pipeline& pipelin
vk::DebugUtilsObjectNameInfoEXT duoni;
duoni.objectType = vk::ObjectType::ePipeline;
duoni.pObjectName = pipeline->name.c_str();
- duoni.objectHandle = reinterpret_cast<uint64_t>(static_cast<VkPipeline_T*>(pipeline->pipeline));
+ duoni.objectHandle = /*reinterpret_cast*/(uint64_t)(static_cast<VkPipeline>(pipeline->pipeline));
vk_instance.pfn_vkSetDebugUtilsObjectNameEXT(device->device, &static_cast<VkDebugUtilsObjectNameInfoEXT &>(duoni));
}

View File

@ -1,13 +1,16 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO ggml-org/ggml
REF 38648430fce1422694f2f349a5fe60d5969d6f49 # before ggml_backend_sched_new change
SHA512 6c51c4b4757aecea3f713b2ee8fb08992c2bdcc203f8e44e307ab8bcd5ed575f154d438c1d036251441aedef1eae812dc7114f6ca5da8314b8e415d92f02f33d
REF 44ea6eda2ad8a94663597cbe85e37de98bd99269
SHA512 be93d44f87ef25f7c0bb37ca8020de7714ec89b4f92677d7b631a2dcad9db38789e59adb7a6af0d1f5f550c570d875ea9ed69833f7d7af76ef8cb9159f0a7c23
HEAD_REF master
PATCHES
android-vulkan.diff
cmake-config.diff
fix-32bit.diff
relax-link-options.diff
vulkan-shaders-gen.diff
blas.diff
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
@ -43,6 +46,16 @@ if("opencl" IN_LIST FEATURES)
)
endif()
if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
message(STATUS "The CPU backend is not supported for arm64 with MSVC.")
list(APPEND FEATURE_OPTIONS
"-DGGML_CPU=OFF"
)
if(FEATURES STREQUAL "core")
message(WARNING "No backend enabled!")
endif()
endif()
if("vulkan" IN_LIST FEATURES AND VCPKG_CROSSCOMPILING)
list(APPEND FEATURE_OPTIONS
"-DVulkan_GLSLC_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/shaderc/glslc${VCPKG_HOST_EXECUTABLE_SUFFIX}"

View File

@ -1,10 +1,10 @@
{
"name": "ggml",
"version-date": "2025-05-13",
"version-date": "2025-07-23",
"description": "Tensor library for machine learning",
"homepage": "https://github.com/ggml-org/ggml",
"license": "MIT",
"supports": "!(windows & arm) & !uwp",
"supports": "!uwp",
"dependencies": [
{
"name": "vcpkg-cmake",

View File

@ -1,27 +1,26 @@
diff --git a/src/ggml-vulkan/CMakeLists.txt b/src/ggml-vulkan/CMakeLists.txt
index 31816219..ae9c98d6 100644
index b97e7bf9..0ba5fcdd 100644
--- a/src/ggml-vulkan/CMakeLists.txt
+++ b/src/ggml-vulkan/CMakeLists.txt
@@ -124,7 +124,10 @@ if (Vulkan_FOUND)
@@ -110,6 +110,12 @@ if (Vulkan_FOUND)
add_compile_definitions(GGML_VULKAN_RUN_TESTS)
endif()
- if (NOT CMAKE_CROSSCOMPILING)
+ if(DEFINED VULKAN_SHADERS_GEN_EXECUTABLE)
+ add_executable(vulkan-shaders-gen IMPORTED)
+ set_target_properties(vulkan-shaders-gen PROPERTIES IMPORTED_LOCATION "${VULKAN_SHADERS_GEN_EXECUTABLE}")
+ elseif(1) # not crosscompiling
add_subdirectory(vulkan-shaders)
if (MSVC)
foreach(CONFIG ${CMAKE_CONFIGURATION_TYPES})
@@ -175,7 +178,9 @@ if (Vulkan_FOUND)
file(GLOB _ggml_vk_shader_deps "${_ggml_vk_input_dir}/*.comp")
set (_ggml_vk_shader_deps ${_ggml_vk_shader_deps} vulkan-shaders-gen)
- if (CMAKE_CROSSCOMPILING)
+ if(TARGET vulkan-shaders-gen)
+ set(_ggml_vk_genshaders_cmd vulkan-shaders-gen)
+ elseif(1)
+ add_subdirectory(vulkan-shaders)
+ elseif(0)
set(_ggml_vk_shader_deps ${_ggml_vk_shader_deps} vulkan-shaders-gen-build vulkan-shaders-gen-install)
endif()
# Set up toolchain for host compilation whether cross-compiling or not
if (CMAKE_CROSSCOMPILING)
if (GGML_VULKAN_SHADERS_GEN_TOOLCHAIN)
@@ -159,6 +165,8 @@ if (Vulkan_FOUND)
set (_ggml_vk_host_suffix $<IF:$<STREQUAL:${CMAKE_HOST_SYSTEM_NAME},Windows>,.exe,>)
set (_ggml_vk_genshaders_dir "${CMAKE_BINARY_DIR}/$<CONFIG>")
set (_ggml_vk_genshaders_cmd "${_ggml_vk_genshaders_dir}/vulkan-shaders-gen${_ggml_vk_host_suffix}")
+ endif()
+ set (_ggml_vk_genshaders_cmd "vulkan-shaders-gen")
set (_ggml_vk_header "${CMAKE_CURRENT_BINARY_DIR}/ggml-vulkan-shaders.hpp")
set (_ggml_vk_source "${CMAKE_CURRENT_BINARY_DIR}/ggml-vulkan-shaders.cpp")
set (_ggml_vk_input_dir "${CMAKE_CURRENT_SOURCE_DIR}/vulkan-shaders")

View File

@ -1,11 +0,0 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -145,6 +145,8 @@ endif()
# 3rd-party
#
+find_package(ggml CONFIG REQUIRED)
+add_library(ggml ALIAS ggml::ggml)
if (NOT TARGET ggml)
add_subdirectory(ggml)
# ... otherwise assume ggml is added by a parent CMakeLists.txt

View File

@ -0,0 +1,33 @@
diff --git a/cmake/llama-config.cmake.in b/cmake/llama-config.cmake.in
index 90cbec5..884938f 100644
--- a/cmake/llama-config.cmake.in
+++ b/cmake/llama-config.cmake.in
@@ -6,10 +6,10 @@ set(LLAMA_SHARED_LIB @BUILD_SHARED_LIBS@)
@PACKAGE_INIT@
set_and_check(LLAMA_INCLUDE_DIR "@PACKAGE_LLAMA_INCLUDE_INSTALL_DIR@")
-set_and_check(LLAMA_LIB_DIR "@PACKAGE_LLAMA_LIB_INSTALL_DIR@")
-set_and_check(LLAMA_BIN_DIR "@PACKAGE_LLAMA_BIN_INSTALL_DIR@")
+#set_and_check(LLAMA_LIB_DIR "@PACKAGE_LLAMA_LIB_INSTALL_DIR@")
+#set_and_check(LLAMA_BIN_DIR "@PACKAGE_LLAMA_BIN_INSTALL_DIR@")
-find_package(ggml REQUIRED HINTS ${LLAMA_LIB_DIR}/cmake)
+find_package(ggml REQUIRED CONFIG)
find_library(llama_LIBRARY llama
REQUIRED
@@ -17,6 +17,7 @@ find_library(llama_LIBRARY llama
NO_CMAKE_FIND_ROOT_PATH
)
+if(NOT TARGET llama)
add_library(llama UNKNOWN IMPORTED)
set_target_properties(llama
PROPERTIES
@@ -26,5 +27,6 @@ set_target_properties(llama
IMPORTED_LOCATION "${llama_LIBRARY}"
INTERFACE_COMPILE_FEATURES c_std_90
POSITION_INDEPENDENT_CODE ON)
+endif()
check_required_components(Llama)

View File

@ -2,58 +2,65 @@ vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO ggml-org/llama.cpp
REF b${VERSION}
SHA512 e093f4c7d4b2de425932bb4960683527a8a3bba242132c2f5e5bfed8480f0e336a06f97baf2d20ee591c6deee7535e159d40884a5e3f7caf0ae0967b8a046850
SHA512 39c9a5358d561a4c6675e24c67d810573d7589f9936d7a32e19ea99a7393fa435223c60824c6dad9ac3f1507d327fff704a6000988ddf60faeb219dace876a51
HEAD_REF master
PATCHES
0001-external-ggml.patch
cmake-config.diff
)
file(REMOVE_RECURSE "${SOURCE_PATH}/ggml/include" "${SOURCE_PATH}/ggml/src")
file(REMOVE_RECURSE "${SOURCE_PATH}/ggml")
vcpkg_check_features(OUT_FEATURE_OPTIONS options
FEATURES
download LLAMA_CURL
tools LLAMA_BUILD_TOOLS
)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DGGML_CCACHE=OFF
-DLLAMA_BUILD_TESTS=OFF
-DLLAMA_BUILD_EXAMPLES=OFF
-DLLAMA_ALL_WARNINGS=OFF
${FEATURE_OPTIONS}
${options}
-DGGML_CCACHE=OFF
-DLLAMA_ALL_WARNINGS=OFF
-DLLAMA_BUILD_TESTS=OFF
-DLLAMA_BUILD_EXAMPLES=OFF
-DLLAMA_BUILD_SERVER=OFF
-DLLAMA_USE_SYSTEM_GGML=ON
-DVCPKG_LOCK_FIND_PACKAGE_Git=OFF
)
vcpkg_cmake_install()
vcpkg_cmake_config_fixup(PACKAGE_NAME llama CONFIG_PATH "lib/cmake/llama")
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/llama")
vcpkg_copy_pdbs()
vcpkg_fixup_pkgconfig()
if (VCPKG_LIBRARY_LINKAGE MATCHES "static")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/llama/llama-config.cmake"
"set_and_check(LLAMA_BIN_DIR \"${PACKAGE_PREFIX_DIR}/bin\")"
""
IGNORE_UNCHANGED
)
endif()
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/llama/llama-config.cmake"
"add_library(llama UNKNOWN IMPORTED)"
"if (NOT TARGET llama)
add_library(llama UNKNOWN IMPORTED)
endif()
"
)
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
file(INSTALL "${SOURCE_PATH}/gguf-py/gguf" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/gguf-py")
file(RENAME "${CURRENT_PACKAGES_DIR}/bin/convert_hf_to_gguf.py" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/convert-hf-to-gguf.py")
file(INSTALL "${SOURCE_PATH}/gguf-py" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
if (NOT VCPKG_BUILD_TYPE)
file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/convert_hf_to_gguf.py")
file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/convert_hf_to_gguf.py")
if("tools" IN_LIST FEATURES)
vcpkg_copy_tools(
TOOL_NAMES
llama-batched-bench
llama-bench
llama-cli
llama-cvector-generator
llama-export-lora
llama-gguf-split
llama-imatrix
llama-mtmd-cli
llama-perplexity
llama-quantize
llama-run
llama-tokenize
llama-tts
AUTO_CLEAN
)
endif()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
vcpkg_clean_executables_in_bin(FILE_NAMES none)
if (VCPKG_LIBRARY_LINKAGE MATCHES "static")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin")
endif()
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
set(gguf-py-license "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gguf-py LICENSE")
file(COPY_FILE "${SOURCE_PATH}/gguf-py/LICENSE" "${gguf-py-license}")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${gguf-py-license}")

View File

@ -1,7 +1,6 @@
{
"name": "llama-cpp",
"version": "4743",
"port-version": 1,
"version": "5975",
"description": "LLM inference in C/C++",
"homepage": "https://github.com/ggml-org/llama.cpp",
"license": "MIT",
@ -15,5 +14,19 @@
"name": "vcpkg-cmake-config",
"host": true
}
]
],
"features": {
"download": {
"description": "Support downloading a model from an URL",
"dependencies": [
{
"name": "curl",
"default-features": false
}
]
},
"tools": {
"description": "Build tools"
}
}
}

View File

@ -0,0 +1,30 @@
diff --git a/cmake/whisper-config.cmake.in b/cmake/whisper-config.cmake.in
index 6a3fa227..f1e06f6c 100644
--- a/cmake/whisper-config.cmake.in
+++ b/cmake/whisper-config.cmake.in
@@ -12,8 +12,8 @@ set(GGML_ACCELERATE @GGML_ACCELERATE@)
@PACKAGE_INIT@
set_and_check(WHISPER_INCLUDE_DIR "@PACKAGE_WHISPER_INCLUDE_INSTALL_DIR@")
-set_and_check(WHISPER_LIB_DIR "@PACKAGE_WHISPER_LIB_INSTALL_DIR@")
-set_and_check(WHISPER_BIN_DIR "@PACKAGE_WHISPER_BIN_INSTALL_DIR@")
+#set_and_check(WHISPER_LIB_DIR "@PACKAGE_WHISPER_LIB_INSTALL_DIR@")
+#set_and_check(WHISPER_BIN_DIR "@PACKAGE_WHISPER_BIN_INSTALL_DIR@")
# Ensure transient dependencies satisfied
@@ -50,6 +50,7 @@ find_library(whisper_LIBRARY whisper
set(_whisper_link_deps "Threads::Threads" "@WHISPER_EXTRA_LIBS@")
set(_whisper_transient_defines "@WHISPER_TRANSIENT_DEFINES@")
+if(NOT TARGET whisper)
add_library(whisper UNKNOWN IMPORTED)
set_target_properties(whisper
@@ -61,5 +62,6 @@ set_target_properties(whisper
IMPORTED_LOCATION "${whisper_LIBRARY}"
INTERFACE_COMPILE_FEATURES cxx_std_11
POSITION_INDEPENDENT_CODE ON )
+endif()
check_required_components(whisper)

View File

@ -2,8 +2,10 @@ vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO ggml-org/whisper.cpp
REF v${VERSION}
SHA512 35efd976f60261e108972e3af7b322d723e36be30f5265db3be63752caaed0b52b9da3ece02975da2b83ff30f1eb32663e77fbaaf15f3037e35a525939071c0b
SHA512 7e0ec9d6afe234afaaa83d7d69051504252c27ecdacbedf3d70992429801bcd1078794a0bb76cf4dafb74131dd0f506bd24c3f3100815c35b8ac2b12336492ef
HEAD_REF master
PATCHES
cmake-config.diff
)
file(REMOVE_RECURSE "${SOURCE_PATH}/ggml")
@ -11,44 +13,22 @@ vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
DISABLE_PARALLEL_CONFIGURE # updating bindings/javascript/package.json
OPTIONS
-DWHISPER_USE_SYSTEM_GGML=ON
-DWHISPER_CCACHE=OFF
-DWHISPER_BUILD_TESTS=OFF
-DWHISPER_BUILD_EXAMPLES=OFF
-DWHISPER_ALL_WARNINGS=OFF
${FEATURE_OPTIONS}
-DWHISPER_CCACHE=OFF
-DWHISPER_ALL_WARNINGS=OFF
-DWHISPER_BUILD_EXAMPLES=OFF
-DWHISPER_BUILD_TESTS=OFF
-DWHISPER_USE_SYSTEM_GGML=ON
)
vcpkg_cmake_install()
vcpkg_cmake_config_fixup(PACKAGE_NAME whisper CONFIG_PATH "lib/cmake/whisper")
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/whisper")
vcpkg_copy_pdbs()
vcpkg_fixup_pkgconfig()
if (VCPKG_LIBRARY_LINKAGE MATCHES "static")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/whisper/whisper-config.cmake"
"set_and_check(WHISPER_BIN_DIR \"\${PACKAGE_PREFIX_DIR}/bin\")"
""
IGNORE_UNCHANGED
)
endif()
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/whisper/whisper-config.cmake"
"add_library(whisper UNKNOWN IMPORTED)"
"if (NOT TARGET whisper)
add_library(whisper UNKNOWN IMPORTED)
endif()
"
)
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
file(INSTALL "${SOURCE_PATH}/models/convert-pt-to-ggml.py" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
if (VCPKG_LIBRARY_LINKAGE MATCHES "static")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin")
endif()
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")

View File

@ -1,7 +1,6 @@
{
"name": "whisper-cpp",
"version": "1.7.5",
"port-version": 1,
"version": "1.7.6",
"description": "Port of OpenAI's Whisper model in C/C++",
"homepage": "https://github.com/ggml-org/whisper.cpp",
"license": "MIT",

View File

@ -2119,7 +2119,7 @@ gapp(android) = fail # requires c++20
gapp(osx) = fail # requires c++20
gegl(osx) = fail # meson bug on osx. See https://github.com/microsoft/vcpkg/issues/44411
geogram[graphics] = feature-fails # imgui not found. See https://github.com/microsoft/vcpkg/issues/32421
ggml[blas](windows & static) = feature-fails
ggml[blas](x64 & windows & static) = feature-fails # 'cblas.h': No such file or directory
ginkgo[openmp](osx) = feature-fails # No openmp on osx
ginkgo[openmp](windows) = feature-fails # needs openmp 3.0 support but msvc only supports openmp 2.0
glib-networking[openssl, gnutls] = options # You have to select exactly one ssl backend
@ -2164,6 +2164,9 @@ libsbml[expat, libxml2] = options # have to select excatly one xml lib(they are
libssh[core,openssl,mbedtls] = options # we have to select feature openssl or mbedtls
libwebp[anim,cwebp,dwebp,extras,gif2webp,img2webp,info,mux,libwebpmux,nearlossless,swap16bitcsp,unicode,vwebp]:x64-android = no-separate-feature-test # Compiler crash without simd
libwebp[anim,cwebp,dwebp,extras,img2webp](uwp) = feature-fails # linker error. See https://github.com/microsoft/vcpkg/issues/33603
llama-cpp[tools]:arm-neon-android = feature-fails # int64_t vs. size_t
llama-cpp[tools](arm & windows & !uwp) = feature-fails # unresolved symbols
llama-cpp(uwp) = cascade
llvm[core,flang] = options # exclude flang from all since it is not compatible with enable enable-eh
llvm[enable-mlir-python-bindings](osx) = feature-fails # Could NOT find Python3 (missing: Development Development.Module Development.Embed) (found version "3.12"). Same as https://github.com/microsoft/vcpkg/issues/34779
llvm[libcxxabi](windows) = feature-fails # see https://github.com/microsoft/vcpkg/issues/31038

View File

@ -0,0 +1,30 @@
diff --git a/examples/test-cmake/CMakeLists.txt b/examples/test-cmake/CMakeLists.txt
index d6bc0cc4..395a63c7 100644
--- a/examples/test-cmake/CMakeLists.txt
+++ b/examples/test-cmake/CMakeLists.txt
@@ -8,3 +8,9 @@ find_package(ggml CONFIG REQUIRED)
set(TEST_TARGET test-cmake)
add_executable(test-cmake test-cmake.cpp)
target_link_libraries(test-cmake PRIVATE ggml::ggml)
+
+if(ANDROID AND TARGET ggml::ggml-vulkan)
+ # Instantiates VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE
+ find_package(Vulkan REQUIRED)
+ target_link_libraries(test-cmake PRIVATE Vulkan::Vulkan)
+endif()
diff --git a/examples/test-cmake/test-cmake.cpp b/examples/test-cmake/test-cmake.cpp
index 029c8898..9d4bbe19 100644
--- a/examples/test-cmake/test-cmake.cpp
+++ b/examples/test-cmake/test-cmake.cpp
@@ -1,5 +1,11 @@
#include "ggml-backend.h"
+#if defined(ANDROID)
+#define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
+#include <vulkan/vulkan.hpp>
+VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE
+#endif
+
int main(void) {
ggml_backend_load_all();
return 0;

View File

@ -3,14 +3,14 @@ set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO ggml-org/ggml
REF 9a4acb374565f4146b8d6eb1cffdcd7d437d1ba2
SHA512 091a794baf669616ee20dc19d0232e64456c07cd50cbe6d81aa68b98f178801be1b62da9eea417e7a563a6b73bb3136777f860c756270569676fb760f2e751ed
REF 44ea6eda2ad8a94663597cbe85e37de98bd99269
SHA512 be93d44f87ef25f7c0bb37ca8020de7714ec89b4f92677d7b631a2dcad9db38789e59adb7a6af0d1f5f550c570d875ea9ed69833f7d7af76ef8cb9159f0a7c23
HEAD_REF master
PATCHES
ggml-test.diff
android-vulkan.diff
)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}/examples/simple"
SOURCE_PATH "${SOURCE_PATH}/examples/test-cmake"
)
vcpkg_cmake_build()

View File

@ -6,8 +6,15 @@
"license": "MIT",
"dependencies": [
{
"$comment": "Lacks default (CPU) backend on arm64 windows",
"name": "ggml",
"default-features": false
"default-features": false,
"features": [
{
"name": "vulkan",
"platform": "windows & arm64"
}
]
},
{
"name": "vcpkg-cmake",
@ -27,7 +34,10 @@
"name": "metal",
"platform": "osx"
},
"opencl",
{
"name": "opencl",
"platform": "!arm32"
},
{
"name": "openmp",
"platform": "!osx"

View File

@ -3237,7 +3237,7 @@
"port-version": 9
},
"ggml": {
"baseline": "2025-05-13",
"baseline": "2025-07-23",
"port-version": 0
},
"ghc-filesystem": {
@ -5821,8 +5821,8 @@
"port-version": 0
},
"llama-cpp": {
"baseline": "4743",
"port-version": 1
"baseline": "5975",
"port-version": 0
},
"llfio": {
"baseline": "2025-01-13",
@ -10225,8 +10225,8 @@
"port-version": 2
},
"whisper-cpp": {
"baseline": "1.7.5",
"port-version": 1
"baseline": "1.7.6",
"port-version": 0
},
"wiiuse": {
"baseline": "0.15.6",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "1dab58e6f2563f417018d3ed7f2093cb1a1d3b04",
"version-date": "2025-07-23",
"port-version": 0
},
{
"git-tree": "23d4e4ba6cacc185e6fae3238a1ce5d653c25c41",
"version-date": "2025-05-13",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "a7fcf971485effd5de30746520b36009b9428bf4",
"version": "5975",
"port-version": 0
},
{
"git-tree": "fd2140391f703fc6ec9aba9f7c2d597b90ea5160",
"version": "4743",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "7920ab0d11ea7a4b094363f03229fd4a49e89c16",
"version": "1.7.6",
"port-version": 0
},
{
"git-tree": "e77b5abf50bb38089afe8dd5b02bd7ae9634c2a4",
"version": "1.7.5",