{ "library": { "doc": [ "A library C++ library, generated from proto files." , "" , "This rule usually is used to bind anonymous targets generated from" , "proto libraries." ] , "string_fields": ["name", "stage"] , "target_fields": ["srcs", "deps"] , "config_vars": ["OS", "ARCH", "HOST_ARCH", "CXX", "CFLAGS", "ADD_CFLAGS", "AR", "ENV"] , "implicit": { "protoc": [["@", "protoc", "", "protoc"]] , "defaults": [["./", "..", "defaults"]] , "proto-deps": [["@", "protoc", "", "C++ runtime"]] , "well_known_protos": [["@", "protoc", "", "well_known_protos"]] } , "imports": { "protoc-compile": "protoc-compile" , "host transition": ["transitions", "for host"] } , "config_transitions": {"protoc": [{"type": "CALL_EXPRESSION", "name": "host transition"}]} , "expression": { "type": "let*" , "bindings": [ ["name", {"type": "join", "$1": {"type": "FIELD", "name": "name"}}] , [ "stage" , { "type": "join" , "separator": "/" , "$1": {"type": "FIELD", "name": "stage"} } ] , [ "deps-transition" , {"type": "CALL_EXPRESSION", "name": "host transition"} ] , ["public-fieldnames", ["deps", "proto-deps"]] , ["private-fieldnames", ["deps", "proto-deps"]] ] , "body": {"type": "CALL_EXPRESSION", "name": "protoc-compile"} } } , "service library": { "doc": [ "A service library C++ library, generated from proto files." , "" , "Calls protoc with gRPC plugin to additionally generate gRPC services" , "from proto libraries." ] , "string_fields": ["name", "stage"] , "target_fields": ["srcs", "deps"] , "config_vars": ["OS", "ARCH", "HOST_ARCH", "CXX", "CXXFLAGS", "ADD_CXXFLAGS", "AR", "ENV"] , "implicit": { "protoc": [["@", "protoc", "", "protoc"]] , "grpc_cpp_plugin": [["@", "grpc", "src/compiler", "grpc_cpp_plugin"]] , "defaults": [["./", "..", "defaults"]] , "proto-deps": [ ["@", "grpc", "", "grpc++_codegen_proto"] , ["@", "protoc", "", "C++ runtime"] ] , "well_known_protos": [["@", "protoc", "", "well_known_protos"]] } , "imports": { "protoc-compile": "protoc-compile" , "host transition": ["transitions", "for host"] } , "config_transitions": { "protoc": [{"type": "CALL_EXPRESSION", "name": "host transition"}] , "grpc_cpp_plugin": [{"type": "CALL_EXPRESSION", "name": "host transition"}] } , "expression": { "type": "let*" , "bindings": [ ["service support", true] , ["name", {"type": "join", "$1": {"type": "FIELD", "name": "name"}}] , [ "stage" , { "type": "join" , "separator": "/" , "$1": {"type": "FIELD", "name": "stage"} } ] , [ "deps-transition" , {"type": "CALL_EXPRESSION", "name": "host transition"} ] , ["public-fieldnames", ["deps", "proto-deps"]] , ["private-fieldnames", ["deps", "proto-deps"]] ] , "body": {"type": "CALL_EXPRESSION", "name": "protoc-compile"} } } }