diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b43a174a..bb5f9e52 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -430,71 +430,72 @@ jobs: name: whisper-blas-bin-${{ matrix.arch }} path: build/bin/${{ matrix.build }} - windows-cublas: - runs-on: windows-2019 - - strategy: - matrix: - build: [Release] - arch: [x64] - cublas: [ON] - sdl2: [ON] - cuda-toolkit: [12.2.0, 11.8.0] - include: - - arch: x64 - s2arc: x64 - - sdl2: ON - s2ver: 2.28.5 - - steps: - - name: Clone - uses: actions/checkout@v4 - - - name: Add msbuild to PATH - uses: microsoft/setup-msbuild@v2 - - - name: Install CUDA Toolkit - id: cuda-toolkit - uses: Jimver/cuda-toolkit@v0.2.15 - with: - cuda: '${{ matrix.cuda-toolkit }}' - - - name: Fetch SDL2 and set SDL2_DIR - if: matrix.sdl2 == 'ON' - run: | - C:/msys64/usr/bin/wget.exe -qO sdl2.zip https://github.com/libsdl-org/SDL/releases/download/release-${{ matrix.s2ver }}/SDL2-devel-${{ matrix.s2ver }}-VC.zip - 7z x sdl2.zip - echo "SDL2_DIR=$env:GITHUB_WORKSPACE/SDL2-${{ matrix.s2ver }}/cmake" >> $env:GITHUB_ENV - - - name: Configure - run: > - cmake -S . -B ./build -A ${{ matrix.arch }} - -DCMAKE_BUILD_TYPE=${{ matrix.build }} - -DGGML_CUDA=${{ matrix.cublas }} - -DWHISPER_SDL2=${{ matrix.sdl2 }} - - - name: Build ${{ matrix.cuda-toolkit }} - run: | - cd ./build - cmake --build . --config ${{ matrix.build }} - - - name: Copy CUDA DLLs - run: > - Copy-Item -PassThru - -Path "${{ steps.cuda-toolkit.outputs.CUDA_PATH }}/bin/*.dll" - -Include cudart64_*,cublas64_*,cublasLt64_* - -Destination build/bin/${{ matrix.build }} - - - name: Copy SDL2.dll - if: matrix.sdl2 == 'ON' - run: copy "$env:SDL2_DIR/../lib/${{ matrix.s2arc }}/SDL2.dll" build/bin/${{ matrix.build }} - - - name: Upload binaries - if: matrix.sdl2 == 'ON' - uses: actions/upload-artifact@v4 - with: - name: whisper-cublas-${{ matrix.cuda-toolkit }}-bin-${{ matrix.arch }} - path: build/bin/${{ matrix.build }} +# TODO: fix and re-enable +# windows-cublas: +# runs-on: windows-2019 +# +# strategy: +# matrix: +# build: [Release] +# arch: [x64] +# cublas: [ON] +# sdl2: [ON] +# cuda-toolkit: [12.2.0, 11.8.0] +# include: +# - arch: x64 +# s2arc: x64 +# - sdl2: ON +# s2ver: 2.28.5 +# +# steps: +# - name: Clone +# uses: actions/checkout@v4 +# +# - name: Add msbuild to PATH +# uses: microsoft/setup-msbuild@v2 +# +# - name: Install CUDA Toolkit +# id: cuda-toolkit +# uses: Jimver/cuda-toolkit@v0.2.15 +# with: +# cuda: '${{ matrix.cuda-toolkit }}' +# +# - name: Fetch SDL2 and set SDL2_DIR +# if: matrix.sdl2 == 'ON' +# run: | +# C:/msys64/usr/bin/wget.exe -qO sdl2.zip https://github.com/libsdl-org/SDL/releases/download/release-${{ matrix.s2ver }}/SDL2-devel-${{ matrix.s2ver }}-VC.zip +# 7z x sdl2.zip +# echo "SDL2_DIR=$env:GITHUB_WORKSPACE/SDL2-${{ matrix.s2ver }}/cmake" >> $env:GITHUB_ENV +# +# - name: Configure +# run: > +# cmake -S . -B ./build -A ${{ matrix.arch }} +# -DCMAKE_BUILD_TYPE=${{ matrix.build }} +# -DGGML_CUDA=${{ matrix.cublas }} +# -DWHISPER_SDL2=${{ matrix.sdl2 }} +# +# - name: Build ${{ matrix.cuda-toolkit }} +# run: | +# cd ./build +# cmake --build . --config ${{ matrix.build }} +# +# - name: Copy CUDA DLLs +# run: > +# Copy-Item -PassThru +# -Path "${{ steps.cuda-toolkit.outputs.CUDA_PATH }}/bin/*.dll" +# -Include cudart64_*,cublas64_*,cublasLt64_* +# -Destination build/bin/${{ matrix.build }} +# +# - name: Copy SDL2.dll +# if: matrix.sdl2 == 'ON' +# run: copy "$env:SDL2_DIR/../lib/${{ matrix.s2arc }}/SDL2.dll" build/bin/${{ matrix.build }} +# +# - name: Upload binaries +# if: matrix.sdl2 == 'ON' +# uses: actions/upload-artifact@v4 +# with: +# name: whisper-cublas-${{ matrix.cuda-toolkit }}-bin-${{ matrix.arch }} +# path: build/bin/${{ matrix.build }} emscripten: runs-on: ubuntu-latest @@ -563,34 +564,35 @@ jobs: - name: Build swiftui example run: xcodebuild -project examples/whisper.swiftui/whisper.swiftui.xcodeproj -scheme WhisperCppDemo -configuration ${{ matrix.build }} -sdk iphoneos CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= -destination 'generic/platform=iOS' build - android: - runs-on: ubuntu-latest - - steps: - - name: Clone - uses: actions/checkout@v4 - with: - path: whisper - - - name: Install Java - uses: actions/setup-java@v4 - with: - distribution: zulu - java-version: 21 - - - name: Setup Android SDK - uses: android-actions/setup-android@v3 - - - name: Build - run: | - cd whisper/examples/whisper.android - ./gradlew assembleRelease --no-daemon - - - name: Build with external ggml - run: | - export PATH_TO_GGML=$PWD/ggml - cd whisper/examples/whisper.android - ./gradlew assembleRelease --no-daemon +# TODO: update android build and re-enable when it works +# android: +# runs-on: ubuntu-latest +# +# steps: +# - name: Clone +# uses: actions/checkout@v4 +# with: +# path: whisper +# +# - name: Install Java +# uses: actions/setup-java@v4 +# with: +# distribution: zulu +# java-version: 21 +# +# - name: Setup Android SDK +# uses: android-actions/setup-android@v3 +# +# - name: Build +# run: | +# cd whisper/examples/whisper.android +# ./gradlew assembleRelease --no-daemon +# +# - name: Build with external ggml +# run: | +# export PATH_TO_GGML=$PWD/ggml +# cd whisper/examples/whisper.android +# ./gradlew assembleRelease --no-daemon # TODO: disable because of following fail: https://github.com/ggerganov/whisper.cpp/actions/runs/11019444420/job/30627193602 # android_java: diff --git a/examples/whisper.android/lib/src/main/jni/whisper/CMakeLists.txt b/examples/whisper.android/lib/src/main/jni/whisper/CMakeLists.txt index 8dd106f0..f5e555c1 100644 --- a/examples/whisper.android/lib/src/main/jni/whisper/CMakeLists.txt +++ b/examples/whisper.android/lib/src/main/jni/whisper/CMakeLists.txt @@ -6,7 +6,7 @@ set(CMAKE_CXX_STANDARD 17) set(WHISPER_LIB_DIR ${CMAKE_SOURCE_DIR}/../../../../../../..) # Path to external GGML, otherwise uses the copy in whisper.cpp. -option(GGML_HOME "whisper: Path to external GGML source" OFF) +option(GGML_HOME "whisper: Path to external GGML source" OFF) set( SOURCE_FILES @@ -14,6 +14,8 @@ set( ${CMAKE_SOURCE_DIR}/jni.c ) +# TODO: this needs to be updated to work with the new ggml CMakeLists + if (NOT GGML_HOME) set( SOURCE_FILES