Skip to content

Commit 991ef27

Browse files
committed
Use prebuilt protoc
1 parent 8761c44 commit 991ef27

19 files changed

Lines changed: 53 additions & 48 deletions

File tree

.bazelrc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,10 @@ build:windows --define=protobuf_allow_msvc=true
2828

2929
common --enable_platform_specific_config
3030

31+
# Use prebuilt protoc
32+
common --incompatible_enable_proto_toolchain_resolution
33+
common --@com_google_protobuf//bazel/toolchains:prefer_prebuilt_protoc=true
34+
common --per_file_copt=external/.*protobuf.*@--PROTOBUF_WAS_NOT_SUPPOSED_TO_BE_BUILT
35+
common --host_per_file_copt=external/.*protobuf.*@--PROTOBUF_WAS_NOT_SUPPOSED_TO_BE_BUILT
36+
common --per_file_copt=external/.*grpc.*@--GRPC_WAS_NOT_SUPPOSED_TO_BE_BUILT
37+
common --host_per_file_copt=external/.*grpc.*@--GRPC_WAS_NOT_SUPPOSED_TO_BE_BUILT

MODULE.bazel

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ bazel_dep(name = "stardoc", version = "0.8.0", dev_dependency = True)
1515
rules_java_toolchains = use_extension("@rules_java//java:extensions.bzl", "toolchains")
1616
use_repo(rules_java_toolchains, "remote_java_tools")
1717

18-
bazel_dep(name = "protobuf", version = "33.1", repo_name = "com_google_protobuf")
18+
bazel_dep(name = "protobuf", version = "33.4", repo_name = "com_google_protobuf")
1919
bazel_dep(name = "rules_jvm_external", version = "6.9")
2020
bazel_dep(name = "bazel_skylib", version = "1.8.1")
2121
bazel_dep(name = "rules_robolectric", version = "4.14.1.2", repo_name = "robolectric")
@@ -54,9 +54,6 @@ python.toolchain(
5454
python_version = "3.11",
5555
)
5656

