mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2026-09-03 19:42:05 +02:00
27e345b574
* xcframework : fix build * mtmd : remove unused include path * vendor : use vendor::hash alias target in cmake CMake reserves "::" in target names for imported/alias targets, so the real target keeps the name vendor-hash and a vendor::hash ALIAS target is added. Consumers (mtmd, llama-gguf-hash) now link against the namespaced alias. Assisted-by: pi:llama.cpp/Qwen3.8-27B * vendor : add cmake targets for all vendored libs with vendor:: aliases Add INTERFACE targets for the header-only vendor libs (miniaudio, nlohmann, sheredom, stb) and ALIAS targets named vendor::<lib> for all of them, including cpp-httplib and hash. Each exposes the vendor/ root so includes are namespaced, e.g. <nlohmann/json.hpp>. Consolidate the per-lib add_subdirectory calls into a single add_subdirectory(vendor), keeping the cpp-httplib gate on LLAMA_BUILD_COMMON. Consumers (llama-common, mtmd) now link the aliases instead of relying on raw vendor/ include paths. hash: consumers now include via "hash/hash.h"; the vendor/hash dir is kept as a PRIVATE include so the synced upstream sources compile unmodified. Assisted-by: pi:llama.cpp/Qwen3.8-27B * readme : use foo/bar names in acknowledgements Assisted-by: pi:llama.cpp/Qwen3.8-27B * ocd : fix valign
39 lines
1010 B
CMake
39 lines
1010 B
CMake
set(TARGET vendor-hash)
|
|
|
|
llama_add_compile_flags()
|
|
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
|
|
set(VENDOR_SRCS
|
|
xxhash/xxhash.c
|
|
sha1/sha1.c
|
|
sha256/sha256.c
|
|
)
|
|
|
|
add_library(${TARGET} STATIC
|
|
hash.cpp
|
|
hash.h
|
|
${VENDOR_SRCS}
|
|
)
|
|
|
|
add_library(vendor::hash ALIAS ${TARGET})
|
|
|
|
target_compile_features(${TARGET} PRIVATE cxx_std_17)
|
|
|
|
# disable warnings in 3rd party code, but keep them for hash.cpp
|
|
if (CMAKE_C_COMPILER_ID STREQUAL "MSVC")
|
|
set(NO_WARN_FLAG /w)
|
|
else()
|
|
set(NO_WARN_FLAG -w)
|
|
endif()
|
|
set_source_files_properties(${VENDOR_SRCS} PROPERTIES COMPILE_OPTIONS ${NO_WARN_FLAG})
|
|
|
|
# sha1 lives in a namespace to avoid a clash with boringssl, see scripts/sync_vendor.py
|
|
set_source_files_properties(sha1/sha1.c PROPERTIES LANGUAGE CXX)
|
|
|
|
# expose the vendor/ root so consumers can include via "hash/hash.h"
|
|
target_include_directories(${TARGET} PUBLIC ..)
|
|
|
|
# internal includes of the vendored sources, e.g. sha256.c -> "rotate-bits/rotate-bits.h"
|
|
target_include_directories(${TARGET} PRIVATE .)
|