-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix name in proto_lang_toolchain rule
Added a wrapper for proto_lang_toolchain in order to have two implementations - one with public proto_compiler attribute, and the other one with the private one. Restructured proto_lang_toolchain rules' implementation - merged two rule's definitions into one. PiperOrigin-RevId: 447016335
- Loading branch information
1 parent
d519fec
commit 8950863
Showing
5 changed files
with
117 additions
and
64 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
23 changes: 23 additions & 0 deletions
23
src/main/starlark/builtins_bzl/common/proto/proto_lang_toolchain_custom_protoc.bzl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Copyright 2021 The Bazel Authors. All rights reserved. | ||
# | ||
# 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. | ||
|
||
"""Defines a proto_lang_toolchain rule class with custom proto compiler. | ||
There are two physical rule classes for proto_lang_toolchain and we want both of them | ||
to have a name string of "proto_lang_toolchain". | ||
""" | ||
|
||
load(":common/proto/proto_lang_toolchain.bzl", "make_proto_lang_toolchain") | ||
|
||
proto_lang_toolchain = make_proto_lang_toolchain(custom_proto_compiler = True) |
23 changes: 23 additions & 0 deletions
23
src/main/starlark/builtins_bzl/common/proto/proto_lang_toolchain_default_protoc.bzl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Copyright 2021 The Bazel Authors. All rights reserved. | ||
# | ||
# 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. | ||
|
||
"""Defines a proto_lang_toolchain rule class with default proto compiler. | ||
There are two physical rule classes for proto_lang_toolchain and we want both of them | ||
to have a name string of "proto_lang_toolchain". | ||
""" | ||
|
||
load(":common/proto/proto_lang_toolchain.bzl", "make_proto_lang_toolchain") | ||
|
||
proto_lang_toolchain = make_proto_lang_toolchain(custom_proto_compiler = False) |
35 changes: 35 additions & 0 deletions
35
src/main/starlark/builtins_bzl/common/proto/proto_lang_toolchain_wrapper.bzl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# Copyright 2021 The Bazel Authors. All rights reserved. | ||
# | ||
# 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. | ||
|
||
"""Macro encapsulating the proto_lang_toolchain implementation. | ||
This is needed since proto compiler can be defined, or used as a default one. | ||
There are two implementations of proto_lang_toolchain - one with public proto_compiler attribute, and the other one with private compiler. | ||
""" | ||
|
||
load(":common/proto/proto_lang_toolchain_default_protoc.bzl", toolchain_default_protoc = "proto_lang_toolchain") | ||
load(":common/proto/proto_lang_toolchain_custom_protoc.bzl", toolchain_custom_protoc = "proto_lang_toolchain") | ||
|
||
def proto_lang_toolchain( | ||
proto_compiler = None, | ||
**kwargs): | ||
if proto_compiler != None: | ||
toolchain_custom_protoc( | ||
proto_compiler = proto_compiler, | ||
**kwargs | ||
) | ||
else: | ||
toolchain_default_protoc( | ||
**kwargs | ||
) |