Skip to content

Commit f5e1c2d

Browse files
committed
fix(XCFramework): versioned macOS framework for Xcode 26 compatibility
1 parent 4074945 commit f5e1c2d

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed

.github/workflows/main.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ jobs:
334334
codesign --sign "${{ secrets.APPLE_TEAM_ID }}" --timestamp --options runtime dist/memory-${variant}.xcframework
335335
ditto -c -k --keepParent dist/memory-${variant}.xcframework dist/memory-${variant}.xcframework.zip
336336
xcrun notarytool submit dist/memory-${variant}.xcframework.zip --apple-id "${{ secrets.APPLE_ID }}" --password "${{ secrets.APPLE_PASSWORD }}" --team-id "${{ secrets.APPLE_TEAM_ID }}" --wait
337-
rm dist/memory-${variant}.xcframework.zip
337+
rm -rf dist/memory-${variant}.xcframework
338338
done
339339
340340
- name: cleanup keychain for codesign
@@ -456,7 +456,9 @@ jobs:
456456
name=$(basename "$folder")
457457
if [[ "$name" == "memory-apple-xcframework" ]]; then
458458
for variant in remote local full; do
459-
(cd "$folder" && zip -rq "../../memory-apple-xcframework-${variant}-${VERSION}.zip" memory-${variant}.xcframework)
459+
# Use the ditto-created zip that preserves macOS symlinks and extract for other steps
460+
cp "$folder/memory-${variant}.xcframework.zip" "memory-apple-xcframework-${variant}-${VERSION}.zip"
461+
unzip -q "$folder/memory-${variant}.xcframework.zip" -d "$folder/"
460462
done
461463
elif [[ "$name" == "memory-android-aar" ]]; then
462464
cp "$folder"/*.aar "${name}-${VERSION}.aar"

Makefile

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,7 @@ FMWK_NAMES = ios-arm64 ios-arm64_x86_64-simulator macos-arm64_x86_64
641641
XCFRAMEWORK_LLAMA = LLAMA="-DGGML_NATIVE=OFF -DGGML_METAL=ON -DGGML_ACCELERATE=ON -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=Apple"
642642

643643
define create_xcframework
644-
@$(foreach i,1 2 3,\
644+
@$(foreach i,1 2,\
645645
prefix=$(word $(i),$(LIB_PREFIXES)); \
646646
fmwk=$(word $(i),$(FMWK_NAMES)); \
647647
mkdir -p $(DIST_DIR)/$$fmwk/memory.framework/Headers; \
@@ -652,6 +652,21 @@ define create_xcframework
652652
mv $(DIST_DIR)/$${prefix}$(1).dylib $(DIST_DIR)/$$fmwk/memory.framework/memory; \
653653
install_name_tool -id "@rpath/memory.framework/memory" $(DIST_DIR)/$$fmwk/memory.framework/memory; \
654654
)
655+
@prefix=$(word 3,$(LIB_PREFIXES)); \
656+
fmwk=$(word 3,$(FMWK_NAMES)); \
657+
mkdir -p $(DIST_DIR)/$$fmwk/memory.framework/Versions/A/Headers; \
658+
mkdir -p $(DIST_DIR)/$$fmwk/memory.framework/Versions/A/Modules; \
659+
mkdir -p $(DIST_DIR)/$$fmwk/memory.framework/Versions/A/Resources; \
660+
cp src/sqlite-memory.h $(DIST_DIR)/$$fmwk/memory.framework/Versions/A/Headers; \
661+
printf "$(PLIST)" > $(DIST_DIR)/$$fmwk/memory.framework/Versions/A/Resources/Info.plist; \
662+
printf "$(MODULEMAP)" > $(DIST_DIR)/$$fmwk/memory.framework/Versions/A/Modules/module.modulemap; \
663+
mv $(DIST_DIR)/$${prefix}$(1).dylib $(DIST_DIR)/$$fmwk/memory.framework/Versions/A/memory; \
664+
install_name_tool -id "@rpath/memory.framework/memory" $(DIST_DIR)/$$fmwk/memory.framework/Versions/A/memory; \
665+
ln -sf A $(DIST_DIR)/$$fmwk/memory.framework/Versions/Current; \
666+
ln -sf Versions/Current/memory $(DIST_DIR)/$$fmwk/memory.framework/memory; \
667+
ln -sf Versions/Current/Headers $(DIST_DIR)/$$fmwk/memory.framework/Headers; \
668+
ln -sf Versions/Current/Modules $(DIST_DIR)/$$fmwk/memory.framework/Modules; \
669+
ln -sf Versions/Current/Resources $(DIST_DIR)/$$fmwk/memory.framework/Resources;
655670
xcodebuild -create-xcframework $(foreach fmwk,$(FMWK_NAMES),-framework $(DIST_DIR)/$(fmwk)/memory.framework) -output $(DIST_DIR)/$(2).xcframework
656671
rm -rf $(foreach fmwk,$(FMWK_NAMES),$(DIST_DIR)/$(fmwk))
657672
endef

src/sqlite-memory.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
extern "C" {
2727
#endif
2828

29-
#define SQLITE_DBMEMORY_VERSION "0.8.2"
29+
#define SQLITE_DBMEMORY_VERSION "0.8.3"
3030

3131
// public API
3232
SQLITE_DBMEMORY_API int sqlite3_memory_init (sqlite3 *db, char **pzErrMsg, const sqlite3_api_routines *pApi);

0 commit comments

Comments
 (0)