Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/sh
#=======================================
# Configuration
#=======================================
working_dir="$(pwd)"
temp_dir="$(dirname $(realpath $0))/.build-bindings"
client_git_url="https://gitlab.com/elixxir/client.git"
client_git_dir="$temp_dir/client"
client_git_commit="$1"
frameworks_dir="$(dirname $(realpath $0))/Frameworks"
#=======================================
# Helpers
#=======================================
message() {
local text=$1
echo ""
echo "\033[1;32m▶ ${text}\033[0m"
}
#=======================================
# Main script
#=======================================
set -e
if [ ! -n "$client_git_commit" ]; then
echo "Invalid option. Usage:"
echo " build-bindings.sh COMMIT_HASH - Build Bindings from provided commit"
exit 1
fi
message "Go version..."
go version
if [ ! -d "$client_git_dir" ]; then
message "Cloning client repo..."
git clone $client_git_url $client_git_dir
else
message "Updating client repo..."
cd $client_git_dir
git reset --hard
git fetch origin
cd $working_dir
fi
message "Checkout commit $client_git_commit..."
cd $client_git_dir
git switch --detach $client_git_commit
git reset --hard
message "Build client..."
go mod tidy
rm -rf vendor/
go build ./...
message "Make Bindings.xcframework..."
go get golang.org/x/mobile/bind
go install golang.org/x/mobile/cmd/gomobile@latest
gomobile init
gomobile bind -target ios,iossimulator,macos gitlab.com/elixxir/client/bindings
message "Move framework..."
cd $working_dir
rm -rf "$frameworks_dir/Bindings.xcframework"
mv "$client_git_dir/Bindings.xcframework" "$frameworks_dir/"
message "Done."