mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2026-06-27 23:50:20 -05:00
cmake : add install() for impl libraries + fix apple builds (#23511)
* pi : update * ci : fix ios build * ci : fix andoroid * ci : fix apple builds * cmake : add install() for impl libraries Add install(TARGETS <target> LIBRARY) for all -impl libraries that were changed from STATIC to shared (controlled by BUILD_SHARED_LIBS) in commit bb28c1fe2. Without this, cmake --install fails to copy the shared libraries, causing runtime errors like: llama-server: error while loading shared libraries: libllama-server-impl.so Ref: https://github.com/ggml-org/llama.cpp/issues/23494#issuecomment-4512912515 Assisted-by: llama.cpp:local pi * ci : fix xcframework build
This commit is contained in:
parent
4f0e43da6f
commit
bbce619adb
5
.github/workflows/build-apple.yml
vendored
5
.github/workflows/build-apple.yml
vendored
@ -59,6 +59,7 @@ jobs:
|
|||||||
cmake -B build -G Xcode \
|
cmake -B build -G Xcode \
|
||||||
-DGGML_METAL_USE_BF16=ON \
|
-DGGML_METAL_USE_BF16=ON \
|
||||||
-DGGML_METAL_EMBED_LIBRARY=ON \
|
-DGGML_METAL_EMBED_LIBRARY=ON \
|
||||||
|
-DLLAMA_BUILD_APP=OFF \
|
||||||
-DLLAMA_BUILD_COMMON=OFF \
|
-DLLAMA_BUILD_COMMON=OFF \
|
||||||
-DLLAMA_BUILD_EXAMPLES=OFF \
|
-DLLAMA_BUILD_EXAMPLES=OFF \
|
||||||
-DLLAMA_BUILD_TOOLS=OFF \
|
-DLLAMA_BUILD_TOOLS=OFF \
|
||||||
@ -89,6 +90,7 @@ jobs:
|
|||||||
-DGGML_METAL_USE_BF16=ON \
|
-DGGML_METAL_USE_BF16=ON \
|
||||||
-DGGML_METAL_EMBED_LIBRARY=ON \
|
-DGGML_METAL_EMBED_LIBRARY=ON \
|
||||||
-DLLAMA_OPENSSL=OFF \
|
-DLLAMA_OPENSSL=OFF \
|
||||||
|
-DLLAMA_BUILD_APP=OFF \
|
||||||
-DLLAMA_BUILD_EXAMPLES=OFF \
|
-DLLAMA_BUILD_EXAMPLES=OFF \
|
||||||
-DLLAMA_BUILD_TOOLS=OFF \
|
-DLLAMA_BUILD_TOOLS=OFF \
|
||||||
-DLLAMA_BUILD_TESTS=OFF \
|
-DLLAMA_BUILD_TESTS=OFF \
|
||||||
@ -138,6 +140,7 @@ jobs:
|
|||||||
-DGGML_METAL_USE_BF16=ON \
|
-DGGML_METAL_USE_BF16=ON \
|
||||||
-DGGML_METAL_EMBED_LIBRARY=ON \
|
-DGGML_METAL_EMBED_LIBRARY=ON \
|
||||||
-DLLAMA_BUILD_COMMON=OFF \
|
-DLLAMA_BUILD_COMMON=OFF \
|
||||||
|
-DLLAMA_BUILD_APP=OFF \
|
||||||
-DLLAMA_BUILD_EXAMPLES=OFF \
|
-DLLAMA_BUILD_EXAMPLES=OFF \
|
||||||
-DLLAMA_BUILD_TOOLS=OFF \
|
-DLLAMA_BUILD_TOOLS=OFF \
|
||||||
-DLLAMA_BUILD_TESTS=OFF \
|
-DLLAMA_BUILD_TESTS=OFF \
|
||||||
@ -163,6 +166,7 @@ jobs:
|
|||||||
-DGGML_METAL_USE_BF16=ON \
|
-DGGML_METAL_USE_BF16=ON \
|
||||||
-DGGML_METAL_EMBED_LIBRARY=ON \
|
-DGGML_METAL_EMBED_LIBRARY=ON \
|
||||||
-DLLAMA_BUILD_COMMON=OFF \
|
-DLLAMA_BUILD_COMMON=OFF \
|
||||||
|
-DLLAMA_BUILD_APP=OFF \
|
||||||
-DLLAMA_BUILD_EXAMPLES=OFF \
|
-DLLAMA_BUILD_EXAMPLES=OFF \
|
||||||
-DLLAMA_BUILD_TOOLS=OFF \
|
-DLLAMA_BUILD_TOOLS=OFF \
|
||||||
-DLLAMA_BUILD_TESTS=OFF \
|
-DLLAMA_BUILD_TESTS=OFF \
|
||||||
@ -206,6 +210,7 @@ jobs:
|
|||||||
-DGGML_METAL_USE_BF16=ON \
|
-DGGML_METAL_USE_BF16=ON \
|
||||||
-DGGML_METAL_EMBED_LIBRARY=ON \
|
-DGGML_METAL_EMBED_LIBRARY=ON \
|
||||||
-DLLAMA_OPENSSL=OFF \
|
-DLLAMA_OPENSSL=OFF \
|
||||||
|
-DLLAMA_BUILD_APP=OFF \
|
||||||
-DLLAMA_BUILD_EXAMPLES=OFF \
|
-DLLAMA_BUILD_EXAMPLES=OFF \
|
||||||
-DLLAMA_BUILD_TOOLS=OFF \
|
-DLLAMA_BUILD_TOOLS=OFF \
|
||||||
-DLLAMA_BUILD_TESTS=OFF \
|
-DLLAMA_BUILD_TESTS=OFF \
|
||||||
|
|||||||
11
.github/workflows/build-cmake-pkg.yml
vendored
11
.github/workflows/build-cmake-pkg.yml
vendored
@ -19,9 +19,14 @@ jobs:
|
|||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
PREFIX="$(pwd)"/inst
|
PREFIX="$(pwd)"/inst
|
||||||
cmake -S . -B build -DCMAKE_PREFIX_PATH="$PREFIX" \
|
cmake -S . -B build \
|
||||||
-DLLAMA_OPENSSL=OFF -DLLAMA_BUILD_TESTS=OFF -DLLAMA_BUILD_TOOLS=OFF \
|
-DCMAKE_PREFIX_PATH="$PREFIX" \
|
||||||
-DLLAMA_BUILD_EXAMPLES=OFF -DLLAMA_BUILD_APP=OFF -DCMAKE_BUILD_TYPE=Release
|
-DLLAMA_OPENSSL=OFF \
|
||||||
|
-DLLAMA_BUILD_TESTS=OFF \
|
||||||
|
-DLLAMA_BUILD_TOOLS=OFF \
|
||||||
|
-DLLAMA_BUILD_EXAMPLES=OFF \
|
||||||
|
-DLLAMA_BUILD_APP=OFF \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release
|
||||||
cmake --build build --config Release
|
cmake --build build --config Release
|
||||||
cmake --install build --prefix "$PREFIX" --config Release
|
cmake --install build --prefix "$PREFIX" --config Release
|
||||||
|
|
||||||
|
|||||||
1
.github/workflows/release.yml
vendored
1
.github/workflows/release.yml
vendored
@ -1108,6 +1108,7 @@ jobs:
|
|||||||
-DGGML_METAL_USE_BF16=ON \
|
-DGGML_METAL_USE_BF16=ON \
|
||||||
-DGGML_METAL_EMBED_LIBRARY=ON \
|
-DGGML_METAL_EMBED_LIBRARY=ON \
|
||||||
-DLLAMA_OPENSSL=OFF \
|
-DLLAMA_OPENSSL=OFF \
|
||||||
|
-DLLAMA_BUILD_APP=OFF \
|
||||||
-DLLAMA_BUILD_EXAMPLES=OFF \
|
-DLLAMA_BUILD_EXAMPLES=OFF \
|
||||||
-DLLAMA_BUILD_TOOLS=OFF \
|
-DLLAMA_BUILD_TOOLS=OFF \
|
||||||
-DLLAMA_BUILD_TESTS=OFF \
|
-DLLAMA_BUILD_TESTS=OFF \
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
You are a coding agent. Here are some very important rules that you must follow:
|
You are a coding agent. Here are some very important rules that you must follow:
|
||||||
|
|
||||||
General:
|
General:
|
||||||
- By very precise and concise when writing code, comments, explanations, etc.
|
- Be very precise and concise when writing code, comments, explanations, etc.
|
||||||
- PR and commit titles format: `<module> : <title>`. Lookup recents for examples
|
- PR and commit titles format: `<module> : <title>`. Lookup recents for examples
|
||||||
- Don't try to build or run the code unless you are explicitly asked to do so
|
- Don't try to build or run the code unless you are explicitly asked to do so
|
||||||
- Use the `gh` CLI tool when querying PRs, issues, or other GitHub resources
|
- Use the `gh` CLI tool when querying PRs, issues, or other GitHub resources
|
||||||
@ -16,7 +16,8 @@ Pull requests (PRs):
|
|||||||
- New branch names are prefixed with "gg/"
|
- New branch names are prefixed with "gg/"
|
||||||
- Before opening a pull request, ask the user to confirm the description
|
- Before opening a pull request, ask the user to confirm the description
|
||||||
- When creating a pull request, look for the repository's PR template and follow it
|
- When creating a pull request, look for the repository's PR template and follow it
|
||||||
- For the AI usage disclosure section, write "YES. llama.cpp + pi"
|
- For the AI usage disclosure section, write "YES. llama.cpp + pi + [MODEL]"
|
||||||
|
- Ask the user to tell you what model was used and write it in place of [MODEL]
|
||||||
- Always create the pull requests in draft mode
|
- Always create the pull requests in draft mode
|
||||||
|
|
||||||
Commits:
|
Commits:
|
||||||
|
|||||||
@ -7,6 +7,7 @@ VISIONOS_MIN_OS_VERSION=1.0
|
|||||||
TVOS_MIN_OS_VERSION=16.4
|
TVOS_MIN_OS_VERSION=16.4
|
||||||
|
|
||||||
BUILD_SHARED_LIBS=OFF
|
BUILD_SHARED_LIBS=OFF
|
||||||
|
LLAMA_BUILD_APP=OFF
|
||||||
LLAMA_BUILD_EXAMPLES=OFF
|
LLAMA_BUILD_EXAMPLES=OFF
|
||||||
LLAMA_BUILD_TOOLS=OFF
|
LLAMA_BUILD_TOOLS=OFF
|
||||||
LLAMA_BUILD_TESTS=OFF
|
LLAMA_BUILD_TESTS=OFF
|
||||||
@ -31,6 +32,7 @@ COMMON_CMAKE_ARGS=(
|
|||||||
-DCMAKE_XCODE_ATTRIBUTE_STRIP_INSTALLED_PRODUCT=NO
|
-DCMAKE_XCODE_ATTRIBUTE_STRIP_INSTALLED_PRODUCT=NO
|
||||||
-DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=ggml
|
-DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=ggml
|
||||||
-DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
|
-DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
|
||||||
|
-DLLAMA_BUILD_APP=${LLAMA_BUILD_APP}
|
||||||
-DLLAMA_BUILD_EXAMPLES=${LLAMA_BUILD_EXAMPLES}
|
-DLLAMA_BUILD_EXAMPLES=${LLAMA_BUILD_EXAMPLES}
|
||||||
-DLLAMA_BUILD_TOOLS=${LLAMA_BUILD_TOOLS}
|
-DLLAMA_BUILD_TOOLS=${LLAMA_BUILD_TOOLS}
|
||||||
-DLLAMA_BUILD_TESTS=${LLAMA_BUILD_TESTS}
|
-DLLAMA_BUILD_TESTS=${LLAMA_BUILD_TESTS}
|
||||||
|
|||||||
@ -25,6 +25,7 @@ android {
|
|||||||
arguments += "-DCMAKE_VERBOSE_MAKEFILE=ON"
|
arguments += "-DCMAKE_VERBOSE_MAKEFILE=ON"
|
||||||
|
|
||||||
arguments += "-DBUILD_SHARED_LIBS=ON"
|
arguments += "-DBUILD_SHARED_LIBS=ON"
|
||||||
|
arguments += "-DLLAMA_BUILD_APP=OFF"
|
||||||
arguments += "-DLLAMA_BUILD_COMMON=ON"
|
arguments += "-DLLAMA_BUILD_COMMON=ON"
|
||||||
arguments += "-DLLAMA_OPENSSL=OFF"
|
arguments += "-DLLAMA_OPENSSL=OFF"
|
||||||
|
|
||||||
|
|||||||
@ -8,6 +8,10 @@ set_target_properties(${TARGET} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
|||||||
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
target_link_libraries(${TARGET} PUBLIC llama-common llama ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${TARGET} PUBLIC llama-common llama ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
|
||||||
|
if(LLAMA_TOOLS_INSTALL)
|
||||||
|
install(TARGETS ${TARGET} LIBRARY)
|
||||||
|
endif()
|
||||||
|
|
||||||
# llama-batched-bench executable
|
# llama-batched-bench executable
|
||||||
|
|
||||||
set(TARGET llama-batched-bench)
|
set(TARGET llama-batched-bench)
|
||||||
|
|||||||
@ -8,6 +8,10 @@ set_target_properties(${TARGET} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
|||||||
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ../server)
|
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ../server)
|
||||||
target_link_libraries(${TARGET} PUBLIC server-context llama-common ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${TARGET} PUBLIC server-context llama-common ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
|
||||||
|
if(LLAMA_TOOLS_INSTALL)
|
||||||
|
install(TARGETS ${TARGET} LIBRARY)
|
||||||
|
endif()
|
||||||
|
|
||||||
# llama-cli executable
|
# llama-cli executable
|
||||||
|
|
||||||
set(TARGET llama-cli)
|
set(TARGET llama-cli)
|
||||||
|
|||||||
@ -8,6 +8,10 @@ set_target_properties(${TARGET} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
|||||||
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
target_link_libraries(${TARGET} PUBLIC llama-common llama ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${TARGET} PUBLIC llama-common llama ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
|
||||||
|
if(LLAMA_TOOLS_INSTALL)
|
||||||
|
install(TARGETS ${TARGET} LIBRARY)
|
||||||
|
endif()
|
||||||
|
|
||||||
# llama-completion executable
|
# llama-completion executable
|
||||||
|
|
||||||
set(TARGET llama-completion)
|
set(TARGET llama-completion)
|
||||||
|
|||||||
@ -8,6 +8,10 @@ set_target_properties(${TARGET} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
|||||||
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
target_link_libraries(${TARGET} PUBLIC llama-common llama ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${TARGET} PUBLIC llama-common llama ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
|
||||||
|
if(LLAMA_TOOLS_INSTALL)
|
||||||
|
install(TARGETS ${TARGET} LIBRARY)
|
||||||
|
endif()
|
||||||
|
|
||||||
# llama-fit-params executable
|
# llama-fit-params executable
|
||||||
|
|
||||||
set(TARGET llama-fit-params)
|
set(TARGET llama-fit-params)
|
||||||
|
|||||||
@ -8,6 +8,10 @@ set_target_properties(${TARGET} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
|||||||
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
target_link_libraries(${TARGET} PUBLIC llama-common llama ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${TARGET} PUBLIC llama-common llama ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
|
||||||
|
if(LLAMA_TOOLS_INSTALL)
|
||||||
|
install(TARGETS ${TARGET} LIBRARY)
|
||||||
|
endif()
|
||||||
|
|
||||||
# llama-bench executable
|
# llama-bench executable
|
||||||
|
|
||||||
set(TARGET llama-bench)
|
set(TARGET llama-bench)
|
||||||
|
|||||||
@ -8,6 +8,10 @@ set_target_properties(${TARGET} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
|||||||
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
target_link_libraries(${TARGET} PUBLIC llama-common llama ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${TARGET} PUBLIC llama-common llama ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
|
||||||
|
if(LLAMA_TOOLS_INSTALL)
|
||||||
|
install(TARGETS ${TARGET} LIBRARY)
|
||||||
|
endif()
|
||||||
|
|
||||||
# llama-perplexity executable
|
# llama-perplexity executable
|
||||||
|
|
||||||
set(TARGET llama-perplexity)
|
set(TARGET llama-perplexity)
|
||||||
|
|||||||
@ -8,6 +8,10 @@ set_target_properties(${TARGET} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
|||||||
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
target_link_libraries(${TARGET} PUBLIC llama-common llama ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${TARGET} PUBLIC llama-common llama ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
|
||||||
|
if(LLAMA_TOOLS_INSTALL)
|
||||||
|
install(TARGETS ${TARGET} LIBRARY)
|
||||||
|
endif()
|
||||||
|
|
||||||
# llama-quantize executable
|
# llama-quantize executable
|
||||||
|
|
||||||
set(TARGET llama-quantize)
|
set(TARGET llama-quantize)
|
||||||
|
|||||||
@ -44,6 +44,10 @@ target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
|||||||
target_include_directories(${TARGET} PRIVATE ../mtmd ${CMAKE_SOURCE_DIR})
|
target_include_directories(${TARGET} PRIVATE ../mtmd ${CMAKE_SOURCE_DIR})
|
||||||
target_link_libraries(${TARGET} PUBLIC server-context llama-ui cpp-httplib ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${TARGET} PUBLIC server-context llama-ui cpp-httplib ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
|
||||||
|
if(LLAMA_TOOLS_INSTALL)
|
||||||
|
install(TARGETS ${TARGET} LIBRARY)
|
||||||
|
endif()
|
||||||
|
|
||||||
# llama-server executable
|
# llama-server executable
|
||||||
|
|
||||||
set(TARGET llama-server)
|
set(TARGET llama-server)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user