mirror of https://github.com/microsoft/vcpkg.git
[ggml,llama-cpp,whisper-cpp] Update, features, cleanup (#46569)
This commit is contained in:
parent
dc1ace36b8
commit
507dfce6a1
|
|
@ -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 "")
|
||||
|
||||
|
|
@ -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)
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
@ -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}"
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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)
|
||||
|
|
@ -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}")
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "1dab58e6f2563f417018d3ed7f2093cb1a1d3b04",
|
||||
"version-date": "2025-07-23",
|
||||
"port-version": 0
|
||||
},
|
||||
{
|
||||
"git-tree": "23d4e4ba6cacc185e6fae3238a1ce5d653c25c41",
|
||||
"version-date": "2025-05-13",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "a7fcf971485effd5de30746520b36009b9428bf4",
|
||||
"version": "5975",
|
||||
"port-version": 0
|
||||
},
|
||||
{
|
||||
"git-tree": "fd2140391f703fc6ec9aba9f7c2d597b90ea5160",
|
||||
"version": "4743",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "7920ab0d11ea7a4b094363f03229fd4a49e89c16",
|
||||
"version": "1.7.6",
|
||||
"port-version": 0
|
||||
},
|
||||
{
|
||||
"git-tree": "e77b5abf50bb38089afe8dd5b02bd7ae9634c2a4",
|
||||
"version": "1.7.5",
|
||||
|
|
|
|||
Loading…
Reference in New Issue