Skip to content
Snippets Groups Projects
Select Git revision
  • 2ff0cb4ea66bce2cdc40ce2f455457c94fa2d0a8
  • master default protected
  • v0
3 results

specifications.md

Blame
  • build-bindings.sh NaN GiB
    #!/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"
    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/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"