Skip to content

Commit 7ebe28e

Browse files
committed
add android support
1 parent 22342c6 commit 7ebe28e

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

.github/workflows/compile.yml

+39-1
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,41 @@ jobs:
312312
with:
313313
path: ./build/bin/ggml-metal.metal
314314
name: ggml-metal.metal
315+
316+
compile-android:
317+
name: Compile (Android)
318+
runs-on: ubuntu-20.04
319+
steps:
320+
- uses: actions/checkout@v4
321+
with:
322+
repository: ggerganov/llama.cpp
323+
fetch-depth: 0
324+
ref: '${{ github.event.inputs.llama_cpp_commit }}'
325+
- uses: nttld/setup-ndk@v1
326+
id: setup-ndk
327+
with:
328+
ndk-version: r26d
329+
add-to-path: false
330+
- name: Build
331+
id: cmake_build
332+
env:
333+
CMAKE_FLAGS: '-DCMAKE_TOOLCHAIN_FILE=${{ steps.setup-ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-23'
334+
run: |
335+
mkdir build
336+
cd build
337+
cmake .. ${{ env.COMMON_DEFINE }} ${{ env.CMAKE_FLAGS }}
338+
cmake --build . --config Release -j ${env:NUMBER_OF_PROCESSORS}
339+
- name: Upload Llama
340+
uses: actions/upload-artifact@v4
341+
with:
342+
path: ./build/libllama.so
343+
name: llama-bin-android-arm64.so
344+
- name: Upload Llava
345+
uses: actions/upload-artifact@v4
346+
with:
347+
path: ./build/examples/llava/libllava_shared.so
348+
name: llava-bin-android-arm64.so
349+
315350

316351
build-deps:
317352
runs-on: ubuntu-latest
@@ -321,6 +356,7 @@ jobs:
321356
"compile-linux",
322357
"compile-macos",
323358
"compile-windows",
359+
"compile-android",
324360
"compile-cublas",
325361
"compile-clblast"
326362
]
@@ -333,7 +369,7 @@ jobs:
333369
- name: Rearrange Files
334370
run: |
335371
# Make all directories at once
336-
mkdir --parents deps/{avx,avx2,avx512,osx-arm64,osx-x64,cu11.7.1,cu12.1.0,clblast}
372+
mkdir --parents deps/{avx,avx2,avx512,osx-arm64,osx-x64,android-arm64,cu11.7.1,cu12.1.0,clblast}
337373
338374
cp artifacts/llama-bin-linux-noavx-x64.so/libllama.so deps/libllama.so
339375
cp artifacts/llama-bin-linux-avx-x64.so/libllama.so deps/avx/libllama.so
@@ -384,6 +420,8 @@ jobs:
384420
cp artifacts/llama-bin-linux-clblast-x64.so/libllama.so deps/clblast/
385421
cp artifacts/llava-bin-linux-clblast-x64.so/libllava_shared.so deps/clblast/libllava_shared.so
386422
423+
cp artifacts/llama-bin-android-arm64.so/libllama.so deps/android-arm64/libllama.so
424+
cp artifacts/llava-bin-android-arm64.so/libllava_shared.so deps/android-arm64/libllava_shared.so
387425
388426
- name: Upload artifacts
389427
uses: actions/upload-artifact@v4

LLama/runtimes/build/LLamaSharp.Backend.Cpu.nuspec

+3
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@
4444

4545
<file src="runtimes/deps/osx-x64/libllava_shared.dylib" target="runtimes\osx-x64\native\libllava_shared.dylib" />
4646
<file src="runtimes/deps/osx-arm64/libllava_shared.dylib" target="runtimes\osx-arm64\native\libllava_shared.dylib" />
47+
48+
<file src="runtimes/deps/android-arm64/libllama.so" target="runtimes\android-arm64\native\libllama.so" />
49+
<file src="runtimes/deps/android-arm64/libllava_shared.so" target="runtimes\android-arm64\native\libllava_shared.so" />
4750

4851
<file src="icon512.png" target="icon512.png" />
4952
</files>

0 commit comments

Comments
 (0)