2021-05-04 10:19:22 -07:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
2021-08-06 15:53:14 -07:00
|
|
|
set -ex
|
2021-05-04 10:19:22 -07:00
|
|
|
|
2022-08-10 22:51:29 -07:00
|
|
|
cd `dirname $0`/..
|
|
|
|
|
|
2022-09-19 09:50:19 -07:00
|
|
|
if [[ -z "${PROTOC}" ]]; then
|
|
|
|
|
PROTOC=$(pwd)/protoc
|
|
|
|
|
fi
|
2022-08-10 22:51:29 -07:00
|
|
|
if [ ! -f $PROTOC ]; then
|
2023-02-02 15:53:04 -08:00
|
|
|
${BAZEL:-bazel} $BAZEL_STARTUP_FLAGS build -c opt //:protoc $BAZEL_FLAGS
|
2022-08-10 22:51:29 -07:00
|
|
|
PROTOC=$(pwd)/bazel-bin/protoc
|
2021-05-12 10:42:16 -07:00
|
|
|
fi
|
|
|
|
|
|
2022-08-10 22:51:29 -07:00
|
|
|
if [[ -d php/tmp && -z $(find php/tests/proto $PROTOC -newer php/tmp) ]]; then
|
2021-05-04 10:19:22 -07:00
|
|
|
# Generated protos are already present and up to date, so we can skip protoc.
|
|
|
|
|
#
|
|
|
|
|
# Protoc is very fast, but sometimes it is not available (like if we haven't
|
|
|
|
|
# built it in Docker). Skipping it helps us proceed in this case.
|
|
|
|
|
echo "Test protos are up-to-date, skipping protoc."
|
|
|
|
|
exit 0
|
|
|
|
|
fi
|
|
|
|
|
|
2022-08-10 22:51:29 -07:00
|
|
|
rm -rf php/tmp
|
|
|
|
|
mkdir -p php/tmp
|
2021-05-04 10:19:22 -07:00
|
|
|
|
2021-05-12 10:42:16 -07:00
|
|
|
find php/tests/proto -type f -name "*.proto"| xargs $PROTOC --php_out=php/tmp -Isrc -Iphp/tests
|
2021-05-04 10:19:22 -07:00
|
|
|
|
2026-08-12 06:42:16 -07:00
|
|
|
# Needed because any test proto importing json_options / json_enumvalue_options
|
|
|
|
|
# will invoke \GPBMetadata\Google\Protobuf\JsonOptions::initOnce() in its
|
|
|
|
|
# generated metadata class.
|
|
|
|
|
JSON_OPTIONS_FILES="src/google/protobuf/json_options.proto \
|
|
|
|
|
src/google/protobuf/json_enumvalue_options.proto"
|
|
|
|
|
$PROTOC --php_out=php/tmp -Isrc -Iphp/tests $JSON_OPTIONS_FILES
|
|
|
|
|
|
2021-05-04 10:19:22 -07:00
|
|
|
if [ "$1" = "--aggregate_metadata" ]; then
|
|
|
|
|
# Overwrite some of the files to use aggregation.
|
|
|
|
|
AGGREGATED_FILES="tests/proto/test.proto tests/proto/test_include.proto tests/proto/test_import_descriptor_proto.proto"
|
2021-05-12 10:42:16 -07:00
|
|
|
$PROTOC --php_out=aggregate_metadata=foo#bar:php/tmp -Isrc -Iphp/tests $AGGREGATED_FILES
|
2021-05-04 10:19:22 -07:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "Generated test protos from tests/proto -> tmp"
|