1
1
#! /bin/sh
2
+
3
+ set -e
4
+
2
5
if [ ! -n " $1 " ]; then
3
6
echo " Usage: $0 'debug' | 'release' 'source_dir' 'out_dir' ['prefix']"
4
7
exit 0
5
8
fi
6
9
7
- MODE=$1
8
- SOURCE_DIR=$2
9
- OUT_DIR=$3
10
- PREFIX=${4:- " " }
10
+ MODE=" $1 "
11
+ SOURCE_DIR=" $( realpath " $2 " ) "
12
+ mkdir -p " $( dirname " $3 " ) "
13
+ OUT_DIR=" $( realpath " $3 " ) "
14
+ PREFIX=" ${4:- " " } "
11
15
12
16
if [ -z " $PREFIX " ]; then
13
17
FRAMEWORK_NAME=" WebRTC"
@@ -67,7 +71,7 @@ PLATFORMS=(
67
71
# "xrOS-arm64-simulator:target_os=\"ios\" target_environment=\"xrsimulator\" target_cpu=\"arm64\" ios_deployment_target=\"2.2.0\""
68
72
)
69
73
70
- cd $SOURCE_DIR
74
+ cd " $SOURCE_DIR "
71
75
72
76
end_group
73
77
@@ -77,15 +81,15 @@ for platform_config in "${PLATFORMS[@]}"; do
77
81
78
82
start_group " Building $platform "
79
83
80
- gn gen $OUT_DIR /$platform --args=" $COMMON_ARGS $config " --ide=xcode
84
+ gn gen " $OUT_DIR /$platform " --args=" $COMMON_ARGS $config " --ide=xcode
81
85
82
86
if [[ $platform == * " macOS" * ]]; then
83
87
build_target=" mac_framework_bundle"
84
88
else
85
89
build_target=" ios_framework_bundle"
86
90
fi
87
91
88
- ninja -C $OUT_DIR /$platform $build_target -j 10 --quiet
92
+ ninja -C " $OUT_DIR /$platform " " $build_target " -j 10 --quiet
89
93
if [ $? -ne 0 ]; then
90
94
exit 1
91
95
fi
94
98
95
99
start_group " Creating universal binaries (x64 + arm64)"
96
100
97
- rm -rf $OUT_DIR /* -lib $OUT_DIR /$FRAMEWORK_NAME .*
98
-
99
- # mkdir -p $OUT_DIR/macOS-lib
100
- # cp -R $OUT_DIR/macOS-x64/$FRAMEWORK_NAME.framework $OUT_DIR/macOS-lib/$FRAMEWORK_NAME.framework
101
- # lipo -create -output $OUT_DIR/macOS-lib/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME $OUT_DIR/macOS-arm64/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME $OUT_DIR/macOS-x64/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME
101
+ # mkdir -p "$OUT_DIR/macOS-lib"
102
+ # cp -R "$OUT_DIR/macOS-x64/$FRAMEWORK_NAME.framework" "$OUT_DIR/macOS-lib/$FRAMEWORK_NAME.framework"
103
+ # lipo -create -output "$OUT_DIR/macOS-lib/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME" "$OUT_DIR/macOS-arm64/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME" "$OUT_DIR/macOS-x64/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME"
102
104
103
- # mkdir -p $OUT_DIR/catalyst-lib
104
- # cp -R $OUT_DIR/catalyst-arm64/$FRAMEWORK_NAME.framework $OUT_DIR/catalyst-lib/$FRAMEWORK_NAME.framework
105
- # lipo -create -output $OUT_DIR/catalyst-lib/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME $OUT_DIR/catalyst-arm64/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME $OUT_DIR/catalyst-x64/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME
105
+ # mkdir -p " $OUT_DIR/catalyst-lib"
106
+ # cp -R " $OUT_DIR/catalyst-arm64/$FRAMEWORK_NAME.framework" " $OUT_DIR/catalyst-lib/$FRAMEWORK_NAME.framework"
107
+ # lipo -create -output " $OUT_DIR/catalyst-lib/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME" " $OUT_DIR/catalyst-arm64/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME" " $OUT_DIR/catalyst-x64/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME"
106
108
107
- mkdir -p $OUT_DIR /iOS-device-lib
108
- cp -R $OUT_DIR /iOS-arm64-device/$FRAMEWORK_NAME .framework $OUT_DIR /iOS-device-lib/$FRAMEWORK_NAME .framework
109
- lipo -create -output $OUT_DIR /iOS-device-lib/$FRAMEWORK_NAME .framework/$FRAMEWORK_NAME $OUT_DIR /iOS-arm64-device/$FRAMEWORK_NAME .framework/$FRAMEWORK_NAME
109
+ mkdir -p " $OUT_DIR /iOS-device-lib"
110
+ cp -R " $OUT_DIR /iOS-arm64-device/$FRAMEWORK_NAME .framework" " $OUT_DIR /iOS-device-lib/$FRAMEWORK_NAME .framework"
111
+ lipo -create -output " $OUT_DIR /iOS-device-lib/$FRAMEWORK_NAME .framework/$FRAMEWORK_NAME " " $OUT_DIR /iOS-arm64-device/$FRAMEWORK_NAME .framework/$FRAMEWORK_NAME "
110
112
111
- # mkdir -p $OUT_DIR/iOS-simulator-lib
112
- # cp -R $OUT_DIR/iOS-arm64-simulator/$FRAMEWORK_NAME.framework $OUT_DIR/iOS-simulator-lib/$FRAMEWORK_NAME.framework
113
- # lipo -create -output $OUT_DIR/iOS-simulator-lib/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME $OUT_DIR/iOS-arm64-simulator/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME $OUT_DIR/iOS-x64-simulator/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME
113
+ # mkdir -p " $OUT_DIR/iOS-simulator-lib"
114
+ # cp -R " $OUT_DIR/iOS-arm64-simulator/$FRAMEWORK_NAME.framework" " $OUT_DIR/iOS-simulator-lib/$FRAMEWORK_NAME.framework"
115
+ # lipo -create -output " $OUT_DIR/iOS-simulator-lib/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME" " $OUT_DIR/iOS-arm64-simulator/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME" " $OUT_DIR/iOS-x64-simulator/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME"
114
116
115
117
end_group
116
118
117
119
start_group " Creating XCFramework"
118
120
119
121
xcodebuild -create-xcframework \
120
- -framework $OUT_DIR /iOS-device-lib/$FRAMEWORK_NAME .framework \
121
- -output $OUT_DIR /$FRAMEWORK_NAME .xcframework
122
+ -framework " $OUT_DIR /iOS-device-lib/$FRAMEWORK_NAME .framework" \
123
+ -output " $OUT_DIR /$FRAMEWORK_NAME .xcframework"
122
124
123
125
end_group
124
126
125
127
start_group " Post-processing XCFramework"
126
128
127
- cp $SOURCE_DIR / LICENSE $OUT_DIR /$FRAMEWORK_NAME .xcframework/
129
+ cp LICENSE " $OUT_DIR /$FRAMEWORK_NAME .xcframework/"
128
130
129
- # cd $OUT_DIR/$FRAMEWORK_NAME.xcframework/macos-arm64_x86_64/$FRAMEWORK_NAME.framework/
130
- # mv $FRAMEWORK_NAME Versions/A/$FRAMEWORK_NAME
131
- # ln -s Versions/Current/$FRAMEWORK_NAME $FRAMEWORK_NAME
131
+ # cd " $OUT_DIR/$FRAMEWORK_NAME.xcframework/macos-arm64_x86_64/$FRAMEWORK_NAME.framework/"
132
+ # mv " $FRAMEWORK_NAME" " Versions/A/$FRAMEWORK_NAME"
133
+ # ln -s " Versions/Current/$FRAMEWORK_NAME" " $FRAMEWORK_NAME"
132
134
133
- # cd $OUT_DIR/$FRAMEWORK_NAME.xcframework/ios-arm64_x86_64-maccatalyst/$FRAMEWORK_NAME.framework/
134
- # mv $FRAMEWORK_NAME Versions/A/$FRAMEWORK_NAME
135
- # ln -s Versions/Current/$FRAMEWORK_NAME $FRAMEWORK_NAME
135
+ # cd " $OUT_DIR/$FRAMEWORK_NAME.xcframework/ios-arm64_x86_64-maccatalyst/$FRAMEWORK_NAME.framework/"
136
+ # mv " $FRAMEWORK_NAME" " Versions/A/$FRAMEWORK_NAME"
137
+ # ln -s " Versions/Current/$FRAMEWORK_NAME" " $FRAMEWORK_NAME"
136
138
137
- cd $OUT_DIR
138
- zip --symlinks -9 -r $FRAMEWORK_NAME .xcframework.zip $FRAMEWORK_NAME .xcframework
139
+ cd " $OUT_DIR "
140
+ zip --symlinks -9 -r " $FRAMEWORK_NAME .xcframework.zip" " $FRAMEWORK_NAME .xcframework"
139
141
140
142
end_group
141
143
142
144
if [ " $CI " = " true" ]; then
143
- echo " framework_name=$FRAMEWORK_NAME " >> $GITHUB_OUTPUT
145
+ echo " framework_name=$FRAMEWORK_NAME " >> " $GITHUB_OUTPUT "
144
146
fi
0 commit comments