|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +set -e |
| 4 | + |
| 5 | +XCFRAMEWORK_DIR="./apple_xcframework" |
| 6 | + |
| 7 | +# buildStatic iphoneos -mios-version-min=15.0 arm64 |
| 8 | +buildStatic() |
| 9 | +{ |
| 10 | + echo "build for $1, $2, min version $3" |
| 11 | + |
| 12 | + local MIN_VERSION="-m$1-version-min=$3" |
| 13 | + make PP="xcrun --sdk $1 --toolchain $1 clang" \ |
| 14 | + CC="xcrun --sdk $1 --toolchain $1 clang" \ |
| 15 | + CFLAGS="-arch $2 $MIN_VERSION" \ |
| 16 | + LFLAGS="-arch $2 $MIN_VERSION -Wl,-Bsymbolic-functions" static |
| 17 | + |
| 18 | + local OUTPUT_DIR="$XCFRAMEWORK_DIR/$1-$2" |
| 19 | + mkdir -p $OUTPUT_DIR |
| 20 | + local OUTPUT_ARCH_FILE="$OUTPUT_DIR/libhev-task-system.a" |
| 21 | + |
| 22 | + libtool -static -o $OUTPUT_ARCH_FILE bin/libhev-task-system.a |
| 23 | + make clean |
| 24 | +} |
| 25 | + |
| 26 | +mergeStatic() |
| 27 | +{ |
| 28 | + echo "merge for $1, $2, $3" |
| 29 | + local FIRST_LIB_FILE="$XCFRAMEWORK_DIR/$1-$2/libhev-task-system.a" |
| 30 | + local SECOND_LIB_FILE="$XCFRAMEWORK_DIR/$1-$3/libhev-task-system.a" |
| 31 | + local OUTPUT_DIR="$XCFRAMEWORK_DIR/$1-$2-$3" |
| 32 | + mkdir -p $OUTPUT_DIR |
| 33 | + local OUTPUT_ARCH_FILE="$OUTPUT_DIR/libhev-task-system.a" |
| 34 | + lipo -create \ |
| 35 | + -arch $2 $FIRST_LIB_FILE \ |
| 36 | + -arch $3 $SECOND_LIB_FILE \ |
| 37 | + -output $OUTPUT_ARCH_FILE |
| 38 | +} |
| 39 | + |
| 40 | +rm -rf $XCFRAMEWORK_DIR |
| 41 | +rm -rf HevTaskSystem.xcframework |
| 42 | +mkdir $XCFRAMEWORK_DIR |
| 43 | + |
| 44 | +buildStatic iphoneos arm64 15.0 |
| 45 | +buildStatic iphonesimulator x86_64 15.0 |
| 46 | +buildStatic iphonesimulator arm64 15.0 |
| 47 | +mergeStatic iphonesimulator x86_64 arm64 |
| 48 | + |
| 49 | +# keep same with flutter |
| 50 | +buildStatic macosx x86_64 10.14 |
| 51 | +buildStatic macosx arm64 10.14 |
| 52 | +mergeStatic macosx x86_64 arm64 |
| 53 | + |
| 54 | +buildStatic appletvos arm64 17.0 |
| 55 | +buildStatic appletvsimulator x86_64 17.0 |
| 56 | +buildStatic appletvsimulator arm64 17.0 |
| 57 | +mergeStatic appletvsimulator x86_64 arm64 |
| 58 | + |
| 59 | +INCLUDE_DIR="$XCFRAMEWORK_DIR/include" |
| 60 | +mkdir -p $INCLUDE_DIR |
| 61 | +cp ./include/*.h $INCLUDE_DIR |
| 62 | +cp ./module.modulemap $INCLUDE_DIR |
| 63 | +xcodebuild -create-xcframework \ |
| 64 | + -library ./apple_xcframework/iphoneos-arm64/libhev-task-system.a -headers $INCLUDE_DIR \ |
| 65 | + -library ./apple_xcframework/iphonesimulator-x86_64-arm64/libhev-task-system.a -headers $INCLUDE_DIR \ |
| 66 | + -library ./apple_xcframework/macosx-x86_64-arm64/libhev-task-system.a -headers $INCLUDE_DIR \ |
| 67 | + -library ./apple_xcframework/appletvos-arm64/libhev-task-system.a -headers $INCLUDE_DIR \ |
| 68 | + -library ./apple_xcframework/appletvsimulator-x86_64-arm64/libhev-task-system.a -headers $INCLUDE_DIR \ |
| 69 | + -output ./HevTaskSystem.xcframework |
| 70 | + |
| 71 | +rm -rf ./apple_xcframework |
0 commit comments