Use xcframework for Flutter iOS plugin. (#1547)
This commit is contained in:
@@ -76,6 +76,8 @@ if [[ ! -f build/simulator_x86_64/install/lib/libsherpa-onnx-c-api.dylib ]]; the
|
||||
-B build/simulator_x86_64
|
||||
|
||||
cmake --build build/simulator_x86_64 -j 4 --target install
|
||||
else
|
||||
echo "Skip building for simulator (x86_64)"
|
||||
fi
|
||||
|
||||
echo "Building for simulator (arm64)"
|
||||
@@ -107,6 +109,8 @@ if [[ ! -f build/simulator_arm64/install/lib/libsherpa-onnx-c-api.dylib ]]; then
|
||||
-B build/simulator_arm64
|
||||
|
||||
cmake --build build/simulator_arm64 -j 4 --target install
|
||||
else
|
||||
echo "Skip building for simulator (arm64)"
|
||||
fi
|
||||
|
||||
echo "Building for arm64"
|
||||
@@ -140,11 +144,149 @@ if [[ ! -f build/os64/install/lib/libsherpa-onnx-c-api.dylib ]]; then
|
||||
-B build/os64
|
||||
|
||||
cmake --build build/os64 -j 4 --target install
|
||||
else
|
||||
echo "Skip building for arm64"
|
||||
fi
|
||||
|
||||
echo "Collect dynamic libraries "
|
||||
mkdir -p ios-arm64 ios-arm64-simulator ios-x86_64-simulator
|
||||
|
||||
cp -v ./build/os64/install/lib/libsherpa-onnx-c-api.dylib ios-arm64/
|
||||
cp -v ./build/simulator_arm64/install/lib/libsherpa-onnx-c-api.dylib ios-arm64-simulator
|
||||
cp -v .//build/simulator_x86_64/install/lib/libsherpa-onnx-c-api.dylib ios-x86_64-simulator
|
||||
cp -v ./build/simulator_arm64/install/lib/libsherpa-onnx-c-api.dylib ios-arm64-simulator/
|
||||
cp -v .//build/simulator_x86_64/install/lib/libsherpa-onnx-c-api.dylib ios-x86_64-simulator/
|
||||
|
||||
# see https://github.com/k2-fsa/sherpa-onnx/issues/1172#issuecomment-2439662662
|
||||
rm -rf ios-arm64_x86_64-simulator
|
||||
mkdir ios-arm64_x86_64-simulator
|
||||
|
||||
lipo \
|
||||
-create \
|
||||
ios-arm64-simulator/libsherpa-onnx-c-api.dylib \
|
||||
ios-x86_64-simulator/libsherpa-onnx-c-api.dylib \
|
||||
-output \
|
||||
ios-arm64_x86_64-simulator/libsherpa-onnx-c-api.dylib
|
||||
|
||||
pushd ios-arm64
|
||||
rm -rf sherpa_onnx.framework
|
||||
mkdir sherpa_onnx.framework
|
||||
|
||||
lipo \
|
||||
-create \
|
||||
libsherpa-onnx-c-api.dylib \
|
||||
-output \
|
||||
sherpa_onnx
|
||||
|
||||
mv sherpa_onnx sherpa_onnx.framework/
|
||||
cd sherpa_onnx.framework
|
||||
|
||||
install_name_tool \
|
||||
-change @rpath/libsherpa-onnx-c-api.dylib @rpath/sherpa_onnx.framework/sherpa_onnx \
|
||||
sherpa_onnx
|
||||
|
||||
install_name_tool \
|
||||
-id "@rpath/sherpa_onnx.framework/sherpa_onnx" \
|
||||
sherpa_onnx
|
||||
|
||||
chmod +x sherpa_onnx
|
||||
popd
|
||||
|
||||
pushd ios-arm64_x86_64-simulator
|
||||
rm -rf sherpa_onnx.framework
|
||||
mkdir sherpa_onnx.framework
|
||||
|
||||
lipo \
|
||||
-create \
|
||||
libsherpa-onnx-c-api.dylib \
|
||||
-output \
|
||||
sherpa_onnx
|
||||
|
||||
mv sherpa_onnx sherpa_onnx.framework/
|
||||
cd sherpa_onnx.framework
|
||||
install_name_tool \
|
||||
-change @rpath/libsherpa-onnx-c-api.dylib @rpath/sherpa_onnx.framework/sherpa_onnx \
|
||||
sherpa_onnx
|
||||
|
||||
install_name_tool \
|
||||
-id "@rpath/sherpa_onnx.framework/sherpa_onnx" \
|
||||
sherpa_onnx
|
||||
|
||||
chmod +x sherpa_onnx
|
||||
popd
|
||||
|
||||
for d in ios-arm64_x86_64-simulator ios-arm64; do
|
||||
dst=$d/sherpa_onnx.framework
|
||||
|
||||
# The Info.plist is modified from
|
||||
# https://github.com/Spicely/flutter_openim_sdk_ffi/blob/main/ios/openim_sdk_ffi.framework/Info.plist
|
||||
cat >$dst/Info.plist <<EOF
|
||||
<?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>CFBundleName</key>
|
||||
<string>sherpa_onnx</string>
|
||||
<key>DTSDKName</key>
|
||||
<string>iphoneos17.0</string>
|
||||
<key>DTXcode</key>
|
||||
<string>1501</string>
|
||||
<key>DTSDKBuild</key>
|
||||
<string>21A326</string>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>BuildMachineOSBuild</key>
|
||||
<string>23B81</string>
|
||||
<key>DTPlatformName</key>
|
||||
<string>iphoneos</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.10.31</string>
|
||||
<key>CFBundleSupportedPlatforms</key>
|
||||
<array>
|
||||
<string>iPhoneOS</string>
|
||||
</array>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>sherpa_onnx</string>
|
||||
<key>DTCompiler</key>
|
||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>arm64</string>
|
||||
</array>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>12.0</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.k2fsa.sherpa.onnx</string>
|
||||
<key>UIDeviceFamily</key>
|
||||
<array>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
</array>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>DTPlatformVersion</key>
|
||||
<string>17.0</string>
|
||||
<key>DTXcodeBuild</key>
|
||||
<string>15A507</string>
|
||||
<key>DTPlatformBuild</key>
|
||||
<string>21A326</string>
|
||||
</dict>
|
||||
</plist>
|
||||
EOF
|
||||
done
|
||||
|
||||
rm -rf sherpa_onnx.xcframework
|
||||
xcodebuild -create-xcframework \
|
||||
-framework ios-arm64/sherpa_onnx.framework \
|
||||
-framework ios-arm64_x86_64-simulator/sherpa_onnx.framework \
|
||||
-output sherpa_onnx.xcframework
|
||||
|
||||
cd sherpa_onnx.xcframework
|
||||
echo "PWD: $PWD"
|
||||
ls -lh
|
||||
echo "---"
|
||||
ls -lh */*
|
||||
|
||||
Reference in New Issue
Block a user