Skip to content

Commit 45ef635

Browse files
authored
Remove --incompatible_remove_transitive_libs_from_dep_info (#1124)
Closes #1051
1 parent 0b476d8 commit 45ef635

File tree

12 files changed

+3
-133
lines changed

12 files changed

+3
-133
lines changed

docs/flatten.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -1386,7 +1386,7 @@ A provider containing general Crate information.
13861386

13871387
<pre>
13881388
DepInfo(<a href="#DepInfo-dep_env">dep_env</a>, <a href="#DepInfo-direct_crates">direct_crates</a>, <a href="#DepInfo-transitive_build_infos">transitive_build_infos</a>, <a href="#DepInfo-transitive_crate_outputs">transitive_crate_outputs</a>, <a href="#DepInfo-transitive_crates">transitive_crates</a>,
1389-
<a href="#DepInfo-transitive_libs">transitive_libs</a>, <a href="#DepInfo-transitive_noncrates">transitive_noncrates</a>)
1389+
<a href="#DepInfo-transitive_noncrates">transitive_noncrates</a>)
13901390
</pre>
13911391

13921392
A provider containing information about a Crate's dependencies.
@@ -1401,7 +1401,6 @@ A provider containing information about a Crate's dependencies.
14011401
| <a id="DepInfo-transitive_build_infos"></a>transitive_build_infos | depset[BuildInfo] |
14021402
| <a id="DepInfo-transitive_crate_outputs"></a>transitive_crate_outputs | depset[File]: All transitive crate outputs. |
14031403
| <a id="DepInfo-transitive_crates"></a>transitive_crates | depset[CrateInfo] |
1404-
| <a id="DepInfo-transitive_libs"></a>transitive_libs | List[File]: (Deprecated, see https://github.com/bazelbuild/rules_rust/issues/1051) All transitive dependencies, not filtered by type. |
14051404
| <a id="DepInfo-transitive_noncrates"></a>transitive_noncrates | depset[LinkerInput]: All transitive dependencies that aren't crates. |
14061405

14071406

docs/providers.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ A provider containing general Crate information.
4343

4444
<pre>
4545
DepInfo(<a href="#DepInfo-dep_env">dep_env</a>, <a href="#DepInfo-direct_crates">direct_crates</a>, <a href="#DepInfo-transitive_build_infos">transitive_build_infos</a>, <a href="#DepInfo-transitive_crate_outputs">transitive_crate_outputs</a>, <a href="#DepInfo-transitive_crates">transitive_crates</a>,
46-
<a href="#DepInfo-transitive_libs">transitive_libs</a>, <a href="#DepInfo-transitive_noncrates">transitive_noncrates</a>)
46+
<a href="#DepInfo-transitive_noncrates">transitive_noncrates</a>)
4747
</pre>
4848

4949
A provider containing information about a Crate's dependencies.
@@ -58,7 +58,6 @@ A provider containing information about a Crate's dependencies.
5858
| <a id="DepInfo-transitive_build_infos"></a>transitive_build_infos | depset[BuildInfo] |
5959
| <a id="DepInfo-transitive_crate_outputs"></a>transitive_crate_outputs | depset[File]: All transitive crate outputs. |
6060
| <a id="DepInfo-transitive_crates"></a>transitive_crates | depset[CrateInfo] |
61-
| <a id="DepInfo-transitive_libs"></a>transitive_libs | List[File]: (Deprecated, see https://github.com/bazelbuild/rules_rust/issues/1051) All transitive dependencies, not filtered by type. |
6261
| <a id="DepInfo-transitive_noncrates"></a>transitive_noncrates | depset[LinkerInput]: All transitive dependencies that aren't crates. |
6362

6463

rust/private/clippy.bzl

-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ def _clippy_aspect_impl(target, ctx):
7070
aliases = crate_info.aliases,
7171
# Clippy doesn't need to invoke transitive linking, therefore doesn't need linkstamps.
7272
are_linkstamps_supported = False,
73-
remove_transitive_libs_from_dep_info = toolchain._incompatible_remove_transitive_libs_from_dep_info,
7473
)
7574

