@@ -539,19 +539,17 @@ jobs:
539539 if-no-files-found : error
540540
541541 compile-android :
542- # Disable android build
543- if : false
544-
542+ name : Compile (Android)
545543 strategy :
546544 fail-fast : true
547545 matrix :
548546 include :
549547 - build : ' x86'
550- defines : ' -DANDROID_ABI=x86'
548+ defines : ' -DANDROID_ABI=x86 -DCMAKE_C_FLAGS=-march=i686 -DCMAKE_CXX_FLAGS=-march=i686 '
551549 - build : ' x86_64'
552- defines : ' -DANDROID_ABI=x86_64'
550+ defines : ' -DANDROID_ABI=x86_64 -DCMAKE_C_FLAGS=-march=x86-64 -DCMAKE_CXX_FLAGS=-march=x86-64 '
553551 - build : ' arm64-v8a'
554- defines : ' -DANDROID_ABI=arm64-v8a'
552+ defines : ' -DANDROID_ABI=arm64-v8a -DCMAKE_C_FLAGS=-march=armv8.7a -DCMAKE_C_FLAGS=-march=armv8.7a '
555553 runs-on : ubuntu-24.04
556554 steps :
557555 - uses : actions/checkout@v4
@@ -567,28 +565,39 @@ jobs:
567565 - name : Build
568566 id : cmake_build
569567 env :
570- CMAKE_FLAGS : ' -DCMAKE_TOOLCHAIN_FILE=${{ steps.setup-ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-23'
568+ CMAKE_FLAGS : ' -DCMAKE_TOOLCHAIN_FILE=${{ steps.setup-ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-23 -DGGML_OPENMP=OFF -DGGML_LLAMAFILE=OFF '
571569 run : |
572- mkdir build
573- cd build
574- cmake .. ${{ env.COMMON_DEFINE }} ${{ env.CMAKE_FLAGS }} ${{ matrix.defines }}
575- cmake --build . --config Release -j ${env:NUMBER_OF_PROCESSORS}
576- cd ..
577- ls -R
570+ # export-lora not supported on 32 bit machines hence breaks x86 build
571+ sed -i '/add_subdirectory(export-lora)/d' examples/CMakeLists.txt # remove export-lora from examples
572+ cmake ${{ env.COMMON_DEFINE }} ${{ env.CMAKE_FLAGS }} ${{ matrix.defines }} -B build
573+ cmake --build build --config Release -j ${env:NUMBER_OF_PROCESSORS}
578574 - name : Upload Llama
579575 uses : actions/upload-artifact@v4
580576 with :
581- path : ./build/src /libllama.so
577+ path : ./build/bin /libllama.so
582578 name : llama-bin-android-${{ matrix.build }}.so
583- - uses : actions/upload-artifact@v4
579+ - name : Upload GGML
580+ uses : actions/upload-artifact@v4
584581 with :
585- path : ./build/ggml/src /libggml.so
582+ path : ./build/bin /libggml.so
586583 name : ggml-bin-android-${{ matrix.build }}.so
587584 if-no-files-found : error
585+ - name : Upload GGML Base
586+ uses : actions/upload-artifact@v4
587+ with :
588+ path : ./build/bin/libggml-base.so
589+ name : ggml-base-bin-android-${{ matrix.build }}.so
590+ if-no-files-found : error
591+ - name : Upload GGML CPU
592+ uses : actions/upload-artifact@v4
593+ with :
594+ path : ./build/bin/libggml-cpu.so
595+ name : ggml-cpu-bin-android-${{ matrix.build }}.so
596+ if-no-files-found : error
588597 - name : Upload Llava
589598 uses : actions/upload-artifact@v4
590599 with :
591- path : ./build/examples/llava /libllava_shared.so
600+ path : ./build/bin /libllava_shared.so
592601 name : llava-bin-android-${{ matrix.build }}.so
593602
594603 build-deps :
@@ -722,17 +731,23 @@ jobs:
722731 cp artifacts/llava-bin-osx-x64-rosetta2.dylib/libllava_shared.dylib deps/osx-x64-rosetta2/libllava_shared.dylib
723732
724733 # Android
725- #cp artifacts/ggml-bin-android-arm64-v8a.so/libggml.so deps/android-arm64-v8a/libggml.so
726- #cp artifacts/llama-bin-android-arm64-v8a.so/libllama.so deps/android-arm64-v8a/libllama.so
727- #cp artifacts/llava-bin-android-arm64-v8a.so/libllava_shared.so deps/android-arm64-v8a/libllava_shared.so
728-
729- #cp artifacts/ggml-bin-android-x86.so/libggml.so deps/android-x86/libggml.so
730- #cp artifacts/llama-bin-android-x86.so/libllama.so deps/android-x86/libllama.so
731- #cp artifacts/llava-bin-android-x86.so/libllava_shared.so deps/android-x86/libllava_shared.so
732-
733- #cp artifacts/ggml-bin-android-x86_64.so/libggml.so deps/android-x86_64/libggml.so
734- #cp artifacts/llama-bin-android-x86_64.so/libllama.so deps/android-x86_64/libllama.so
735- #cp artifacts/llava-bin-android-x86_64.so/libllava_shared.so deps/android-x86_64/libllava_shared.so
734+ cp artifacts/ggml-bin-android-arm64-v8a.so/libggml.so deps/android-arm64-v8a/libggml.so
735+ cp artifacts/ggml-base-bin-android-arm64-v8a.so/libggml-base.so deps/android-arm64-v8a/libggml-base.so
736+ cp artifacts/ggml-cpu-bin-android-arm64-v8a.so/libggml-cpu.so deps/android-arm64-v8a/libggml-cpu.so
737+ cp artifacts/llama-bin-android-arm64-v8a.so/libllama.so deps/android-arm64-v8a/libllama.so
738+ cp artifacts/llava-bin-android-arm64-v8a.so/libllava_shared.so deps/android-arm64-v8a/libllava_shared.so
739+
740+ cp artifacts/ggml-bin-android-x86.so/libggml.so deps/android-x86/libggml.so
741+ cp artifacts/ggml-base-bin-android-x86.so/libggml-base.so deps/android-x86/libggml-base.so
742+ cp artifacts/ggml-cpu-bin-android-x86.so/libggml-cpu.so deps/android-x86/libggml-cpu.so
743+ cp artifacts/llama-bin-android-x86.so/libllama.so deps/android-x86/libllama.so
744+ cp artifacts/llava-bin-android-x86.so/libllava_shared.so deps/android-x86/libllava_shared.so
745+
746+ cp artifacts/ggml-bin-android-x86_64.so/libggml.so deps/android-x86_64/libggml.so
747+ cp artifacts/ggml-base-bin-android-x86_64.so/libggml-base.so deps/android-x86_64/libggml-base.so
748+ cp artifacts/ggml-cpu-bin-android-x86_64.so/libggml-cpu.so deps/android-x86_64/libggml-cpu.so
749+ cp artifacts/llama-bin-android-x86_64.so/libllama.so deps/android-x86_64/libllama.so
750+ cp artifacts/llava-bin-android-x86_64.so/libllava_shared.so deps/android-x86_64/libllava_shared.so
736751
737752 # Windows CUDA
738753 cp artifacts/ggml-bin-win-cublas-cu11.7.1-x64.dll/ggml.dll deps/cu11.7.1/ggml.dll
0 commit comments