@@ -159,6 +159,64 @@ github: extension
159159clean :
160160 rm -rf $(BUILD_DIR ) $(DIST_DIR )
161161
162+ .NOTPARALLEL : % .dylib
163+ % .dylib :
164+ rm -rf $(BUILD_DIR ) && $(MAKE ) PLATFORM=$*
165+ mv $(DIST_DIR ) /agent.dylib $(DIST_DIR ) /$@
166+
167+ define PLIST
168+ <?xml version=\"1.0\" encoding=\"UTF-8\"?>\
169+ <!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\
170+ <plist version=\"1.0\">\
171+ <dict>\
172+ <key>CFBundleDevelopmentRegion</key>\
173+ <string>en</string>\
174+ <key>CFBundleExecutable</key>\
175+ <string>agent</string>\
176+ <key>CFBundleIdentifier</key>\
177+ <string>ai.sqlite.agent</string>\
178+ <key>CFBundleInfoDictionaryVersion</key>\
179+ <string>6.0</string>\
180+ <key>CFBundlePackageType</key>\
181+ <string>FMWK</string>\
182+ <key>CFBundleSignature</key>\
183+ <string>????</string>\
184+ <key>CFBundleVersion</key>\
185+ <string>$(shell make version) </string>\
186+ <key>CFBundleShortVersionString</key>\
187+ <string>$(shell make version) </string>\
188+ <key>MinimumOSVersion</key>\
189+ <string>11.0</string>\
190+ </dict>\
191+ </plist>
192+ endef
193+
194+ define MODULEMAP
195+ framework module agent {\
196+ umbrella header \"sqlite-agent.h\"\
197+ export *\
198+ }
199+ endef
200+
201+ LIB_NAMES = ios.dylib ios-sim.dylib macos.dylib
202+ FMWK_NAMES = ios-arm64 ios-arm64_x86_64-simulator macos-arm64_x86_64
203+ $(DIST_DIR ) /% .xcframework : $(LIB_NAMES )
204+ @$(foreach i,1 2 3,\
205+ lib=$(word $(i ) ,$(LIB_NAMES ) ) ; \
206+ fmwk=$(word $(i ) ,$(FMWK_NAMES ) ) ; \
207+ mkdir -p $(DIST_DIR ) /$$ fmwk/agent.framework/Headers; \
208+ mkdir -p $(DIST_DIR ) /$$ fmwk/agent.framework/Modules; \
209+ cp $(SRC_DIR ) /sqlite-agent.h $(DIST_DIR ) /$$ fmwk/agent.framework/Headers; \
210+ printf " $( PLIST) " > $(DIST_DIR ) /$$ fmwk/agent.framework/Info.plist; \
211+ printf " $( MODULEMAP) " > $(DIST_DIR ) /$$ fmwk/agent.framework/Modules/module.modulemap; \
212+ mv $(DIST_DIR ) /$$ lib $(DIST_DIR ) /$$ fmwk/agent.framework/agent; \
213+ install_name_tool -id " @rpath/agent.framework/agent" $(DIST_DIR ) /$$ fmwk/agent.framework/agent; \
214+ )
215+ xcodebuild -create-xcframework $(foreach fmwk,$(FMWK_NAMES ) ,-framework $(DIST_DIR ) /$(fmwk ) /agent.framework) -output $@
216+ rm -rf $(foreach fmwk,$(FMWK_NAMES ) ,$(DIST_DIR ) /$(fmwk ) )
217+
218+ xcframework : $(DIST_DIR ) /agent.xcframework
219+
162220# Extract version from header
163221version :
164222 @echo $(shell sed -n 's/^#define SQLITE_AGENT_VERSION[[:space:]]* "\([^"]* \) " .*/\1/p' $( SRC_DIR) /sqlite-agent.h)
0 commit comments