7675
compile_inputs, out_dir, build_env_files, build_flags_files, linkstamp_outs = collect_inputs(

rust/private/providers.bzl

-2
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,6 @@ DepInfo = provider(
4848
"transitive_build_infos": "depset[BuildInfo]",
4949
"transitive_crate_outputs": "depset[File]: All transitive crate outputs.",
5050
"transitive_crates": "depset[CrateInfo]",
51-
"transitive_libs": "List[File]: (Deprecated, see https://github.com/bazelbuild/rules_rust/issues/1051) " +
52-
"All transitive dependencies, not filtered by type.",
5351
"transitive_noncrates": "depset[LinkerInput]: All transitive dependencies that aren't crates.",
5452
},
5553
)

rust/private/rustc.bzl

+1-19
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,7 @@ def collect_deps(
122122
deps,
123123
proc_macro_deps,
124124
aliases,
125-
are_linkstamps_supported = False,
126-
remove_transitive_libs_from_dep_info = False):
125+
are_linkstamps_supported = False):
127126
"""Walks through dependencies and collects the transitive dependencies.
128127
129128
Args:
@@ -132,8 +131,6 @@ def collect_deps(
132131
proc_macro_deps (list): The proc_macro deps from ctx.attr.proc_macro_deps.
133132
aliases (dict): A dict mapping aliased targets to their actual Crate information.
134133
are_linkstamps_supported (bool): Whether the current rule and the toolchain support building linkstamps..
135-
remove_transitive_libs_from_dep_info (bool): Whether
136-
--incompatible_remove_transitive_libs_from_dep_info has been flipped.
137134
138135
Returns:
139136
tuple: Returns a tuple of:
@@ -180,16 +177,10 @@ def collect_deps(
180177
),
181178
)
182179
transitive_noncrates.append(dep_info.transitive_noncrates)
183-
if not remove_transitive_libs_from_dep_info:
184-
transitive_noncrate_libs.append(dep_info.transitive_libs)
185180
transitive_build_infos.append(dep_info.transitive_build_infos)
186181
elif cc_info:
187182
# This dependency is a cc_library
188183
transitive_noncrates.append(cc_info.linking_context.linker_inputs)
189-
if not remove_transitive_libs_from_dep_info:
190-
transitive_noncrate_libs.append(depset(
191-
_collect_libs_from_linker_inputs(cc_info.linking_context.linker_inputs.to_list()),
192-
))
193184
elif dep_build_info:
194185
if build_info:
195186
fail("Several deps are providing build information, " +
@@ -202,11 +193,6 @@ def collect_deps(
202193

203194
transitive_crates_depset = depset(transitive = transitive_crates)
204195
transitive_libs = depset([])
205-
if not remove_transitive_libs_from_dep_info:
206-
transitive_libs = depset(
207-
[c.output for c in transitive_crates_depset.to_list()],
208-
transitive = transitive_noncrate_libs,
209-
)
210196

211197
return (
212198
rust_common.dep_info(
@@ -217,7 +203,6 @@ def collect_deps(
217203
order = "topological", # dylib link flag ordering matters.
218204
),
219205
transitive_crate_outputs = depset(transitive = transitive_crate_outputs),
220-
transitive_libs = transitive_libs,
221206
transitive_build_infos = depset(transitive = transitive_build_infos),
222207
dep_env = build_info.dep_env if build_info else None,
223208
),
@@ -732,8 +717,6 @@ def rustc_compile_action(
732717
"""
733718
cc_toolchain, feature_configuration = find_cc_toolchain(ctx)
734719

735-
remove_transitive_libs_from_dep_info = toolchain._incompatible_remove_transitive_libs_from_dep_info
736-
737720
dep_info, build_info, linkstamps = collect_deps(
738721
label = ctx.label,
739722
deps = crate_info.deps,
@@ -743,7 +726,6 @@ def rustc_compile_action(
743726
feature_configuration = feature_configuration,
744727
has_grep_includes = hasattr(ctx.attr, "_grep_includes"),
745728
),
746-
remove_transitive_libs_from_dep_info = remove_transitive_libs_from_dep_info,
747729
)
748730

