From 6623ae0c96c6caa0339071104eacf13a57113cd4 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Mon, 29 Aug 2022 23:04:36 +0100 Subject: [PATCH] Add build-bindings.sh script --- .gitignore | 1 + build-bindings.sh | 71 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100755 build-bindings.sh diff --git a/.gitignore b/.gitignore index 3b298120..bc100019 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ DerivedData/ .swiftpm/config/registries.json .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata .netrc +/.build-bindings diff --git a/build-bindings.sh b/build-bindings.sh new file mode 100755 index 00000000..c307b05e --- /dev/null +++ b/build-bindings.sh @@ -0,0 +1,71 @@ +#!/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 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." -- GitLab