2
2
set -e
3
3
source " $( dirname " $0 " ) /build_utils.sh"
4
4
5
+ function to_bool() {
6
+ local arg=" $1 "
7
+ case " $( echo " $arg " | tr ' [:upper:]' ' [:lower:]' ) " in
8
+ [0-9]+)
9
+ if [ $arg -eq 0 ]; then
10
+ echo false
11
+ else
12
+ echo true
13
+ fi
14
+ ;;
15
+ n|no|f|false) echo false ;;
16
+ y|yes|t|true) echo true ;;
17
+ * )
18
+ if [ -n " $arg " ]; then
19
+ echo " warning: invalid boolean argument ('$arg '). Expected true or false" >&2
20
+ fi
21
+ echo false
22
+ ;;
23
+ esac ;
24
+ }
25
+
26
+ BUILD_CATALYST=$( to_bool ${BUILD_CATALYST:= true} )
27
+ BUILD_IPHONE=$( to_bool ${BUILD_IPHONE:= true} )
28
+ BUILD_SIMULATOR=$( to_bool ${BUILD_SIMULATOR:= true} )
29
+ VERBOSE=$( to_bool ${VERBOSE:= false} )
30
+
31
+ for arg in $@ ; do
32
+ case $arg in
33
+ --catalyst|--maccatalyst) BUILD_CATALYST=true ;;
34
+ --no-catalyst|--no-maccatalyst) BUILD_CATALYST=false ;;
35
+ --sim|--simulator) BUILD_SIMULATOR=true ;;
36
+ --no-sim|--no-simulator) BUILD_SIMULATOR=false ;;
37
+ --iphone|--device) BUILD_IPHONE=true ;;
38
+ --no-iphone|--no-device) BUILD_IPHONE=false ;;
39
+ --verbose|-v) VERBOSE=true ;;
40
+ * ) ;;
41
+ esac
42
+ done
43
+
44
+ QUIET=
45
+ if ! $VERBOSE ; then
46
+ QUIET=-quiet
47
+ fi
48
+
5
49
DEV_TEAM=${DEVELOPMENT_TEAM:- }
6
50
DIST=$( PWD) /dist
7
51
mkdir -p $DIST
@@ -12,24 +56,29 @@ checkpoint "Cleanup NativeScript"
12
56
xcodebuild -project v8ios.xcodeproj \
13
57
-target " NativeScript" \
14
58
-configuration Release clean \
15
- -quiet
59
+ $QUIET
60
+
16
61
62
+ if $BUILD_CATALYST ; then
17
63
checkpoint " Building NativeScript for Mac Catalyst"
18
64
xcodebuild archive -project v8ios.xcodeproj \
19
65
-scheme " NativeScript" \
20
66
-configuration Release \
21
67
-destination " platform=macOS,variant=Mac Catalyst" \
22
- -quiet \
68
+ $QUIET \
69
+ EXCLUDED_ARCHS=" x86_64" \
23
70
SKIP_INSTALL=NO \
24
71
-archivePath $DIST /intermediates/NativeScript.maccatalyst.xcarchive
72
+ fi
25
73
74
+ if $BUILD_SIMULATOR ; then
26
75
# checkpoint "Building for x86_64 iphone simulator"
27
76
# xcodebuild archive -project v8ios.xcodeproj \
28
77
# -scheme "NativeScript" \
29
78
# -configuration Release \
30
79
# -arch x86_64 \
31
80
# -sdk iphonesimulator \
32
- # -quiet \
81
+ # $QUIET \
33
82
# DEVELOPMENT_TEAM=$DEV_TEAM \
34
83
# SKIP_INSTALL=NO \
35
84
# -archivePath $DIST/NativeScript.x86_64-iphonesimulator.xcarchive
@@ -40,7 +89,7 @@ xcodebuild archive -project v8ios.xcodeproj \
40
89
# -configuration Release \
41
90
# -arch arm64 \
42
91
# -sdk iphonesimulator \
43
- # -quiet \
92
+ # $QUIET \
44
93
# DEVELOPMENT_TEAM=$DEV_TEAM \
45
94
# SKIP_INSTALL=NO \
46
95
# -archivePath $DIST/NativeScript.arm64-iphonesimulator.xcarchive
@@ -51,19 +100,21 @@ xcodebuild archive -project v8ios.xcodeproj \
51
100
-configuration Release \
52
101
-destination " generic/platform=iOS Simulator" \
53
102
-sdk iphonesimulator \
54
- -quiet \
103
+ $QUIET \
55
104
EXCLUDED_ARCHS=" i386" \
56
105
DEVELOPMENT_TEAM=$DEV_TEAM \
57
106
SKIP_INSTALL=NO \
58
107
-archivePath $DIST /intermediates/NativeScript.iphonesimulator.xcarchive
108
+ fi
59
109
110
+ if $BUILD_IPHONE ; then
60
111
checkpoint " Building NativeScript for ARM64 device"
61
112
xcodebuild archive -project v8ios.xcodeproj \
62
113
-scheme " NativeScript" \
63
114
-configuration Release \
64
115
-destination " generic/platform=iOS" \
65
116
-sdk iphoneos \
66
- -quiet \
117
+ $QUIET \
67
118
EXCLUDED_ARCHS=" armv7" \
68
119
DEVELOPMENT_TEAM=$DEV_TEAM \
69
120
SKIP_INSTALL=NO \
@@ -83,18 +134,28 @@ xcodebuild archive -project v8ios.xcodeproj \
83
134
# "$DIST/NativeScript.arm64-iphonesimulator.xcarchive/Products/Library/Frameworks/NativeScript.framework/NativeScript" \
84
135
# -output \
85
136
# "$DIST/NativeScript.iphonesimulator.xcarchive/Products/Library/Frameworks/NativeScript.framework/NativeScript"
137
+ fi
138
+
139
+ XCFRAMEWORKS=()
140
+ if $BUILD_CATALYST ; then
141
+ XCFRAMEWORKS+=( -framework " $DIST /intermediates/NativeScript.maccatalyst.xcarchive/Products/Library/Frameworks/NativeScript.framework" \
142
+ -debug-symbols " $DIST /intermediates/NativeScript.maccatalyst.xcarchive/dSYMs/NativeScript.framework.dSYM" )
143
+ fi
144
+
145
+ if $BUILD_SIMULATOR ; then
146
+ XCFRAMEWORKS+=( -framework " $DIST /intermediates/NativeScript.iphonesimulator.xcarchive/Products/Library/Frameworks/NativeScript.framework" \
147
+ -debug-symbols " $DIST /intermediates/NativeScript.iphonesimulator.xcarchive/dSYMs/NativeScript.framework.dSYM" )
148
+ fi
149
+
150
+ if $BUILD_IPHONE ; then
151
+ XCFRAMEWORKS+=( -framework " $DIST /intermediates/NativeScript.iphoneos.xcarchive/Products/Library/Frameworks/NativeScript.framework" \
152
+ -debug-symbols " $DIST /intermediates/NativeScript.iphoneos.xcarchive/dSYMs/NativeScript.framework.dSYM" )
153
+ fi
86
154
87
155
checkpoint " Creating NativeScript.xcframework"
88
156
OUTPUT_DIR=" $DIST /NativeScript.xcframework"
89
157
rm -rf $OUTPUT_DIR
90
- xcodebuild -create-xcframework \
91
- -framework " $DIST /intermediates/NativeScript.maccatalyst.xcarchive/Products/Library/Frameworks/NativeScript.framework" \
92
- -debug-symbols " $DIST /intermediates/NativeScript.maccatalyst.xcarchive/dSYMs/NativeScript.framework.dSYM" \
93
- -framework " $DIST /intermediates/NativeScript.iphonesimulator.xcarchive/Products/Library/Frameworks/NativeScript.framework" \
94
- -debug-symbols " $DIST /intermediates/NativeScript.iphonesimulator.xcarchive/dSYMs/NativeScript.framework.dSYM" \
95
- -framework " $DIST /intermediates/NativeScript.iphoneos.xcarchive/Products/Library/Frameworks/NativeScript.framework" \
96
- -debug-symbols " $DIST /intermediates/NativeScript.iphoneos.xcarchive/dSYMs/NativeScript.framework.dSYM" \
97
- -output " $OUTPUT_DIR "
158
+ xcodebuild -create-xcframework ${XCFRAMEWORKS[@]} -output " $OUTPUT_DIR "
98
159
99
160
rm -rf " $DIST /intermediates"
100
161
@@ -115,4 +176,4 @@ rm -rf "$DIST/intermediates"
115
176
# rm -rf "$DIST/NativeScript.x86_64-iphonesimulator.xcarchive"
116
177
# rm -rf "$DIST/NativeScript.arm64-iphonesimulator.xcarchive"
117
178
# rm -rf "$DIST/NativeScript.iphonesimulator.xcarchive"
118
- # rm -rf "$DIST/NativeScript.iphoneos.xcarchive"
179
+ # rm -rf "$DIST/NativeScript.iphoneos.xcarchive"
0 commit comments