Skip to content

Commit 95b1ae6

Browse files
committed
Fix iOS and Simulator build miniaudio configuration
1 parent b02f016 commit 95b1ae6

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

Makefile

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -103,23 +103,21 @@ else ifeq ($(PLATFORM),ios)
103103
TARGET := $(DIST_DIR)/ai.dylib
104104
SDK := -isysroot $(shell xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=14.0
105105
LLAMA_LIBS += $(BUILD_GGML)/lib/libggml-metal.a
106-
WHISPER_LDFLAGS += -lwhisper.coreml
107-
LDFLAGS += -L./$(BUILD_GGML)/lib -lggml-metal -L./$(BUILD_GGML)/lib -framework Accelerate -framework Metal -framework Foundation -framework CoreML -framework AVFoundation -framework AudioToolbox -framework CoreAudio -framework Security -ldl -dynamiclib $(SDK)
106+
LDFLAGS += -L./$(BUILD_GGML)/lib -lggml-metal -L./$(BUILD_GGML)/lib -framework Accelerate -framework Metal -framework Foundation -framework AVFoundation -framework AudioToolbox -framework CoreAudio -framework CoreFoundation -framework Security -ldl -lpthread -lm -dynamiclib $(SDK)
108107
CFLAGS += -arch arm64 -x objective-c $(SDK)
109108
LLAMA_OPTIONS += -DGGML_OPENMP=OFF -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0
110-
WHISPER_OPTIONS += -DGGML_OPENMP=OFF -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DWHISPER_COREML=ON
111-
MINIAUDIO_OPTIONS += -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DCMAKE_C_FLAGS="-x objective-c"
109+
WHISPER_OPTIONS += -DGGML_OPENMP=OFF -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0
110+
MINIAUDIO_OPTIONS += -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DMINIAUDIO_NO_RUNTIME_LINKING=ON
112111
STRIP = strip -x -S $@
113112
else ifeq ($(PLATFORM),ios-sim)
114113
TARGET := $(DIST_DIR)/ai.dylib
115114
SDK := -isysroot $(shell xcrun --sdk iphonesimulator --show-sdk-path) -miphonesimulator-version-min=14.0
116115
LLAMA_LIBS += $(BUILD_GGML)/lib/libggml-metal.a
117-
WHISPER_LDFLAGS += -lwhisper.coreml
118-
LDFLAGS += -arch x86_64 -arch arm64 -L./$(BUILD_GGML)/lib -lggml-metal -L./$(BUILD_GGML)/lib -framework Accelerate -framework Metal -framework Foundation -framework CoreML -framework AVFoundation -framework AudioToolbox -framework CoreAudio -framework Security -ldl -dynamiclib $(SDK)
116+
LDFLAGS += -arch x86_64 -arch arm64 -L./$(BUILD_GGML)/lib -lggml-metal -L./$(BUILD_GGML)/lib -framework Accelerate -framework Metal -framework Foundation -framework AVFoundation -framework AudioToolbox -framework CoreAudio -framework CoreFoundation -framework Security -ldl -lpthread -lm -dynamiclib $(SDK)
119117
CFLAGS += -arch x86_64 -arch arm64 -x objective-c $(SDK)
120118
LLAMA_OPTIONS += -DGGML_OPENMP=OFF -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
121-
WHISPER_OPTIONS += -DGGML_OPENMP=OFF -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DWHISPER_COREML=ON
122-
MINIAUDIO_OPTIONS += -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_C_FLAGS="-x objective-c"
119+
WHISPER_OPTIONS += -DGGML_OPENMP=OFF -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
120+
MINIAUDIO_OPTIONS += -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DMINIAUDIO_NO_RUNTIME_LINKING=ON
123121
STRIP = strip -x -S $@
124122
else # linux
125123
TARGET := $(DIST_DIR)/ai.so
@@ -164,7 +162,7 @@ ifneq (,$(findstring BLAS,$(LLAMA)))
164162
LLAMA_LDFLAGS += -lblas
165163
endif
166164
endif
167-
ifneq (,$(findstring COREML,$(WHISPER))) # CoreML - only macos
165+
ifneq (,$(findstring COREML,$(WHISPER))) # CoreML - only Apple platforms
168166
WHISPER_LIBS += $(BUILD_WHISPER)/src/libwhisper.coreml.a
169167
WHISPER_LDFLAGS += -lwhisper.coreml
170168
WHISPER_OPTIONS += -DWHISPER_COREML=ON
@@ -222,6 +220,16 @@ $(BUILD_DIR)/whisper.cpp.stamp: $(BUILD_DIR)/llama.cpp.stamp
222220

223221
$(BUILD_DIR)/miniaudio.stamp:
224222
cmake -B $(BUILD_MINIAUDIO) $(MINIAUDIO_OPTIONS) $(MINIAUDIO_DIR)
223+
ifeq ($(PLATFORM),ios)
224+
# Patch the build files to add Objective-C flag for iOS
225+
sed -i.bak 's/\(C_FLAGS = \)/\1-x objective-c /' $(BUILD_MINIAUDIO)/CMakeFiles/miniaudio.dir/flags.make
226+
sed -i.bak 's/\(C_FLAGS = \)/\1-x objective-c /' $(BUILD_MINIAUDIO)/CMakeFiles/miniaudio_*.dir/flags.make || true
227+
endif
228+
ifeq ($(PLATFORM),ios-sim)
229+
# Patch the build files to add Objective-C flag for iOS simulator
230+
sed -i.bak 's/\(C_FLAGS = \)/\1-x objective-c /' $(BUILD_MINIAUDIO)/CMakeFiles/miniaudio.dir/flags.make
231+
sed -i.bak 's/\(C_FLAGS = \)/\1-x objective-c /' $(BUILD_MINIAUDIO)/CMakeFiles/miniaudio_*.dir/flags.make || true
232+
endif
225233
cmake --build $(BUILD_MINIAUDIO) --config Release $(MINIAUDIO_ARGS) $(ARGS)
226234
touch $@
227235

0 commit comments

Comments
 (0)