규칙
proto_lang_toolchain
proto_lang_toolchain(name, blacklisted_protos, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, mnemonic, output_files, plugin, plugin_format_flag, progress_message, proto_compiler, restricted_to, runtime, tags, target_compatible_with, testonly, visibility)
지원이 중단되었습니다. 대신 https://github.com/bazelbuild/rules_proto를 참고하세요.
LANGUAGE_proto_library 규칙을 어떻게 지정할지 지정합니다 (예: java_proto_library
)가 proto 컴파일러를 호출해야 합니다.
일부 LANGUAGE_proto_library 규칙에서는 명령줄 플래그를 사용하여 어떤 도구 모음을 사용할지 지정할 수 있습니다. 관련 문서를 참조하세요.
일반적으로 자바 컴파일러를 조정하지 않는 한 이러한 종류의 규칙을 작성하면 안 됩니다.
컴파일러는 없습니다. proto-compiler는 우리가 첨부한 proto_library 규칙에서 가져온 것입니다. 이는 명령줄 플래그로 Blaze에 전달됩니다.
여러 기능을 사용하려면 proto_library 규칙 자체에서 proto-컴파일러를 호출해야 합니다.
LANGUAGE_proto_library에서 사용하는 컴파일러가 proto_library
와 동일한 컴파일러를 강제 적용하는 것이 좋습니다.
예
간단한 예는 다음과 같습니다.
proto_lang_toolchain( name = "javalite_toolchain", command_line = "--javalite_out=shared,immutable:$(OUT)", plugin = ":javalite_plugin", runtime = ":protobuf_lite", )
인수
특성 | |
---|---|
name |
이 대상의 고유한 이름입니다. |
blacklisted_protos
|
blacklisted_protos 의 srcs 속성에 있는 파일의 코드는 생성되지 않습니다.
any.proto 과 같이 proto 런타임에 이미 연결된 .proto 파일에 사용됩니다.
|
command_line
|
|
mnemonic
|
|
output_files
|
command_line 의 $(OUT) 형식이 단일 파일 경로 또는 출력 디렉터리(파일이 여러 개인 경우)로 지정되는 방식을 제어합니다.
가능한 값은 'single', 'multiple'입니다.
|
plugin
|
--plugin=protoc-gen-PLUGIN=
|
plugin_format_flag
|
--plugin=protoc-gen-PLUGIN=
|
progress_message
|
|
proto_compiler
|
|
runtime
|
|
proto_library
proto_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, exports, features, import_prefix, licenses, restricted_to, strip_import_prefix, tags, target_compatible_with, testonly, visibility)
지원이 중단되었습니다. 대신 https://github.com/bazelbuild/rules_proto를 사용하세요.
proto_library
를 사용하여 여러 언어에서 사용할 수 있는 프로토콜 버퍼 라이브러리를 정의합니다. proto_library
는 지원되는 규칙의 deps
절에 나열될 수 있습니다(예: java_proto_library
).
명령줄에서 컴파일할 때 proto_library
은 foo-descriptor-set.proto.bin
라는 파일을 만듭니다. 이 파일은 규칙이 src로 설정한 메시지에 설정된 설명어입니다. 파일은
https://developers.google.com/protocol-buffers/docs/techniques#self-description에 설명된 직렬화된 FileDescriptorSet
입니다.
여기에는 proto_library
규칙에서 직접 언급한 .proto
파일에 관한 정보만 포함됩니다. 전이 설명어 집합 컬렉션은 [ProtoInfo].transitive_descriptor_sets
Starlark 제공업체를 통해 사용할 수 있습니다.
ProtoInfo.java
의 문서를 참고하세요.
권장 코드 구성:
-
.proto
파일당proto_library
규칙 1개 -
foo.proto
라는 파일은 동일한 패키지에 있는foo_proto
라는 규칙에 포함됩니다. -
foo_proto
라는proto_library
을 래핑하는[language]_proto_library
은foo_[language]_proto
라고 해야 하며 동일한 패키지에 있어야 합니다.
인수
특성 | |
---|---|
name |
이 대상의 고유한 이름입니다. |
deps
|
proto_library 규칙의 목록입니다.
proto_library 은 다른 proto_library 타겟에만 종속될 수 있습니다.
언어별 라이브러리에 종속되지 않을 수 있습니다.
|
srcs
|
.proto 및 .protodevel 파일의 목록입니다. 이는 일반적으로 비어 있지 않은 목록입니다. srcs 가 비어 있을 수 있는 한 가지 사용 사례는 alias-library입니다. 이는 deps 에 하나 이상의 다른 proto_library가 있는 proto_library 규칙입니다.
이 패턴은 예를 들어 영구 이름으로 공개 API를 내보내는 데 사용할 수 있습니다.
|
exports
|
|
import_prefix
|
이 속성을 설정하면 저장소 상대 경로 앞에 추가된 이 속성의 값에서 이 규칙의
|
strip_import_prefix
|
설정하면 규칙의 슬래시로 시작하지 않는 상대 경로인 경우 패키지 기준 경로로 사용됩니다. 절대 경로인 경우 저장소 기준 경로로 간주됩니다.
|