15
15
"""Defines Starlark providers that propagated by the Swift BUILD rules."""
16
16
17
17
load ("@bazel_skylib//lib:sets.bzl" , "sets" )
18
- load ("@bazel_skylib//lib:types.bzl" , "types" )
19
18
20
19
SwiftInfo = provider (
21
20
doc = """\
@@ -34,18 +33,6 @@ library that directly propagated this provider.
34
33
"direct_modules" : """\
35
34
`List` of values returned from `swift_common.create_module`. The modules (both
36
35
Swift and C/Objective-C) emitted by the library that propagated this provider.
37
- """ ,
38
- "direct_swiftdocs" : """\
39
- `List` of `File`s. The Swift documentation (`.swiftdoc`) files for the library
40
- that directly propagated this provider.
41
-
42
- This field is deprecated; use `direct_modules` instead.
43
- """ ,
44
- "direct_swiftmodules" : """\
45
- `List` of `File`s. The Swift modules (`.swiftmodule`) for the library that
46
- directly propagated this provider.
47
-
48
- This field is deprecated; use `direct_modules` instead.
49
36
""" ,
50
37
"module_name" : """\
51
38
`String`. The name of the Swift module represented by the target that directly
@@ -71,37 +58,11 @@ propagated this provider and all of its dependencies.
71
58
"transitive_generated_headers" : """\
72
59
`Depset` of `File`s. The transitive generated header files that can be used by
73
60
Objective-C sources to interop with the transitive Swift libraries.
74
- """ ,
75
- "transitive_modulemaps" : """\
76
- `Depset` of `File`s. The transitive module map files that will be passed to
77
- Clang using the `-fmodule-map-file` option.
78
-
79
- This field is deprecated; use `transitive_modules` instead.
80
61
""" ,
81
62
"transitive_modules" : """\
82
63
`Depset` of values returned from `swift_common.create_module`. The transitive
83
64
modules (both Swift and C/Objective-C) emitted by the library that propagated
84
65
this provider and all of its dependencies.
85
- """ ,
86
- "transitive_swiftdocs" : """\
87
- `Depset` of `File`s. The transitive Swift documentation (`.swiftdoc`) files
88
- emitted by the library that propagated this provider and all of its
89
- dependencies.
90
-
91
- This field is deprecated; use `transitive_modules` instead.
92
- """ ,
93
- "transitive_swiftinterfaces" : """\
94
- `Depset` of `File`s. The transitive Swift interface (`.swiftinterface`) files
95
- emitted by the library that propagated this provider and all of its
96
- dependencies.
97
-
98
- This field is deprecated; use `transitive_modules` instead.
99
- """ ,
100
- "transitive_swiftmodules" : """\
101
- `Depset` of `File`s. The transitive Swift modules (`.swiftmodule`) emitted by
102
- the library that propagated this provider and all of its dependencies.
103
-
104
- This field is deprecated; use `transitive_modules` instead.
105
66
""" ,
106
67
},
107
68
)
@@ -265,9 +226,8 @@ def create_module(name, *, clang = None, swift = None):
265
226
A `struct` containing the `name`, `clang`, and `swift` fields provided
266
227
as arguments.
267
228
"""
268
-
269
- # TODO(b/149999519): Once Swift module artifacts have migrated to this API,
270
- # fail if both `clang` and `swift` are `None`.
229
+ if clang == None and swift == None :
230
+ fail ("Must provide atleast a clang or swift module." )
271
231
return struct (
272
232
clang = clang ,
273
233
name = name ,
@@ -370,13 +330,8 @@ def create_swift_info(
370
330
A new `SwiftInfo` provider with the given values.
371
331
"""
372
332
373
- # TODO(b/149999519): Remove the legacy direct/transitive fields and this
374
- # transitional code.
375
333
defines_set = sets .make ()
376
334
generated_headers = []
377
- swiftdocs = []
378
- swiftinterfaces = []
379
- swiftmodules = []
380
335
for module in modules :
381
336
swift_module = module .swift
382
337
if not swift_module :
@@ -387,12 +342,6 @@ def create_swift_info(
387
342
defines_set ,
388
343
sets .make (swift_module .defines ),
389
344
)
390
- if swift_module .swiftdoc :
391
- swiftdocs .append (swift_module .swiftdoc )
392
- if swift_module .swiftinterface :
393
- swiftinterfaces .append (swift_module .swiftinterface )
394
- if swift_module .swiftmodule :
395
- swiftmodules .append (swift_module .swiftmodule )
396
345
397
346
# If this is both a Swift and a Clang module, then the header in its
398
347
# compilation context is its Swift generated header.
@@ -404,8 +353,7 @@ def create_swift_info(
404
353
405
354
defines = sets .to_list (defines_set )
406
355
407
- # TODO(b/149999519): Remove the legacy `module_name` field and this
408
- # transitional code.
356
+ # TODO(b/149999519): Remove the legacy `module_name`.
409
357
if not module_name and len (modules ) == 1 :
410
358
# Populate the module name based on the single module provided, if there
411
359
# was one, and if the legacy `module_name` parameter wasn't already
@@ -414,56 +362,23 @@ def create_swift_info(
414
362
415
363
transitive_defines = []
416
364
transitive_generated_headers = []
417
- transitive_modulemaps = []
418
365
transitive_modules = []
419
- transitive_swiftdocs = []
420
- transitive_swiftinterfaces = []
421
- transitive_swiftmodules = []
422
366
for swift_info in swift_infos :
423
367
transitive_defines .append (swift_info .transitive_defines )
424
368
transitive_generated_headers .append (
425
369
swift_info .transitive_generated_headers ,
426
370
)
427
- transitive_modulemaps .append (swift_info .transitive_modulemaps )
428
371
transitive_modules .append (swift_info .transitive_modules )
429
- transitive_swiftdocs .append (swift_info .transitive_swiftdocs )
430
- transitive_swiftinterfaces .append (swift_info .transitive_swiftinterfaces )
431
- transitive_swiftmodules .append (swift_info .transitive_swiftmodules )
432
372
433
- # TODO(b/149999519): Remove `transitive_modulemaps`,
434
- # `(direct|transitive)_swift*` fields, `module_name`, and `swift_version`
435
- # after Tulsi is migrated.
436
373
return SwiftInfo (
437
374
direct_defines = defines ,
438
375
direct_modules = modules ,
439
- direct_swiftdocs = swiftdocs ,
440
- direct_swiftmodules = swiftmodules ,
441
376
module_name = module_name ,
442
377
swift_version = swift_version ,
443
378
transitive_defines = depset (defines , transitive = transitive_defines ),
444
379
transitive_generated_headers = depset (
445
380
generated_headers ,
446
381
transitive = transitive_generated_headers ,
447
382
),
448
- transitive_modulemaps = depset (
449
- [
450
- m .clang .module_map
451
- for m in modules
452
- if m .clang and not types .is_string (m .clang .module_map )
453
- ],
454
- transitive = transitive_modulemaps ,
455
- ),
456
383
transitive_modules = depset (modules , transitive = transitive_modules ),
457
- transitive_swiftdocs = depset (
458
- swiftdocs ,
459
- transitive = transitive_swiftdocs ,
460
- ),
461
- transitive_swiftinterfaces = depset (
462
- swiftinterfaces ,
463
- transitive = transitive_swiftinterfaces ,
464
- ),
465
- transitive_swiftmodules = depset (
466
- swiftmodules ,
467
- transitive = transitive_swiftmodules ,
468
- ),
469
384
)
0 commit comments