mirror of
https://github.com/ggerganov/whisper.cpp.git
synced 2024-12-18 20:27:53 +00:00
ci : disable Obj-C build + fixes
This commit is contained in:
parent
384e214cc7
commit
11dddfbc9e
33
.github/workflows/build.yml
vendored
33
.github/workflows/build.yml
vendored
@ -518,7 +518,7 @@ jobs:
|
|||||||
emcmake cmake . -DCMAKE_BUILD_TYPE=${{ matrix.build }}
|
emcmake cmake . -DCMAKE_BUILD_TYPE=${{ matrix.build }}
|
||||||
make
|
make
|
||||||
|
|
||||||
ios:
|
ios-xcode-build:
|
||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
@ -526,7 +526,7 @@ jobs:
|
|||||||
build: [Release]
|
build: [Release]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Clone
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Configure
|
- name: Configure
|
||||||
@ -534,11 +534,34 @@ jobs:
|
|||||||
cp models/for-tests-ggml-base.en.bin models/ggml-base.en.bin
|
cp models/for-tests-ggml-base.en.bin models/ggml-base.en.bin
|
||||||
mkdir models/ggml-base.en-encoder.mlmodelc
|
mkdir models/ggml-base.en-encoder.mlmodelc
|
||||||
|
|
||||||
- name: Build objc example
|
- name: Build
|
||||||
run: xcodebuild -project examples/whisper.objc/whisper.objc.xcodeproj -scheme whisper.objc -configuration ${{ matrix.build }} -sdk iphonesimulator build
|
id: cmake_build
|
||||||
|
run: |
|
||||||
|
sysctl -a
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -G Xcode .. \
|
||||||
|
-DGGML_METAL_USE_BF16=ON \
|
||||||
|
-DGGML_METAL_EMBED_LIBRARY=ON \
|
||||||
|
-DWHISPER_BUILD_EXAMPLES=OFF \
|
||||||
|
-DWHISPER_BUILD_TESTS=OFF \
|
||||||
|
-DWHISPER_BUILD_SERVER=OFF \
|
||||||
|
-DCMAKE_SYSTEM_NAME=iOS \
|
||||||
|
-DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 \
|
||||||
|
-DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=ggml
|
||||||
|
cmake --build . --config Release -j $(sysctl -n hw.logicalcpu) -- CODE_SIGNING_ALLOWED=NO
|
||||||
|
sudo cmake --install . --config Release
|
||||||
|
|
||||||
|
- name: xcodebuild for swift package
|
||||||
|
id: xcodebuild
|
||||||
|
run: |
|
||||||
|
xcodebuild -scheme whisper-Package -destination 'generic/platform=iOS'
|
||||||
|
|
||||||
|
#- name: Build objc example
|
||||||
|
# run: xcodebuild -project examples/whisper.objc/whisper.objc.xcodeproj -scheme whisper.objc -configuration ${{ matrix.build }} -sdk iphoneos build
|
||||||
|
|
||||||
- name: Build swiftui example
|
- name: Build swiftui example
|
||||||
run: xcodebuild -project examples/whisper.swiftui/whisper.swiftui.xcodeproj -scheme WhisperCppDemo -configuration ${{ matrix.build }} -sdk iphonesimulator build
|
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:
|
android:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -14,55 +14,6 @@ let package = Package(
|
|||||||
.library(name: "whisper", targets: ["whisper"]),
|
.library(name: "whisper", targets: ["whisper"]),
|
||||||
],
|
],
|
||||||
targets: [
|
targets: [
|
||||||
.target(
|
.systemLibrary(name: "whisper", pkgConfig: "whisper"),
|
||||||
name: "whisper",
|
]
|
||||||
path: ".",
|
|
||||||
exclude: [
|
|
||||||
"build",
|
|
||||||
"bindings",
|
|
||||||
"cmake",
|
|
||||||
"examples",
|
|
||||||
"scripts",
|
|
||||||
"models",
|
|
||||||
"samples",
|
|
||||||
"tests",
|
|
||||||
"CMakeLists.txt",
|
|
||||||
"Makefile",
|
|
||||||
"ggml/src/ggml-metal/ggml-metal-embed.metal"
|
|
||||||
],
|
|
||||||
sources: [
|
|
||||||
"ggml/src/ggml.c",
|
|
||||||
"src/whisper.cpp",
|
|
||||||
"ggml/src/ggml-aarch64.c",
|
|
||||||
"ggml/src/ggml-alloc.c",
|
|
||||||
"ggml/src/ggml-backend.cpp",
|
|
||||||
"ggml/src/ggml-backend-reg.cpp",
|
|
||||||
"ggml/src/ggml-cpu/ggml-cpu.c",
|
|
||||||
"ggml/src/ggml-cpu/ggml-cpu.cpp",
|
|
||||||
"ggml/src/ggml-cpu/ggml-cpu-aarch64.c",
|
|
||||||
"ggml/src/ggml-cpu/ggml-cpu-quants.c",
|
|
||||||
"ggml/src/ggml-quants.c",
|
|
||||||
"ggml/src/ggml-threading.cpp",
|
|
||||||
"ggml/src/ggml-metal/ggml-metal.m"
|
|
||||||
],
|
|
||||||
resources: [.process("ggml/src/ggml-metal/ggml-metal.metal")],
|
|
||||||
publicHeadersPath: "spm-headers",
|
|
||||||
cSettings: [
|
|
||||||
.unsafeFlags(["-Wno-shorten-64-to-32", "-O3", "-DNDEBUG"]),
|
|
||||||
.unsafeFlags(["-fno-objc-arc"]),
|
|
||||||
.headerSearchPath("ggml/src"),
|
|
||||||
.define("GGML_USE_ACCELERATE"),
|
|
||||||
.define("GGML_USE_METAL")
|
|
||||||
// NOTE: NEW_LAPACK will required iOS version 16.4+
|
|
||||||
// We should consider add this in the future when we drop support for iOS 14
|
|
||||||
// (ref: ref: https://developer.apple.com/documentation/accelerate/1513264-cblas_sgemm?language=objc)
|
|
||||||
// .define("ACCELERATE_NEW_LAPACK"),
|
|
||||||
// .define("ACCELERATE_LAPACK_ILP64")
|
|
||||||
],
|
|
||||||
linkerSettings: [
|
|
||||||
.linkedFramework("Accelerate")
|
|
||||||
]
|
|
||||||
)
|
|
||||||
],
|
|
||||||
cxxLanguageStandard: .cxx11
|
|
||||||
)
|
)
|
||||||
|
5
Sources/whisper/module.modulemap
Normal file
5
Sources/whisper/module.modulemap
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
module whisper [system] {
|
||||||
|
header "whisper.h"
|
||||||
|
link "whisper"
|
||||||
|
export *
|
||||||
|
}
|
4
Sources/whisper/whisper.h
Normal file
4
Sources/whisper/whisper.h
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <whisper.h>
|
||||||
|
|
@ -1,10 +1,10 @@
|
|||||||
prefix=@CMAKE_INSTALL_PREFIX@
|
prefix=@CMAKE_INSTALL_PREFIX@
|
||||||
exec_prefix=${prefix}
|
exec_prefix=${prefix}
|
||||||
libdir=@CMAKE_INSTALL_FULL_LIBDIR@
|
libdir=${exec_prefix}/lib
|
||||||
includedir=${prefix}/include
|
includedir=${prefix}/include
|
||||||
|
|
||||||
Name: whisper
|
Name: whisper
|
||||||
Description: Port of OpenAI's Whisper model in C/C++
|
Description: Port of OpenAI's Whisper model in C/C++
|
||||||
Version: @PROJECT_VERSION@
|
Version: @PROJECT_VERSION@
|
||||||
Libs: -L${libdir} -lwhisper
|
Libs: -L${libdir} -lggml -lggml-base -lwhisper
|
||||||
Cflags: -I${includedir}
|
Cflags: -I${includedir}
|
||||||
|
@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.10)
|
|||||||
|
|
||||||
project(whisper.cpp)
|
project(whisper.cpp)
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 11)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(WHISPER_LIB_DIR ${CMAKE_SOURCE_DIR}/../../../../../../..)
|
set(WHISPER_LIB_DIR ${CMAKE_SOURCE_DIR}/../../../../../../..)
|
||||||
|
|
||||||
# Path to external GGML, otherwise uses the copy in whisper.cpp.
|
# Path to external GGML, otherwise uses the copy in whisper.cpp.
|
||||||
|
@ -363,7 +363,7 @@
|
|||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
HEADER_SEARCH_PATHS = "";
|
HEADER_SEARCH_PATHS = ../../../ggml/src/;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
@ -417,7 +417,7 @@
|
|||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
HEADER_SEARCH_PATHS = "";
|
HEADER_SEARCH_PATHS = ../../../ggml/src/;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
|
@ -66,7 +66,7 @@ actor WhisperContext {
|
|||||||
|
|
||||||
private func systemInfo() -> String {
|
private func systemInfo() -> String {
|
||||||
var info = ""
|
var info = ""
|
||||||
if (ggml_cpu_has_neon() != 0) { info += "NEON " }
|
//if (ggml_cpu_has_neon() != 0) { info += "NEON " }
|
||||||
return String(info.dropLast())
|
return String(info.dropLast())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user