From 24b8f07abd11e3dee62de1a4128481152c310835 Mon Sep 17 00:00:00 2001 From: Gerard Martinez Date: Mon, 1 Jun 2026 06:23:26 -0700 Subject: [PATCH] build : use umbrella Headers directory for XCFramework module map The XCFramework generated by build-xcframework.sh creates a module map that manually lists public headers. That list can fall out of sync with the framework's Headers directory. The module map is currently missing ggml-opt.h, which is present in the framework headers. This can cause downstream Apple builds to fail with: Include of non-modular header inside framework module 'llama' Use the framework's Headers directory itself as the module map umbrella instead of maintaining a manual header list. This makes all public headers under the generated framework's Headers directory part of the llama module. --- build-xcframework.sh | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/build-xcframework.sh b/build-xcframework.sh index 5d289922a84..180c01a88e9 100755 --- a/build-xcframework.sh +++ b/build-xcframework.sh @@ -130,14 +130,7 @@ setup_framework_structure() { # Create module map (common for all platforms) cat > ${module_path}module.modulemap << EOF framework module llama { - header "llama.h" - header "ggml.h" - header "ggml-alloc.h" - header "ggml-backend.h" - header "ggml-metal.h" - header "ggml-cpu.h" - header "ggml-blas.h" - header "gguf.h" + umbrella "Headers" link "c++" link framework "Accelerate"