57-
# proto-related dependency setup
58-
bazel_dep(name = "rules_proto", version = "7.1.0", repo_name = "rules_proto")
59-
6057
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
6158
# Maven for android_ide_common need to be separated into their own separate maven_install for now
6259
# due to compatibility issues with newer versions.
@@ -78,8 +75,8 @@ maven.install(
7875
# These technically aren't needed, but the protobuf version pulled
7976
# in by these older deps has compatibility issues with the newer
8077
# protobuf runtimes.
81-
"com.google.protobuf:protobuf-java:4.33.1",
82-
"com.google.protobuf:protobuf-java-util:4.33.1",
78+
"com.google.protobuf:protobuf-java:4.33.4",
79+
"com.google.protobuf:protobuf-java-util:4.33.4",
8380
],
8481
repositories = [
8582
"https://maven.google.com",
@@ -117,8 +114,9 @@ maven.install(
117114
"jakarta.inject:jakarta.inject-api:2.0.1",
118115
"junit:junit:4.13.2",
119116
"com.beust:jcommander:1.82",
120-
"com.google.protobuf:protobuf-java:4.33.1",
121-
"com.google.protobuf:protobuf-java-util:4.33.1",
117+
# Override transitive protobuf deps to match bazel_dep protobuf version.
118+
"com.google.protobuf:protobuf-java:4.33.4",
119+
"com.google.protobuf:protobuf-java-util:4.33.4",
122120
"com.google.code.findbugs:jsr305:3.0.2",
123121
"androidx.databinding:databinding-compiler:8.7.0",
124122
"org.ow2.asm:asm:9.6",

WORKSPACE

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ load("prereqs.bzl", "rules_android_prereqs")
66

77
rules_android_prereqs(dev_mode = True)
88

9+
load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
10+
protobuf_deps()
11+
12+
913
load("@bazel_features//:deps.bzl", "bazel_features_deps")
1014
bazel_features_deps()
1115

@@ -15,12 +19,6 @@ compatibility_proxy_repo()
1519
load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies")
1620
rules_java_dependencies()
1721

18-
# note that the following line is what is minimally required from protobuf for the java rules
19-
# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl
20-
load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility
21-
22-
proto_bazel_features(name = "proto_bazel_features")
23-
2422
# register toolchains
2523
load("@rules_java//java:repositories.bzl", "rules_java_toolchains")
2624

defs.bzl

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,6 @@ load(
2424
)
2525
load("@robolectric//bazel:robolectric.bzl", "robolectric_repositories")
2626
load("@rules_jvm_external//:defs.bzl", "maven_install")
27-
load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies")
28-
load("@rules_proto//proto:setup.bzl", "rules_proto_setup")
29-
load("@rules_proto//proto:toolchains.bzl", "rules_proto_toolchains")
3027
load("@rules_python//python:repositories.bzl", "py_repositories", "python_register_toolchains")
3128
load("@rules_shell//shell:repositories.bzl", "rules_shell_dependencies", "rules_shell_toolchains")
3229

@@ -57,8 +54,8 @@ def rules_android_workspace():
5754
# These technically aren't needed, but the protobuf version pulled
5855
# in by these older deps has compatibility issues with the newer
5956
# protobuf runtimes.
60-
"com.google.protobuf:protobuf-java:4.33.1",
61-
"com.google.protobuf:protobuf-java-util:4.33.1",
57+
"com.google.protobuf:protobuf-java:4.33.4",
58+
"com.google.protobuf:protobuf-java-util:4.33.4",
6259
],
6360
repositories = [
6461
"https://maven.google.com",
@@ -94,8 +91,8 @@ def rules_android_workspace():
9491
"jakarta.inject:jakarta.inject-api:2.0.1",
9592
"junit:junit:4.13.2",
9693
"com.beust:jcommander:1.82",
97-
"com.google.protobuf:protobuf-java:4.33.1",
98-
"com.google.protobuf:protobuf-java-util:4.33.1",
94+
"com.google.protobuf:protobuf-java:4.33.4",
95+
"com.google.protobuf:protobuf-java-util:4.33.4",
9996
"com.google.code.findbugs:jsr305:3.0.2",
10097
"androidx.databinding:databinding-compiler:8.7.0",
10198
"org.ow2.asm:asm:9.6",
@@ -150,8 +147,8 @@ def rules_android_workspace():
150147
"com.google.code.gson:gson:2.10.1", # bazel worker api
151148
"com.google.errorprone:error_prone_annotations:2.23.0", # bazel worker api
152149
"com.google.guava:guava:33.0.0-jre", # bazel worker api
153-
"com.google.protobuf:protobuf-java:4.33.1", # bazel worker api
154-
"com.google.protobuf:protobuf-java-util:4.33.1", # bazel worker api
150+
"com.google.protobuf:protobuf-java:4.33.4", # bazel worker api
151+
"com.google.protobuf:protobuf-java-util:4.33.4", # bazel worker api
155152
"junit:junit:4.13.2", # bazel worker api
156153
"org.mockito:mockito-core:5.4.0", # bazel worker api
157154
"com.google.truth:truth:1.4.0", # bazel worker api
@@ -162,6 +159,7 @@ def rules_android_workspace():
162159
"https://maven.google.com",
163160
],
164161
)
162+
165163
go_rules_dependencies()
166164

167165
_GO_TOOLCHAIN_VERSION = "1.22.4"
@@ -204,10 +202,6 @@ def rules_android_workspace():
204202

205203
robolectric_repositories()
206204

207-
rules_proto_dependencies()
208-
rules_proto_toolchains()
209-
rules_proto_setup()
210-
211205
py_repositories()
212206

