5
5
# gradle/src/main/groovy/net/zhuoweizhang/swiftandroid/SwiftAndroidPlugin.groovy
6
6
#
7
7
8
+ export ANDROID_HOME=" ${ANDROID_HOME?-Please export ANDROID_HOME} "
9
+ export JAVA_HOME=" ${JAVA_HOME?-Please export JAVA_HOME} "
10
+
8
11
SWIFT_INSTALL=" $( dirname" $PWD " ) "
9
- SRC_SCRIPTS_DIR=" $PWD /$( dirname$0 ) "
10
- UNAME=` uname`
12
+ UNAME=" $( uname) "
11
13
12
14
SCRIPTS=~ /.gradle/scripts
13
15
14
- export JAVA_HOME=" ${JAVA_HOME?-Please export JAVA_HOME} "
15
-
16
16
cat<< DOC &&
17
17
18
18
Running:$SWIFT_INSTALL /swift-android-gradle/$0
@@ -118,6 +118,9 @@ SWIFT_INSTALL="$SWIFT_INSTALL"
118
118
export PATH="\$ SWIFT_INSTALL/usr/bin:\$ PATH"
119
119
export SWIFT_EXEC=~/.gradle/scripts/swiftc-android.sh
120
120
121
+ # Uncomment if you would like to work with packages containing prebuilt binaries
122
+ #"\$ SWIFT_INSTALL"/swift-android-gradle/src/main/scripts/collect-dependencies.py
123
+
121
124
swift build "\$ @"
122
125
123
126
SCRIPT
@@ -128,8 +131,6 @@ cat <<SCRIPT >swiftc-android.sh &&
128
131
# Substitutes in for swiftc to compile package and build Android sources
129
132
#
130
133
131
- PLATFORM=\$ (uname)
132
-
133
134
SWIFT_INSTALL="$SWIFT_INSTALL "
134
135
export PATH="\$ SWIFT_INSTALL/usr/$UNAME :\$ SWIFT_INSTALL/usr/bin:\$ PATH"
135
136
141
142
# remove whatever target SwiftPM has supplied
142
143
ARGS=\$ (echo "\$ *" | sed -E "s@-target [^[:space:]]+ -sdk /[^[:space:]]* (-F /[^[:space:]]* )?@@")
143
144
144
- if [[\$ PLATFORM == "Darwin" ]]; then
145
+ if [[" $UNAME " == "Darwin" ]]; then
145
146
# xctest
146
147
if [[ "\$ *" =~ "-Xlinker -bundle" ]]; then
147
148
xctest_bundle=\$ (echo\$ ARGS | grep -o\$ (pwd)'[^[:space:]]*xctest')
@@ -164,9 +165,9 @@ if [[ \$PLATFORM == "Darwin" ]]; then
164
165
fi
165
166
166
167
# for compatability with V3 Package.swift for now
167
- if [[ "\$ ARGS" =~ " -emit-executable " && "\$ ARGS" =~ ".so " ]]; then
168
- ARGS=\$ (echo "\$ ARGS" | sed -E "s@ (-module-name [^[:space:]]+ )?-emit-executable @ -emit-library @")
169
- fi
168
+ # if [[ "\$ ARGS" =~ " -emit-executable " && "\$ ARGS" =~ ".so " ]]; then
169
+ # ARGS=\$ (echo "\$ ARGS" | sed -E "s@ (-module-name [^[:space:]]+ )?-emit-executable @ -emit-library @")
170
+ # fi
170
171
171
172
# compile using toolchain's swiftc with Android target
172
173
swiftc -target armv7-none-linux-androideabi -sdk "\$ SWIFT_INSTALL/ndk-android-21"\\
@@ -185,21 +186,20 @@ DESTINATION="\$1"
185
186
SWIFT_INSTALL="$SWIFT_INSTALL "
186
187
187
188
mkdir -p "\$ DESTINATION" && cd "\$ DESTINATION" &&
188
- rsync -u "\$ SWIFT_INSTALL"/usr/lib/swift/android/*.so . &&
189
- rm -f *Unittest*
189
+ rsync -u "\$ SWIFT_INSTALL"/usr/lib/swift/android/*.so .
190
190
191
191
SCRIPT
192
192
193
193
cat<< SCRIPT >run-tests.sh &&
194
194
#!/bin/bash
195
+ #
196
+ # Builds test bundles and pushes them to the device and runs them
197
+ #
195
198
196
199
export SWIFT_INSTALL="$SWIFT_INSTALL "
197
- export PATH="\$ SWIFT_INSTALL/usr/bin:\$ PATH"
198
- ~/.gradle/scripts/run-tests.py
199
- SCRIPT
200
+ "\$ SWIFT_INSTALL"/swift-android-gradle/src/main/scripts/run-tests.py
200
201
201
- cp$SRC_SCRIPTS_DIR /collect-dependencies.py$SCRIPTS /&&
202
- cp$SRC_SCRIPTS_DIR /run-tests.py$SCRIPTS /&&
202
+ SCRIPT
203
203
204
204
chmod +x {generate-swift,swift-build,swiftc-android,copy-libraries,run-tests}.sh&&
205
205
echo Created:$SCRIPTS /{generate-swift,swift-build,swiftc-android,copy-libraries,run-tests}.sh&&