This directory vendors fllama into the repository so iOS fixes live in source control instead of the pub cache.
The app uses both fllama and whisper_ggml_plus on iOS. Both dependencies vendor ggml/llama headers, which caused CocoaPods/Xcode header resolution conflicts during iOS device builds.
src/llava.h- Use explicit platform-specific relative includes for iOS/macOS
ggmlandllamaheaders.
- Use explicit platform-specific relative includes for iOS/macOS
src/clip.cpp- Use explicit platform-specific relative includes for iOS/macOS
ggml*andggufheaders.
- Use explicit platform-specific relative includes for iOS/macOS
ios/llama.cpp/include/llama.h- Use explicit relative includes for
ggmlheaders.
- Use explicit relative includes for
ios/llama.cpp/common/log.h- Use explicit relative include for
ggml.h.
- Use explicit relative include for
ios/fllama.podspec- Set iOS minimum deployment target to 14.0.
- Disable Xcode header maps for the
fllamapod target to keepggmlheaders isolated.
- Force CPU-only inference at runtime.
src/fllama.cpp: Always setn_gpu_layers = 0(removed simulator conditional andllama_supports_gpu_offload()checks). Metal is still compiled in but never used.- Deleted
ios/default.metallib(pre-compiled Metal kernels — Metal shaders are now embedded in the library viaGGML_METAL_EMBED_LIBRARY).
- Prefer rebasing these changes onto upstream
fllamaupdates. - If these fixes are accepted upstream, switch
zswatch_app/pubspec.yamlback to the upstream dependency.