Files
SwiftFFmpeg/scripts/build_framework.sh
2020-08-06 16:37:28 +08:00

86 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
PREFIX=$1
LIB_NAME=$2
LIB_VERSION=$3
LIB_FRAMEWORK=$PREFIX/framework/$LIB_NAME.framework
LIB_XCFRAMEWORK=$PREFIX/xcframework/$LIB_NAME.xcframework
# build framework
rm -rf $LIB_FRAMEWORK
mkdir -p $LIB_FRAMEWORK/Headers
cp -R $PREFIX/include/$LIB_NAME/ $LIB_FRAMEWORK/Headers
cp $PREFIX/lib/$LIB_NAME.a $LIB_FRAMEWORK/$LIB_NAME
cat > $LIB_FRAMEWORK/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>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$LIB_NAME</string>
<key>CFBundleIdentifier</key>
<string>org.ffmpeg.$LIB_NAME</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$LIB_NAME</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>$LIB_VERSION</string>
<key>CFBundleVersion</key>
<string>$LIB_VERSION</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
EOF
# build xcframework
rm -rf $LIB_XCFRAMEWORK
# xcodebuild \
# -create-xcframework \
# -framework $LIB_FRAMEWORK \
# -output $LIB_XCFRAMEWORK
#
# error: unable to find any specific architecture information in the binary at xxx
mkdir -p $LIB_XCFRAMEWORK/macos-x86_64
cp -R $LIB_FRAMEWORK $LIB_XCFRAMEWORK/macos-x86_64
cat > $LIB_XCFRAMEWORK/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>AvailableLibraries</key>
<array>
<dict>
<key>LibraryIdentifier</key>
<string>macos-x86_64</string>
<key>LibraryPath</key>
<string>$LIB_NAME.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>macos</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>
<key>XCFrameworkFormatVersion</key>
<string>1.0</string>
</dict>
</plist>
EOF