diff options
author | cyBerta <cyberta@riseup.net> | 2021-07-01 17:03:49 +0200 |
---|---|---|
committer | cyBerta <cyberta@riseup.net> | 2021-07-21 22:02:24 +0200 |
commit | 8acb6f12e1e870c171d5b520cc9f58695b2eed8b (patch) | |
tree | b46f0f6f9f1ce5cd8e80f029d9ea94c9aa9a05b6 /go | |
parent | 9687a96f2608be215c6ddcc22f2ecfe6a889093a (diff) |
remove snowflake submodule
Diffstat (limited to 'go')
-rwxr-xr-x | go/android_build_golib.sh | 157 | ||||
m--------- | go/src/github.com/cyBerta/snowflake | 0 |
2 files changed, 157 insertions, 0 deletions
diff --git a/go/android_build_golib.sh b/go/android_build_golib.sh new file mode 100755 index 00000000..a54a42af --- /dev/null +++ b/go/android_build_golib.sh @@ -0,0 +1,157 @@ +#!/bin/bash + +# Copyright (C) 2016 Andrew Jiang (TunnelBear Inc.) +# Convenience script for generating shapeshifter-dispatcher binaries for Android devices +# adapted for Bitmask by cyberta + +BUILD_LIBRARY="false" +BUILD_SHAPESHIFTER_DISPATCHER="false" +BUILD_SNOWFLAKE="false" + +function quit { + echo "$1." + exit 1 +} + +if [[ "$1" == "removeAll" ]]; then + echo "removing golang, sources and generated files" + for folder in /tmp/android-toolchain-*; do + if [[ -d $folder ]]; then + rm -rf $folder + fi + done + if [[ -d "./out" ]]; then + rm -rf ./out + fi + + if [[ -d "./bin" ]]; then + rm -rf ./bin + fi + + if [[ -d "./golang" ]]; then + rm -rf ./golang + fi + + if [[ -d "./src" ]]; then + rm -rf ./src + fi + echo "Done!" + exit 0 + +elif [[ "$1" == "clean" ]]; then + echo "Cleaning up..." + for folder in /tmp/android-toolchain-*; do + if [[ -d $folder ]]; then + rm -rf $folder + fi + done + if [[ -d "./out" ]]; then + rm -rf ./out + fi + + if [[ -d "./bin" ]]; then + rm -rf ./bin + fi + echo "Done!" + exit 0 + +elif [[ "$1" == "shapeshifterlib" ]]; then + BUILD_LIBRARY="true" +elif [[ "$1" == "shapeshifter-dispatcher" ]]; then + BUILD_SHAPESHIFTER_DISPATCHER="true" +elif [[ "$1" == "snowflake-client" ]]; then + BUILD_SNOWFLAKE="true" + echo "BUILD_SNOWFLAKE!" +fi + + +if [ -z $ANDROID_NDK_HOME ]; then + echo "Android NDK path not specified!" + echo "Please set \$ANDROID_NDK_HOME before starting this script!" + exit 1; +fi + +if [[ ! -f ./bin/gomobile && $BUILD_LIBRARY == true ]]; then + echo "gomobile not installed" + echo please run "install_go.sh first" + exit 1 +fi + +# Our targets are x86, x86_64, armeabi, armeabi-v7a, armv8; +# To remove targets, simply delete them from the bracket. +# NOTE: We are only currently shipping the armeabi-v7a binary +# on Android, for space reasons. +targets=(386 x86_64 armv7 arm64) +export GOOS=android + +for arch in ${targets[@]}; do + # Initialize variables + go_arch=$arch + ndk_arch=$arch + ndk_platform="android-16" + suffix=$arch + + if [ "$arch" = "386" ]; then + export CGO_ENABLED=1 + ndk_arch="x86" + suffix="x86" + binary="i686-linux-android-gcc" + elif [ "$arch" = "x86_64" ]; then + ndk_platform="android-21" + ndk_arch="x86_64" + suffix="x86_64" + binary="x86_64-linux-android-gcc" + elif [ "$arch" = "armv5" ]; then + export GOARM=5 + export CGO_ENABLED=1 + go_arch="arm" + ndk_arch="arm" + suffix="armeabi" + binary="arm-linux-androideabi-gcc" + elif [ "$arch" = "armv7" ]; then + export GOARM=7 + export CGO_ENABLED=1 + go_arch="arm" + ndk_arch="arm" + suffix="armeabi-v7a" + binary="arm-linux-androideabi-gcc" + elif [ "$arch" = "arm64" ]; then + suffix="arm64-v8a" + ndk_platform="android-21" + binary="aarch64-linux-android-gcc" + elif [ "$arch" = "mips" ]; then + binary="mipsel-linux-android-gcc" + fi + export GOARCH=${go_arch} + export GOPATH=`pwd` + export NDK_TOOLCHAIN=/tmp/android-toolchain-${ndk_arch} + + # Only generate toolchain if it does not already exist + if [ ! -d $NDK_TOOLCHAIN ]; then + echo "Generating ${suffix} toolchain..." + $ANDROID_NDK_HOME/build/tools/make-standalone-toolchain.sh \ + --arch=${ndk_arch} --platform=${ndk_platform} --install-dir=$NDK_TOOLCHAIN || quit "Failed to generate toolchain" + echo "Toolchain generated!" + fi + + export CC=$NDK_TOOLCHAIN/bin/clang + echo "Starting compilation for $suffix..." + + + # if [[ BUILD_SNOWFLAKE == "true" ]]; then + echo "cross compiling snowflake-client executable..." + pwd + ./golang/go/bin/go get github.com/cyBerta/snowflake/client + ./golang/go/bin/go build -buildmode=pie -ldflags '-w -s -extldflags=-pie' -o ./out/${suffix}/piesnowflakeclient github.com/cyBerta/snowflake/client || quit "Failed to cross-compile shapeshifter-dispatcher" + # elif [[ BUILD_LIBRARY == "true" ]]; then + # echo "cross compiling shapeshifter lib..." + # ./bin/gomobile bind -target=android -o ./lib/shapeshifter.aar se.leap.bitmaskclient/shapeshifter/ + # cp lib/shapeshifter* ../shapeshifter/. + # #./android_build_shapeshifter_lib.sh || quit "Failed to cross-compile shapeshifter-dispatcher-library" + # elif [[ BUILD_SHAPESHIFTER_DISPATCHER == "true" ]]; then + # echo "cross compiling shapeshifter-dispatcher executable..." + # ./golang/go/bin/go build -buildmode=pie -ldflags '-w -s -extldflags=-pie' -o ./out/${suffix}/piedispatcher github.com/OperatorFoundation/shapeshifter-dispatcher/shapeshifter-dispatcher || quit "Failed to cross-compile shapeshifter-dispatcher" + # fi + echo "Build succeeded!" + +done
\ No newline at end of file diff --git a/go/src/github.com/cyBerta/snowflake b/go/src/github.com/cyBerta/snowflake new file mode 160000 +Subproject af6e2c30e1a6aacc6e7adf9a31df0a387891cc3 |