aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorGravatar Vishal Powar <vishalpowar@google.com>2018-11-30 14:27:52 -0800
committerGravatar Vishal Powar <vishalpowar@google.com>2018-12-11 14:59:02 -0800
commit62027b7e14624283f758a7785a0a1347eda0a147 (patch)
tree76db8a6a8a5d3a86353a268f5eb3305e1f4c0523 /tools
parent9bd5b3778abbb2564544a69d9c99d3c87a3354eb (diff)
Changes add a script for generating C code and build rule for protobuf
protos All these changes need to go together to make sense - changes to use new version of upb in bazel - allowing includes in build target option - script for generating c code for protos - generated code for example build - adding changes for non-bazel builds - change sanity tests to ignore the generated files.
Diffstat (limited to 'tools')
-rwxr-xr-xtools/buildgen/generate_build_additions.sh1
-rwxr-xr-xtools/codegen/core/gen_upb_api.sh38
-rwxr-xr-xtools/distrib/check_copyright.py14
-rwxr-xr-xtools/distrib/check_include_guards.py14
-rw-r--r--tools/run_tests/generated/sources_and_headers.json21
-rwxr-xr-xtools/run_tests/sanity/check_port_platform.py3
6 files changed, 91 insertions, 0 deletions
diff --git a/tools/buildgen/generate_build_additions.sh b/tools/buildgen/generate_build_additions.sh
index 5a1f4a598a..c99ad6ee55 100755
--- a/tools/buildgen/generate_build_additions.sh
+++ b/tools/buildgen/generate_build_additions.sh
@@ -19,6 +19,7 @@ gen_build_yaml_dirs=" \
src/boringssl \
src/benchmark \
src/proto \
+ src/upb \
src/zlib \
src/c-ares \
test/core/bad_client \
diff --git a/tools/codegen/core/gen_upb_api.sh b/tools/codegen/core/gen_upb_api.sh
new file mode 100755
index 0000000000..9457e06f12
--- /dev/null
+++ b/tools/codegen/core/gen_upb_api.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+# Copyright 2016 gRPC authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# REQUIRES: Bazel
+set -ex
+rm -rf src/core/ext/upb-generated
+mkdir src/core/ext/upb-generated
+cd third_party
+cd upb
+bazel build :protoc-gen-upb
+
+cd ../..
+
+proto_files=( \
+ "google/protobuf/any.proto" \
+ "google/protobuf/struct.proto" \
+ "google/protobuf/wrappers.proto" \
+ "google/protobuf/descriptor.proto" \
+ "google/protobuf/duration.proto" \
+ "google/protobuf/timestamp.proto" )
+
+for i in "${proto_files[@]}"
+do
+ protoc -I=$PWD/third_party/data-plane-api -I=$PWD/third_party/googleapis -I=$PWD/third_party/protobuf -I=$PWD/third_party/protoc-gen-validate $i --upb_out=./src/core/ext/upb-generated --plugin=protoc-gen-upb=third_party/upb/bazel-bin/protoc-gen-upb
+done
diff --git a/tools/distrib/check_copyright.py b/tools/distrib/check_copyright.py
index 787bef1778..fd93cf31e0 100755
--- a/tools/distrib/check_copyright.py
+++ b/tools/distrib/check_copyright.py
@@ -104,6 +104,20 @@ _EXEMPT = frozenset((
# Designer-generated source
'examples/csharp/HelloworldXamarin/Droid/Resources/Resource.designer.cs',
'examples/csharp/HelloworldXamarin/iOS/ViewController.designer.cs',
+
+ # Upb generated source
+ 'src/core/ext/upb-generated/google/protobuf/any.upb.h',
+ 'src/core/ext/upb-generated/google/protobuf/any.upb.c',
+ 'src/core/ext/upb-generated/google/protobuf/descriptor.upb.h',
+ 'src/core/ext/upb-generated/google/protobuf/descriptor.upb.c',
+ 'src/core/ext/upb-generated/google/protobuf/duration.upb.h',
+ 'src/core/ext/upb-generated/google/protobuf/duration.upb.c',
+ 'src/core/ext/upb-generated/google/protobuf/struct.upb.h',
+ 'src/core/ext/upb-generated/google/protobuf/struct.upb.c',
+ 'src/core/ext/upb-generated/google/protobuf/timestamp.upb.h',
+ 'src/core/ext/upb-generated/google/protobuf/timestamp.upb.c',
+ 'src/core/ext/upb-generated/google/protobuf/wrappers.upb.h',
+ 'src/core/ext/upb-generated/google/protobuf/wrappers.upb.c',
))
RE_YEAR = r'Copyright (?P<first_year>[0-9]+\-)?(?P<last_year>[0-9]+) ([Tt]he )?gRPC [Aa]uthors(\.|)'
diff --git a/tools/distrib/check_include_guards.py b/tools/distrib/check_include_guards.py
index b8d530cce0..15b3478e55 100755
--- a/tools/distrib/check_include_guards.py
+++ b/tools/distrib/check_include_guards.py
@@ -165,6 +165,20 @@ KNOWN_BAD = set([
'src/core/tsi/alts/handshaker/transport_security_common.pb.h',
'include/grpc++/ext/reflection.grpc.pb.h',
'include/grpc++/ext/reflection.pb.h',
+
+ # Upb generated code
+ 'src/core/ext/upb-generated/google/protobuf/any.upb.h',
+ 'src/core/ext/upb-generated/google/protobuf/any.upb.c',
+ 'src/core/ext/upb-generated/google/protobuf/descriptor.upb.h',
+ 'src/core/ext/upb-generated/google/protobuf/descriptor.upb.c',
+ 'src/core/ext/upb-generated/google/protobuf/duration.upb.h',
+ 'src/core/ext/upb-generated/google/protobuf/duration.upb.c',
+ 'src/core/ext/upb-generated/google/protobuf/struct.upb.h',
+ 'src/core/ext/upb-generated/google/protobuf/struct.upb.c',
+ 'src/core/ext/upb-generated/google/protobuf/timestamp.upb.h',
+ 'src/core/ext/upb-generated/google/protobuf/timestamp.upb.c',
+ 'src/core/ext/upb-generated/google/protobuf/wrappers.upb.h',
+ 'src/core/ext/upb-generated/google/protobuf/wrappers.upb.c',
])
grep_filter = r"grep -E '^(include|src/core)/.*\.h$'"
diff --git a/tools/run_tests/generated/sources_and_headers.json b/tools/run_tests/generated/sources_and_headers.json
index d4d5d14f07..2fea807bbb 100644
--- a/tools/run_tests/generated/sources_and_headers.json
+++ b/tools/run_tests/generated/sources_and_headers.json
@@ -8828,6 +8828,27 @@
{
"deps": [],
"headers": [
+ "third_party/upb/google/protobuf/descriptor.upb.h",
+ "third_party/upb/upb/decode.h",
+ "third_party/upb/upb/def.h",
+ "third_party/upb/upb/encode.h",
+ "third_party/upb/upb/handlers.h",
+ "third_party/upb/upb/msg.h",
+ "third_party/upb/upb/msgfactory.h",
+ "third_party/upb/upb/refcounted.h",
+ "third_party/upb/upb/sink.h",
+ "third_party/upb/upb/upb.h"
+ ],
+ "is_filegroup": false,
+ "language": "c",
+ "name": "upb",
+ "src": [],
+ "third_party": false,
+ "type": "lib"
+ },
+ {
+ "deps": [],
+ "headers": [
"third_party/zlib/crc32.h",
"third_party/zlib/deflate.h",
"third_party/zlib/gzguts.h",
diff --git a/tools/run_tests/sanity/check_port_platform.py b/tools/run_tests/sanity/check_port_platform.py
index fff828eaee..8c412700e4 100755
--- a/tools/run_tests/sanity/check_port_platform.py
+++ b/tools/run_tests/sanity/check_port_platform.py
@@ -35,6 +35,9 @@ def check_port_platform_inclusion(directory_root):
continue
if filename.endswith('.pb.h') or filename.endswith('.pb.c'):
continue
+ # Skip check for upb generated code
+ if filename.endswith('.upb.h') or filename.endswith('.upb.c'):
+ continue
with open(path) as f:
all_lines_in_file = f.readlines()
for index, l in enumerate(all_lines_in_file):