Newer
Older
#!/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"
framework_target="ios,iossimulator,macos"
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
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
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 $framework_target gitlab.com/elixxir/client/v4/bindings
message "Move framework..."
cd $working_dir
rm -rf "$frameworks_dir/Bindings.xcframework"
mv "$client_git_dir/Bindings.xcframework" "$frameworks_dir/"
message "Summary"
xcode_version=`xcodebuild -version`
summary="https://git.xx.network/elixxir/client/-/commit/$client_git_commit"
summary="$summary\n$(go version)"
summary="$summary\n${xcode_version/$'\n'/ }"
summary="$summary\ngomobile bind target: $framework_target"
echo "Update Bindings.xcframework"
echo $summary
echo $summary > "$frameworks_dir/Bindings.txt"