Skip to content

Commit 5c2db1e

Browse files
committed
build_nativescript.sh quality of life improvements
This adds some command line processing for build_nativescript.sh, so that messing with the scripts isn't strictly needed each time it's invoked during testing.
1 parent d2d3b65 commit 5c2db1e

File tree

1 file changed

+76
-15
lines changed

1 file changed

+76
-15
lines changed

Diff for: build_nativescript.sh

+76-15
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,50 @@
22
set -e
33
source "$(dirname "$0")/build_utils.sh"
44

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+
549
DEV_TEAM=${DEVELOPMENT_TEAM:-}
650
DIST=$(PWD)/dist
751
mkdir -p $DIST
@@ -12,24 +56,29 @@ checkpoint "Cleanup NativeScript"
1256
xcodebuild -project v8ios.xcodeproj \
1357
-target "NativeScript" \
1458
-configuration Release clean \
15-
-quiet
59+
$QUIET
60+
1661

62+
if $BUILD_CATALYST; then
1763
checkpoint "Building NativeScript for Mac Catalyst"
1864
xcodebuild archive -project v8ios.xcodeproj \
1965
-scheme "NativeScript" \
2066
-configuration Release \
2167
-destination "platform=macOS,variant=Mac Catalyst" \
22-
-quiet \
68+
$QUIET \
69+
EXCLUDED_ARCHS="x86_64" \
2370
SKIP_INSTALL=NO \
2471
-archivePath $DIST/intermediates/NativeScript.maccatalyst.xcarchive
72+
fi
2573

74+
if $BUILD_SIMULATOR; then
2675
# checkpoint "Building for x86_64 iphone simulator"
2776
# xcodebuild archive -project v8ios.xcodeproj \
2877
# -scheme "NativeScript" \
2978
# -configuration Release \
3079
# -arch x86_64 \
3180
# -sdk iphonesimulator \
32-
# -quiet \
81+
# $QUIET \
3382
# DEVELOPMENT_TEAM=$DEV_TEAM \
3483
# SKIP_INSTALL=NO \
3584
# -archivePath $DIST/NativeScript.x86_64-iphonesimulator.xcarchive
@@ -40,7 +89,7 @@ xcodebuild archive -project v8ios.xcodeproj \
4089
# -configuration Release \
4190
# -arch arm64 \
4291
# -sdk iphonesimulator \
43-
# -quiet \
92+
# $QUIET \
4493
# DEVELOPMENT_TEAM=$DEV_TEAM \
4594
# SKIP_INSTALL=NO \
4695
# -archivePath $DIST/NativeScript.arm64-iphonesimulator.xcarchive
@@ -51,19 +100,21 @@ xcodebuild archive -project v8ios.xcodeproj \
51100
-configuration Release \
52101
-destination "generic/platform=iOS Simulator" \
53102
-sdk iphonesimulator \
54-
-quiet \
103+
$QUIET \
55104
EXCLUDED_ARCHS="i386" \
56105
DEVELOPMENT_TEAM=$DEV_TEAM \
57106
SKIP_INSTALL=NO \
58107
-archivePath $DIST/intermediates/NativeScript.iphonesimulator.xcarchive
108+
fi
59109

110+
if $BUILD_IPHONE; then
60111
checkpoint "Building NativeScript for ARM64 device"
61112
xcodebuild archive -project v8ios.xcodeproj \
62113
-scheme "NativeScript" \
63114
-configuration Release \
64115
-destination "generic/platform=iOS" \
65116
-sdk iphoneos \
66-
-quiet \
117+
$QUIET \
67118
EXCLUDED_ARCHS="armv7" \
68119
DEVELOPMENT_TEAM=$DEV_TEAM \
69120
SKIP_INSTALL=NO \
@@ -83,18 +134,28 @@ xcodebuild archive -project v8ios.xcodeproj \
83134
# "$DIST/NativeScript.arm64-iphonesimulator.xcarchive/Products/Library/Frameworks/NativeScript.framework/NativeScript" \
84135
# -output \
85136
# "$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
86154

87155
checkpoint "Creating NativeScript.xcframework"
88156
OUTPUT_DIR="$DIST/NativeScript.xcframework"
89157
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"
98159

99160
rm -rf "$DIST/intermediates"
100161

@@ -115,4 +176,4 @@ rm -rf "$DIST/intermediates"
115176
# rm -rf "$DIST/NativeScript.x86_64-iphonesimulator.xcarchive"
116177
# rm -rf "$DIST/NativeScript.arm64-iphonesimulator.xcarchive"
117178
# rm -rf "$DIST/NativeScript.iphonesimulator.xcarchive"
118-
# rm -rf "$DIST/NativeScript.iphoneos.xcarchive"
179+
# rm -rf "$DIST/NativeScript.iphoneos.xcarchive"

0 commit comments

Comments
 (0)