749731
# Determine if the build is currently running with --stamp

rust/private/rustdoc.bzl

-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ def rustdoc_compile_action(
7676
deps = crate_info.deps,
7777
proc_macro_deps = crate_info.proc_macro_deps,
7878
aliases = crate_info.aliases,
79-
remove_transitive_libs_from_dep_info = toolchain._incompatible_remove_transitive_libs_from_dep_info,
8079
)
8180

8281
compile_inputs, out_dir, build_env_files, build_flags_files, linkstamp_outs = collect_inputs(

rust/settings/BUILD.bazel

-7
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,8 @@
11
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
22
load("@bazel_skylib//rules:common_settings.bzl", "bool_flag", "string_flag")
3-
load(":incompatible.bzl", "incompatible_flag")
43

54
package(default_visibility = ["//visibility:public"])
65

7-
incompatible_flag(
8-
name = "incompatible_remove_transitive_libs_from_dep_info",
9-
build_setting_default = True,
10-
issue = "https://github.com/bazelbuild/rules_rust/issues/1051",
11-
)
12-
136
# A flag controlling whether to rename first-party crates such that their names
147
# encode the Bazel package and target name, instead of just the target name.
158
#

rust/toolchain.bzl

-7
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo")
44
load("//rust/private:common.bzl", "rust_common")
55
load("//rust/private:utils.bzl", "dedent", "find_cc_toolchain", "make_static_lib_symlink")
6-
load("//rust/settings:incompatible.bzl", "IncompatibleFlagInfo")
76

87
def _rust_stdlib_filegroup_impl(ctx):
98
rust_std = ctx.files.srcs
@@ -232,8 +231,6 @@ def _rust_toolchain_impl(ctx):
232231
if ctx.attr.target_triple and ctx.file.target_json:
233232
fail("Do not specify both target_triple and target_json, either use a builtin triple or provide a custom specification file.")
234233

235-
remove_transitive_libs_from_dep_info = ctx.attr._incompatible_remove_transitive_libs_from_dep_info[IncompatibleFlagInfo]
236-
237234
rename_first_party_crates = ctx.attr._rename_first_party_crates[BuildSettingInfo].value
238235
third_party_dir = ctx.attr._third_party_dir[BuildSettingInfo].value
239236

@@ -308,7 +305,6 @@ def _rust_toolchain_impl(ctx):
308305
compilation_mode_opts = compilation_mode_opts,
309306
crosstool_files = ctx.files._crosstool,
310307
libstd_and_allocator_ccinfo = _make_libstd_and_allocator_ccinfo(ctx, rust_std, ctx.attr.allocator_library),
311-
_incompatible_remove_transitive_libs_from_dep_info = remove_transitive_libs_from_dep_info.enabled,
312308
_rename_first_party_crates = rename_first_party_crates,
313309
_third_party_dir = third_party_dir,
314310
)
@@ -429,9 +425,6 @@ rust_toolchain = rule(
429425
"_crosstool": attr.label(
430426
default = Label("@bazel_tools//tools/cpp:current_cc_toolchain"),
431427
),
432-
"_incompatible_remove_transitive_libs_from_dep_info": attr.label(
433-
default = "@rules_rust//rust/settings:incompatible_remove_transitive_libs_from_dep_info",
434-
),
435428
"_rename_first_party_crates": attr.label(
436429
default = "@rules_rust//rust/settings:rename_first_party_crates",
437430
),

test/unit/deprecate_transitive_libs_in_dep_info/BUILD.bazel

-8
This file was deleted.

test/unit/deprecate_transitive_libs_in_dep_info/bar.rs

-1
This file was deleted.

test/unit/deprecate_transitive_libs_in_dep_info/deprecate_transitive_libs_in_dep_info_test.bzl

-82
This file was deleted.

test/unit/deprecate_transitive_libs_in_dep_info/foo.rs

-1
This file was deleted.

0 commit comments

Comments
 (0)