213207
python_register_toolchains(

examples/basicapp/.bazelrc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,11 @@ build:windows --define=protobuf_allow_msvc=true
3535

3636
common --enable_platform_specific_config
3737

38+
# Use prebuilt protoc
39+
common --incompatible_enable_proto_toolchain_resolution
40+
common --@com_google_protobuf//bazel/toolchains:prefer_prebuilt_protoc=true
41+
# Ensure that we don't accidentally build protobuf or gRPC
42+
common --per_file_copt=external/.*protobuf.*@--PROTOBUF_WAS_NOT_SUPPOSED_TO_BE_BUILT
43+
common --host_per_file_copt=external/.*protobuf.*@--PROTOBUF_WAS_NOT_SUPPOSED_TO_BE_BUILT
44+
common --per_file_copt=external/.*grpc.*@--GRPC_WAS_NOT_SUPPOSED_TO_BE_BUILT
45+
common --host_per_file_copt=external/.*grpc.*@--GRPC_WAS_NOT_SUPPOSED_TO_BE_BUILT

examples/basicapp/MODULE.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ module(
55
bazel_dep(name = "rules_java", version = "9.0.3")
66
bazel_dep(name = "bazel_skylib", version = "1.8.1")
77
bazel_dep(name = "rules_jvm_external", version = "6.7")
8+
bazel_dep(name = "protobuf", version = "33.4", repo_name = "com_google_protobuf")
89

910
bazel_dep(
1011
name = "rules_android",

examples/basicapp/WORKSPACE

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ local_repository(
99
load("@rules_android//:prereqs.bzl", "rules_android_prereqs")
1010
rules_android_prereqs()
1111

12+
load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
13+
protobuf_deps()
14+
1215
load("@bazel_features//:deps.bzl", "bazel_features_deps")
1316
bazel_features_deps()
1417

@@ -19,10 +22,6 @@ compatibility_proxy_repo()
1922
load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies")
2023
rules_java_dependencies()
2124

22-
# note that the following line is what is minimally required from protobuf for the java rules
23-
# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl
24-
load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility
25-
proto_bazel_features(name = "proto_bazel_features")
2625
# register toolchains
2726
load("@rules_java//java:repositories.bzl", "rules_java_toolchains")
2827
rules_java_toolchains()

prereqs.bzl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ def rules_android_prereqs(dev_mode = False):
6363
url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/%s/rules_jvm_external-%s.tar.gz" % (RULES_JVM_EXTERNAL_TAG, RULES_JVM_EXTERNAL_TAG),
6464
)
6565

66-
PROTOBUF_VERSION = "33.1"
67-
PROTOBUF_HASH = "fda132cb0c86400381c0af1fe98bd0f775cb566cb247cdcc105e344e00acc30e"
66+
PROTOBUF_VERSION = "33.4"
67+
PROTOBUF_HASH = "bc670a4e34992c175137ddda24e76562bb928f849d712a0e3c2fb2e19249bea1"
6868
maybe(
6969
http_archive,
7070
name = "com_google_protobuf",

src/tools/java/com/google/devtools/build/android/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ java_library(
9898
"@rules_android_maven//:com_google_code_findbugs_jsr305",
9999
"@rules_android_maven//:com_google_errorprone_error_prone_annotations",
100100
"@rules_android_maven//:com_google_guava_guava",
101-
"@rules_android_maven//:com_google_protobuf_protobuf_java",
101+
"@com_google_protobuf//java/core",
102102
":android_common_30_1_3",
103103
":android_databinding_wrapper_lib",
104104
":android_options_utils",

src/tools/java/com/google/devtools/build/android/desugar/langmodel/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ java_library(
1919
"@rules_android_maven//:com_google_code_findbugs_jsr305",
2020
"@rules_android_maven//:com_google_errorprone_error_prone_annotations",
2121
"@rules_android_maven//:com_google_guava_guava",
22-
"@rules_android_maven//:com_google_protobuf_protobuf_java",
22+
"@com_google_protobuf//java/core",
2323
"@rules_android_maven//:org_ow2_asm_asm",
2424
"@rules_android_maven//:org_ow2_asm_asm_commons",
2525
"@rules_android_maven//:org_ow2_asm_asm_tree",

0 commit comments

Comments
 (0)