Index: third_party/protobuf/csharp/build_tools.sh |
diff --git a/third_party/protobuf/csharp/build_tools.sh b/third_party/protobuf/csharp/build_tools.sh |
new file mode 100755 |
index 0000000000000000000000000000000000000000..182c5c5c82eab8c0b70c4b975d6c245afb542776 |
--- /dev/null |
+++ b/third_party/protobuf/csharp/build_tools.sh |
@@ -0,0 +1,52 @@ |
+#!/bin/bash |
+ |
+if [ $# -ne 1 ]; then |
+ cat <<EOF |
+Usage: $0 <VERSION_NUMBER> |
+ |
+Example: |
+ $ $0 3.0.0 |
+ |
+This script will download pre-built protoc binaries from maven repository and |
+create the Google.Protobuf.Tools package. Well-known type .proto files will also |
+be included. |
+EOF |
+ exit 1 |
+fi |
+ |
+VERSION_NUMBER=$1 |
+# <directory name> <binary file name> pairs. |
+declare -a FILE_NAMES=( \ |
+ windows_x86 windows-x86_32.exe \ |
+ windows_x64 windows-x86_64.exe \ |
+ macosx_x86 osx-x86_32.exe \ |
+ macosx_x64 osx-x86_64.exe \ |
+ linux_x86 linux-x86_32.exe \ |
+ linux_x64 linux-x86_64.exe \ |
+) |
+ |
+set -e |
+ |
+mkdir -p protoc |
+# Create a zip file for each binary. |
+for((i=0;i<${#FILE_NAMES[@]};i+=2));do |
+ DIR_NAME=${FILE_NAMES[$i]} |
+ mkdir -p protoc/$DIR_NAME |
+ |
+ if [ ${DIR_NAME:0:3} = "win" ]; then |
+ TARGET_BINARY="protoc.exe" |
+ else |
+ TARGET_BINARY="protoc" |
+ fi |
+ |
+ BINARY_NAME=${FILE_NAMES[$(($i+1))]} |
+ BINARY_URL=http://repo1.maven.org/maven2/com/google/protobuf/protoc/${VERSION_NUMBER}/protoc-${VERSION_NUMBER}-${BINARY_NAME} |
+ |
+ if ! wget ${BINARY_URL} -O protoc/$DIR_NAME/$TARGET_BINARY &> /dev/null; then |
+ echo "[ERROR] Failed to download ${BINARY_URL}" >&2 |
+ echo "[ERROR] Skipped $protoc-${VERSION_NAME}-${DIR_NAME}" >&2 |
+ continue |
+ fi |
+done |
+ |
+nuget pack Google.Protobuf.Tools.nuspec |