3
3
load ("@rules_cc//cc/common:cc_info.bzl" , "CcInfo" )
4
4
load ("@rules_proto//proto:defs.bzl" , "ProtoInfo" , "proto_common" )
5
5
load ("@rules_proto//proto:proto_common.bzl" , proto_toolchains = "toolchains" )
6
- load ("@rules_rust//rust:defs.bzl" , "rust_analyzer_aspect" , "rust_common" )
6
+ load ("@rules_rust//rust:defs.bzl" , "rust_analyzer_aspect" )
7
7
8
8
# buildifier: disable=bzl-visibility
9
- load ("@rules_rust//rust/private:providers.bzl" , "RustAnalyzerGroupInfo" , "RustAnalyzerInfo" )
9
+ load ("@rules_rust//rust/private:providers.bzl" , "CrateGroupInfo" , "CrateInfo" , "DepInfo" , "DepVariantInfo" , " RustAnalyzerGroupInfo" , "RustAnalyzerInfo" )
10
10
11
11
# buildifier: disable=bzl-visibility
12
12
load ("@rules_rust//rust/private:rust.bzl" , "RUSTC_ATTRS" )
@@ -230,7 +230,7 @@ def _compile_rust(
230
230
dep_info = _get_dep_info (providers )
231
231
cc_info = _get_cc_info (providers )
232
232
233
- return rust_common . dep_variant_info (
233
+ return DepVariantInfo (
234
234
crate_info = crate_info ,
235
235
dep_info = dep_info ,
236
236
cc_info = cc_info ,
@@ -252,13 +252,13 @@ def _rust_prost_aspect_impl(target, ctx):
252
252
for prost_runtime in runtimes :
253
253
if not prost_runtime :
254
254
continue
255
- if rust_common . crate_group_info in prost_runtime :
256
- crate_group_info = prost_runtime [rust_common . crate_group_info ]
257
- runtime_deps .extend (crate_group_info .dep_variant_infos . to_list () )
255
+ if CrateGroupInfo in prost_runtime :
256
+ crate_group_info = prost_runtime [CrateGroupInfo ]
257
+ runtime_deps .extend (crate_group_info .dep_variant_infos )
258
258
else :
259
- runtime_deps .append (rust_common . dep_variant_info (
260
- crate_info = prost_runtime [rust_common . crate_info ] if rust_common . crate_info in prost_runtime else None ,
261
- dep_info = prost_runtime [rust_common . dep_info ] if rust_common . dep_info in prost_runtime else None ,
259
+ runtime_deps .append (DepVariantInfo (
260
+ crate_info = prost_runtime [CrateInfo ] if CrateInfo in prost_runtime else None ,
261
+ dep_info = prost_runtime [DepInfo ] if DepInfo in prost_runtime else None ,
262
262
cc_info = prost_runtime [CcInfo ] if CcInfo in prost_runtime else None ,
263
263
build_info = None ,
264
264
))
@@ -269,26 +269,24 @@ def _rust_prost_aspect_impl(target, ctx):
269
269
270
270
proto_deps = getattr (ctx .rule .attr , "deps" , [])
271
271
272
- direct_deps = []
273
- transitive_deps = [depset ( runtime_deps ) ]
272
+ direct_deps = list ( runtime_deps )
273
+ transitive_deps = []
274
274
for proto_dep in proto_deps :
275
275
proto_info = proto_dep [ProstProtoInfo ]
276
276
277
277
direct_deps .append (proto_info .dep_variant_info )
278
- transitive_deps .append (depset (
279
- [proto_info .dep_variant_info ],
280
- transitive = [proto_info .transitive_dep_infos ],
281
- ))
278
+ transitive_deps .append (proto_info .transitive_dep_infos )
282
279
283
280
if RustAnalyzerInfo in proto_dep :
284
281
rust_analyzer_deps .append (proto_dep [RustAnalyzerInfo ])
285
282
286
- transform_infos = []
287
- for data_target in getattr (ctx .rule .attr , "data" , []):
288
- if ProstTransformInfo in data_target :
289
- transform_infos .append (data_target [ProstTransformInfo ])
283
+ transform_infos = [
284
+ data_target [ProstTransformInfo ]
285
+ for data_target in getattr (ctx .rule .attr , "data" , [])
286
+ if ProstTransformInfo in data_target
287
+ ]
290
288
291
- rust_deps = runtime_deps + direct_deps
289
+ rust_deps = list ( direct_deps )
292
290
crate_name_overrides = []
293
291
for transform_info in transform_infos :
294
292
rust_deps .extend (transform_info .deps )
@@ -352,7 +350,7 @@ def _rust_prost_aspect_impl(target, ctx):
352
350
return [
353
351
ProstProtoInfo (
354
352
dep_variant_info = dep_variant_info ,
355
- transitive_dep_infos = depset (transitive = transitive_deps ),
353
+ transitive_dep_infos = depset (direct_deps , transitive = transitive_deps ),
356
354
package_info = package_info_file ,
357
355
),
358
356
rust_analyzer_info ,
@@ -408,18 +406,14 @@ def _rust_prost_library_impl(ctx):
408
406
409
407
prost_toolchain = ctx .toolchains [TOOLCHAIN_TYPE ]
410
408
411
- transitive = []
409
+ dep_variant_infos = [dep_variant_info ]
410
+
412
411
if prost_toolchain .include_transitive_deps :
413
- transitive = [rust_proto_info .transitive_dep_infos ]
412
+ dep_variant_infos = depset ( dep_variant_infos , transitive = [rust_proto_info .transitive_dep_infos ]). to_list ()
414
413
415
414
return [
416
415
DefaultInfo (files = depset ([dep_variant_info .crate_info .output ])),
417
- rust_common .crate_group_info (
418
- dep_variant_infos = depset (
419
- [dep_variant_info ],
420
- transitive = transitive ,
421
- ),
422
- ),
416
+ CrateGroupInfo (dep_variant_infos = dep_variant_infos ),
423
417
OutputGroupInfo (
424
418
rust_generated_srcs = rust_generated_srcs ,
425
419
proto_descriptor_set = proto_descriptor_set ,
@@ -444,7 +438,7 @@ rust_prost_library = rule(
444
438
),
445
439
},
446
440
provides = [
447
- rust_common . crate_group_info ,
441
+ CrateGroupInfo ,
448
442
],
449
443
toolchains = [
450
444
TOOLCHAIN_TYPE ,
@@ -513,13 +507,13 @@ rust_prost_toolchain = rule(
513
507
),
514
508
"prost_runtime" : attr .label (
515
509
doc = "The Prost runtime crates to use." ,
516
- providers = [[rust_common . crate_info ], [rust_common . crate_group_info ]],
510
+ providers = [[CrateInfo ], [CrateGroupInfo ]],
517
511
mandatory = True ,
518
512
aspects = [rust_analyzer_aspect ],
519
513
),
520
514
"prost_types" : attr .label (
521
515
doc = "The Prost types crates to use." ,
522
- providers = [[rust_common . crate_info ], [rust_common . crate_group_info ]],
516
+ providers = [[CrateInfo ], [CrateGroupInfo ]],
523
517
mandatory = True ,
524
518
),
525
519
"proto_compiler" : attr .label (
@@ -541,7 +535,7 @@ rust_prost_toolchain = rule(
541
535
),
542
536
"tonic_runtime" : attr .label (
543
537
doc = "The Tonic runtime crates to use." ,
544
- providers = [[rust_common . crate_info ], [rust_common . crate_group_info ]],
538
+ providers = [[CrateInfo ], [CrateGroupInfo ]],
545
539
aspects = [rust_analyzer_aspect ],
546
540
),
547
541
}, ** proto_toolchains .if_legacy_toolchain ({
@@ -555,27 +549,24 @@ rust_prost_toolchain = rule(
555
549
def _current_prost_runtime_impl (ctx ):
556
550
toolchain = ctx .toolchains [TOOLCHAIN_TYPE ]
557
551
558
- runtime_deps = []
552
+ dep_variant_infos = []
559
553
560
554
for target in [toolchain .prost_runtime , toolchain .prost_types ]:
561
- if rust_common .crate_group_info in target :
562
- crate_group_info = target [rust_common .crate_group_info ]
563
- runtime_deps .extend (crate_group_info .dep_variant_infos .to_list ())
555
+ if CrateGroupInfo in target :
556
+ dep_variant_infos .extend (target [CrateGroupInfo ].dep_variant_infos )
564
557
else :
565
- runtime_deps .append (rust_common . dep_variant_info (
566
- crate_info = target [rust_common . crate_info ] if rust_common . crate_info in target else None ,
567
- dep_info = target [rust_common . dep_info ] if rust_common . dep_info in target else None ,
558
+ dep_variant_infos .append (DepVariantInfo (
559
+ crate_info = target [CrateInfo ] if CrateInfo in target else None ,
560
+ dep_info = target [DepInfo ] if DepInfo in target else None ,
568
561
cc_info = target [CcInfo ] if CcInfo in target else None ,
569
562
build_info = None ,
570
563
))
571
564
572
- return [rust_common .crate_group_info (
573
- dep_variant_infos = depset (runtime_deps ),
574
- )]
565
+ return [CrateGroupInfo (dep_variant_infos = dep_variant_infos )]
575
566
576
567
current_prost_runtime = rule (
577
568
doc = "A rule for accessing the current Prost toolchain components needed by the process wrapper." ,
578
- provides = [rust_common . crate_group_info ],
569
+ provides = [CrateGroupInfo ],
579
570
implementation = _current_prost_runtime_impl ,
580
571
toolchains = [TOOLCHAIN_TYPE ],
581
572
)
0 commit comments