xref: /aosp_15_r20/external/protobuf/csharp/build_tools.sh (revision 1b3f573f81763fcece89efc2b6a5209149e44ab8)
1*1b3f573fSAndroid Build Coastguard Worker#!/bin/bash
2*1b3f573fSAndroid Build Coastguard Worker
3*1b3f573fSAndroid Build Coastguard Workerif [ $# -ne 1 ]; then
4*1b3f573fSAndroid Build Coastguard Worker  cat <<EOF
5*1b3f573fSAndroid Build Coastguard WorkerUsage: $0 <VERSION_NUMBER>
6*1b3f573fSAndroid Build Coastguard Worker
7*1b3f573fSAndroid Build Coastguard WorkerExample:
8*1b3f573fSAndroid Build Coastguard Worker  $ $0 3.0.0
9*1b3f573fSAndroid Build Coastguard Worker
10*1b3f573fSAndroid Build Coastguard WorkerThis script will download pre-built protoc binaries from maven repository and
11*1b3f573fSAndroid Build Coastguard Workercreate the Google.Protobuf.Tools package. Well-known type .proto files will also
12*1b3f573fSAndroid Build Coastguard Workerbe included.
13*1b3f573fSAndroid Build Coastguard WorkerEOF
14*1b3f573fSAndroid Build Coastguard Worker  exit 1
15*1b3f573fSAndroid Build Coastguard Workerfi
16*1b3f573fSAndroid Build Coastguard Worker
17*1b3f573fSAndroid Build Coastguard WorkerVERSION_NUMBER=$1
18*1b3f573fSAndroid Build Coastguard Worker# <directory name> <binary file name> pairs.
19*1b3f573fSAndroid Build Coastguard Workerdeclare -a FILE_NAMES=(          \
20*1b3f573fSAndroid Build Coastguard Worker  windows_x86 windows-x86_32.exe \
21*1b3f573fSAndroid Build Coastguard Worker  windows_x64 windows-x86_64.exe \
22*1b3f573fSAndroid Build Coastguard Worker  macosx_x64  osx-x86_64.exe     \
23*1b3f573fSAndroid Build Coastguard Worker  linux_x86   linux-x86_32.exe   \
24*1b3f573fSAndroid Build Coastguard Worker  linux_x64   linux-x86_64.exe   \
25*1b3f573fSAndroid Build Coastguard Worker)
26*1b3f573fSAndroid Build Coastguard Worker
27*1b3f573fSAndroid Build Coastguard Workerset -e
28*1b3f573fSAndroid Build Coastguard Worker
29*1b3f573fSAndroid Build Coastguard Workermkdir -p protoc
30*1b3f573fSAndroid Build Coastguard Worker# Create a zip file for each binary.
31*1b3f573fSAndroid Build Coastguard Workerfor((i=0;i<${#FILE_NAMES[@]};i+=2));do
32*1b3f573fSAndroid Build Coastguard Worker  DIR_NAME=${FILE_NAMES[$i]}
33*1b3f573fSAndroid Build Coastguard Worker  mkdir -p protoc/$DIR_NAME
34*1b3f573fSAndroid Build Coastguard Worker
35*1b3f573fSAndroid Build Coastguard Worker  if [ ${DIR_NAME:0:3} = "win" ]; then
36*1b3f573fSAndroid Build Coastguard Worker    TARGET_BINARY="protoc.exe"
37*1b3f573fSAndroid Build Coastguard Worker  else
38*1b3f573fSAndroid Build Coastguard Worker    TARGET_BINARY="protoc"
39*1b3f573fSAndroid Build Coastguard Worker  fi
40*1b3f573fSAndroid Build Coastguard Worker
41*1b3f573fSAndroid Build Coastguard Worker  BINARY_NAME=${FILE_NAMES[$(($i+1))]}
42*1b3f573fSAndroid Build Coastguard Worker  BINARY_URL=http://repo1.maven.org/maven2/com/google/protobuf/protoc/${VERSION_NUMBER}/protoc-${VERSION_NUMBER}-${BINARY_NAME}
43*1b3f573fSAndroid Build Coastguard Worker
44*1b3f573fSAndroid Build Coastguard Worker  if ! wget ${BINARY_URL} -O protoc/$DIR_NAME/$TARGET_BINARY &> /dev/null; then
45*1b3f573fSAndroid Build Coastguard Worker    echo "[ERROR] Failed to download ${BINARY_URL}" >&2
46*1b3f573fSAndroid Build Coastguard Worker    echo "[ERROR] Skipped $protoc-${VERSION_NAME}-${DIR_NAME}" >&2
47*1b3f573fSAndroid Build Coastguard Worker    continue
48*1b3f573fSAndroid Build Coastguard Worker  fi
49*1b3f573fSAndroid Build Coastguard Workerdone
50*1b3f573fSAndroid Build Coastguard Worker
51*1b3f573fSAndroid Build Coastguard Workernuget pack Google.Protobuf.Tools.nuspec
52