github.com/jhump/protoreflect@v1.16.0/internal/testprotos/make_protos.sh (about) 1 #!/usr/bin/env bash 2 3 set -e 4 5 cd $(dirname $0) 6 7 PROTOC_VERSION="26.1" 8 PROTOC_ARTIFACT_VERSION="26.1" 9 PROTOC_OS="$(uname -s)" 10 PROTOC_ARCH="$(uname -m)" 11 case "${PROTOC_OS}" in 12 Darwin) PROTOC_OS="osx" ;; 13 Linux) PROTOC_OS="linux" ;; 14 *) 15 echo "Invalid value for uname -s: ${PROTOC_OS}" >&2 16 exit 1 17 esac 18 19 # This is for macs with M1 chips. Precompiled binaries for osx/amd64 are not available for download, so for that case 20 # we download the x86_64 version instead. This will work as long as rosetta2 is installed. 21 if [ "$PROTOC_OS" = "osx" ] && [ "$PROTOC_ARCH" = "arm64" ]; then 22 PROTOC_ARCH="x86_64" 23 fi 24 25 PROTOC="${PWD}/protoc/bin/protoc" 26 27 if [[ "$(${PROTOC} --version 2>/dev/null)" != "libprotoc ${PROTOC_VERSION}" ]]; then 28 rm -rf ./protoc 29 mkdir -p protoc 30 curl -L "https://github.com/google/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_ARTIFACT_VERSION}-${PROTOC_OS}-${PROTOC_ARCH}.zip" > protoc/protoc.zip 31 cd ./protoc && unzip protoc.zip && cd .. 32 fi 33 34 go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.33.1-0.20240319125436-3039476726e4 35 go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2.0 36 go install github.com/jhump/protoreflect/desc/sourceinfo/cmd/protoc-gen-gosrcinfo 37 38 # Output directory will effectively be GOPATH/src. 39 outdir="." 40 ${PROTOC} "--go_out=paths=source_relative:$outdir" "--gosrcinfo_out=paths=source_relative,debug:$outdir" --experimental_editions -I. *.proto 41 ${PROTOC} "--go_out=paths=source_relative:$outdir" "--gosrcinfo_out=paths=source_relative,debug:$outdir" -I. nopkg/*.proto 42 ${PROTOC} "--go_out=paths=source_relative:$outdir" "--gosrcinfo_out=paths=source_relative,debug:$outdir" -I. pkg/*.proto 43 ${PROTOC} "--go_out=paths=source_relative:$outdir" "--gosrcinfo_out=paths=source_relative,debug:$outdir" -I. proto3_optional/desc_test_proto3_optional.proto 44 ${PROTOC} "--go_out=paths=source_relative:$outdir" "--go-grpc_out=paths=source_relative:$outdir" "--gosrcinfo_out=paths=source_relative,debug:$outdir" -I. grpc/*.proto 45 46 # And make descriptor set (with source info) for several files 47 ${PROTOC} --descriptor_set_out=./desc_test1.protoset --include_source_info --include_imports -I. desc_test1.proto 48 ${PROTOC} --descriptor_set_out=./desc_test_comments.protoset --include_source_info --include_imports -I. desc_test_comments.proto 49 ${PROTOC} --descriptor_set_out=./desc_test_complex.protoset -I. desc_test_complex.proto 50 ${PROTOC} --descriptor_set_out=./desc_test_complex_source_info.protoset --include_source_info --include_imports -I. desc_test_complex.proto 51 ${PROTOC} --descriptor_set_out=./desc_test_editions.protoset --experimental_editions -I. desc_test_editions.proto 52 ${PROTOC} --descriptor_set_out=./descriptor.protoset --include_source_info --include_imports -I./protoc/include/ google/protobuf/descriptor.proto 53 ${PROTOC} --descriptor_set_out=./duration.protoset -I./protoc/include/ google/protobuf/duration.proto 54 ${PROTOC} --descriptor_set_out=./proto3_optional/desc_test_proto3_optional.protoset --include_source_info --include_imports -I. proto3_optional/desc_test_proto3_optional.proto 55