Skip to content

Commit

Permalink
Merge pull request #242 from mybigday/tvos
Browse files Browse the repository at this point in the history
Support tvOS (Base and sqlitevec)
  • Loading branch information
ospfranco authored Feb 11, 2025
2 parents 2f0eb7e + ea70e99 commit f26bc9a
Show file tree
Hide file tree
Showing 7 changed files with 125 additions and 1 deletion.
27 changes: 27 additions & 0 deletions ios/sqlitevec.xcframework/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,33 @@
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
<string>tvos-arm64</string>
<key>LibraryPath</key>
<string>sqlitevec.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
</array>
<key>SupportedPlatform</key>
<string>tvos</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
<string>tvos-arm64_x86_64-simulator</string>
<key>LibraryPath</key>
<string>sqlitevec.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>tvos</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>sqlitevec</string>
<key>CFBundleIdentifier</key>
<string>com.ospfranco.sqlitevec</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>MinimumOSVersion</key>
<string>13.0</string>
</dict>
</plist>
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>sqlitevec</string>
<key>CFBundleIdentifier</key>
<string>com.ospfranco.sqlitevec</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>MinimumOSVersion</key>
<string>13.0</string>
</dict>
</plist>
Binary file not shown.
2 changes: 1 addition & 1 deletion op-sqlite.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ Pod::Spec.new do |s|
s.license = package["license"]
s.authors = package["author"]

s.platforms = { :ios => "13.0", :osx => "10.15", :visionos => "1.0" }
s.platforms = { :ios => "13.0", :tvos => "13.0", :osx => "10.15", :visionos => "1.0" }
s.source = { :git => "https://github.com/op-engineering/op-sqlite.git", :tag => "#{s.version}" }

# Base source files
Expand Down
49 changes: 49 additions & 0 deletions scripts/build-sqlite-vec.sh
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,55 @@ install_name_tool -id @rpath/sqlitevec.framework/sqlitevec ../../ios/sqlitevec.x
cp ./ios/sim_fat/sqlitevec ../../ios/sqlitevec.xcframework/ios-arm64_x86_64-simulator/sqlitevec.framework/
install_name_tool -id @rpath/sqlitevec.framework/sqlitevec ../../ios/sqlitevec.xcframework/ios-arm64_x86_64-simulator/sqlitevec.framework/sqlitevec

TVOS_SDK_PATH=$(xcrun --sdk appletvos --show-sdk-path)
TVOS_SIMULATOR_SDK_PATH=$(xcrun --sdk appletvsimulator --show-sdk-path)

CC_tvos_arm64=$(xcrun --sdk appletvos --find clang)
CC_tvos_x86_64=$(xcrun --sdk appletvsimulator --find clang)

TVOS_CFLAGS="-Ivendor/ -I./ -O3 -fembed-bitcode -fPIC"
TVOS_LDFLAGS="-Wl"
TVOS_ARM64_FLAGS="-target arm64-apple-tvos$MIN_IOS_VERSION -mappletvos-version-min=$MIN_IOS_VERSION"
TVOS_ARM64_SIM_FLAGS="-target arm64-apple-tvos-simulator$MIN_IOS_VERSION -mappletvsimulator-version-min=$MIN_IOS_VERSION"
TVOS_X86_64_FLAGS="-target x86_64-apple-tvos-simulator$MIN_IOS_VERSION -mappletvsimulator-version-min=$MIN_IOS_VERSION"

OUT_DIR_tvos_arm64=tvos/arm64
OUT_DIR_tvos_x86_64=tvos/x86_64
OUT_DIR_tvos_arm64_simulator=tvos/arm64_simulator

mkdir -p $OUT_DIR_tvos_arm64
mkdir -p $OUT_DIR_tvos_x86_64
mkdir -p $OUT_DIR_tvos_arm64_simulator

function build_tvos_arm64() {
$CC_tvos_arm64 $CFLAGS $TVOS_CFLAGS $TVOS_ARM64_FLAGS -isysroot $TVOS_SDK_PATH -c sqlite-vec.c -o $OUT_DIR_tvos_arm64/sqlite-vec.o
$CC_tvos_arm64 -dynamiclib -o $OUT_DIR_tvos_arm64/sqlitevec $OUT_DIR_tvos_arm64/sqlite-vec.o -isysroot $TVOS_SDK_PATH $TVOS_LDFLAGS
}

function build_tvos_x86_64() {
$CC_tvos_x86_64 $CFLAGS $TVOS_CFLAGS $TVOS_X86_64_FLAGS -isysroot $TVOS_SIMULATOR_SDK_PATH -c sqlite-vec.c -o $OUT_DIR_tvos_x86_64/sqlite-vec.o
$CC_tvos_x86_64 $TVOS_X86_64_FLAGS -dynamiclib -o $OUT_DIR_tvos_x86_64/sqlitevec $OUT_DIR_tvos_x86_64/sqlite-vec.o -isysroot $TVOS_SIMULATOR_SDK_PATH
}

function build_tvos_arm64_simulator() {
$CC_tvos_arm64 $CFLAGS $TVOS_CFLAGS $TVOS_ARM64_SIM_FLAGS -isysroot $TVOS_SIMULATOR_SDK_PATH -c sqlite-vec.c -o $OUT_DIR_tvos_arm64_simulator/sqlite-vec.o
$CC_tvos_arm64 -dynamiclib -o $OUT_DIR_tvos_arm64_simulator/sqlitevec $OUT_DIR_tvos_arm64_simulator/sqlite-vec.o -isysroot $TVOS_SIMULATOR_SDK_PATH
}

build_tvos_arm64
build_tvos_x86_64
build_tvos_arm64_simulator

mkdir -p tvos/sim_fat/
lipo -create ./tvos/x86_64/sqlitevec ./tvos/arm64_simulator/sqlitevec -output tvos/sim_fat/sqlitevec

cp ./tvos/arm64/sqlitevec ../../ios/sqlitevec.xcframework/tvos-arm64/sqlitevec.framework/
install_name_tool -id @rpath/sqlitevec.framework/sqlitevec ../../ios/sqlitevec.xcframework/tvos-arm64/sqlitevec.framework/sqlitevec

cp ./tvos/sim_fat/sqlitevec ../../ios/sqlitevec.xcframework/tvos-arm64_x86_64-simulator/sqlitevec.framework/
install_name_tool -id @rpath/sqlitevec.framework/sqlitevec ../../ios/sqlitevec.xcframework/tvos-arm64_x86_64-simulator/sqlitevec.framework/sqlitevec

cd ..
function download_sqlite_vec_android() {
local abi=$1
local arch=$2
Expand Down

0 comments on commit f26bc9a

Please sign in to comment.