unplugged-system/external/skia/bazel/exporter/build_proto/README.md

28 lines
1.3 KiB
Markdown
Raw Normal View History

This directory contains generated Go wrappers for Bazel cquery result
protocol buffers defined in https://github.com/bazelbuild/bazel/tree/master/src/main/protobuf.
An attempt was made to use [go_proto_library](https://github.com/bazelbuild/rules_go/blob/master/proto/core.rst#go-proto-library)
to generate this code at build time, sourcing the embedded_tools dependency, but that
was never successful. The cause appears to be that the protobufs in Bazel's source
defined messages of the same name (specifically "Target") which creates a build
conflict. The command below generates the two Go classes with different package names
to avoid this conflict - which is what the Bazel generated Java wrapper does.
They were generated as so:
```bash
BAZEL_DIR=/path/to/bazel/source
DST_DIR=${PWD}/bazel/exporter/build_proto
GO_PACKAGE=go.skia.org/skia/bazel/exporter/build_proto
GO_GEN_CODE_ROOT=${DST_DIR}/go.skia.org/skia/bazel/exporter/build_proto
protoc \
--proto_path=${BAZEL_DIR} \
--go_out=${DST_DIR} \
--go_opt=Msrc/main/protobuf/build.proto=${GO_PACKAGE}/build \
--go_opt=Msrc/main/protobuf/analysis_v2.proto=${GO_PACKAGE}/analysis_v2 \
${SRC_DIR}/analysis_v2.proto ${SRC_DIR}/build.proto
```
The call above writes the generated code to `${DST_DIR}/go.skia.org/skia/bazel/exporter/build_proto`
which is then moved into `${DST_DIR}/build` and `${DST_DIR}/build`.