@@ -78,8 +78,6 @@ pub enum ProjectWorkspaceKind {
78
78
/// The rustc workspace loaded for this workspace. An `Err(None)` means loading has been
79
79
/// disabled or was otherwise not requested.
80
80
rustc : Result < Box < ( CargoWorkspace , WorkspaceBuildScripts ) > , Option < String > > ,
81
- /// Environment variables set in the `.cargo/config` file.
82
- cargo_config_extra_env : FxHashMap < String , String > ,
83
81
set_test : bool ,
84
82
} ,
85
83
/// Project workspace was specified using a `rust-project.json` file.
@@ -99,8 +97,6 @@ pub enum ProjectWorkspaceKind {
99
97
file : ManifestPath ,
100
98
/// Is this file a cargo script file?
101
99
cargo : Option < ( CargoWorkspace , WorkspaceBuildScripts , Option < Arc < anyhow:: Error > > ) > ,
102
- /// Environment variables set in the `.cargo/config` file.
103
- cargo_config_extra_env : FxHashMap < String , String > ,
104
100
set_test : bool ,
105
101
} ,
106
102
}
@@ -110,14 +106,7 @@ impl fmt::Debug for ProjectWorkspace {
110
106
// Make sure this isn't too verbose.
111
107
let Self { kind, sysroot, rustc_cfg, toolchain, target_layout, cfg_overrides } = self ;
112
108
match kind {
113
- ProjectWorkspaceKind :: Cargo {
114
- cargo,
115
- error : _,
116
- build_scripts,
117
- rustc,
118
- cargo_config_extra_env,
119
- set_test,
120
- } => f
109
+ ProjectWorkspaceKind :: Cargo { cargo, error : _, build_scripts, rustc, set_test } => f
121
110
. debug_struct ( "Cargo" )
122
111
. field ( "root" , & cargo. workspace_root ( ) . file_name ( ) )
123
112
. field ( "n_packages" , & cargo. packages ( ) . len ( ) )
@@ -130,7 +119,6 @@ impl fmt::Debug for ProjectWorkspace {
130
119
. field ( "n_cfg_overrides" , & cfg_overrides. len ( ) )
131
120
. field ( "toolchain" , & toolchain)
132
121
. field ( "data_layout" , & target_layout)
133
- . field ( "cargo_config_extra_env" , & cargo_config_extra_env)
134
122
. field ( "set_test" , set_test)
135
123
. field ( "build_scripts" , & build_scripts. error ( ) . unwrap_or ( "ok" ) )
136
124
. finish ( ) ,
@@ -146,12 +134,7 @@ impl fmt::Debug for ProjectWorkspace {
146
134
147
135
debug_struct. finish ( )
148
136
}
149
- ProjectWorkspaceKind :: DetachedFile {
150
- file,
151
- cargo : cargo_script,
152
- cargo_config_extra_env,
153
- set_test,
154
- } => f
137
+ ProjectWorkspaceKind :: DetachedFile { file, cargo : cargo_script, set_test } => f
155
138
. debug_struct ( "DetachedFiles" )
156
139
. field ( "file" , & file)
157
140
. field ( "cargo_script" , & cargo_script. is_some ( ) )
@@ -161,7 +144,6 @@ impl fmt::Debug for ProjectWorkspace {
161
144
. field ( "toolchain" , & toolchain)
162
145
. field ( "data_layout" , & target_layout)
163
146
. field ( "n_cfg_overrides" , & cfg_overrides. len ( ) )
164
- . field ( "cargo_config_extra_env" , & cargo_config_extra_env)
165
147
. field ( "set_test" , set_test)
166
148
. finish ( ) ,
167
149
}
@@ -289,14 +271,14 @@ impl ProjectWorkspace {
289
271
progress,
290
272
) {
291
273
Ok ( ( meta, _error) ) => {
292
- let workspace = CargoWorkspace :: new ( meta, cargo_toml. clone ( ) ) ;
293
- let buildscripts = WorkspaceBuildScripts :: rustc_crates (
274
+ let workspace = CargoWorkspace :: new ( meta, cargo_toml. clone ( ) , Env :: default ( ) ) ;
275
+ let build_scripts = WorkspaceBuildScripts :: rustc_crates (
294
276
& workspace,
295
277
cargo_toml. parent ( ) ,
296
278
& config. extra_env ,
297
279
& sysroot,
298
280
) ;
299
- Ok ( Box :: new ( ( workspace, buildscripts ) ) )
281
+ Ok ( Box :: new ( ( workspace, build_scripts ) ) )
300
282
}
301
283
Err ( e) => {
302
284
tracing:: error!(
@@ -348,14 +330,13 @@ impl ProjectWorkspace {
348
330
"Failed to read Cargo metadata from Cargo.toml file {cargo_toml}, {toolchain:?}" ,
349
331
)
350
332
} ) ?;
351
- let cargo = CargoWorkspace :: new ( meta, cargo_toml. clone ( ) ) ;
352
333
let cargo_config_extra_env = cargo_config_env ( cargo_toml, & config. extra_env , & sysroot) ;
334
+ let cargo = CargoWorkspace :: new ( meta, cargo_toml. clone ( ) , cargo_config_extra_env) ;
353
335
Ok ( ProjectWorkspace {
354
336
kind : ProjectWorkspaceKind :: Cargo {
355
337
cargo,
356
338
build_scripts : WorkspaceBuildScripts :: default ( ) ,
357
339
rustc,
358
- cargo_config_extra_env,
359
340
error : error. map ( Arc :: new) ,
360
341
set_test : config. set_test ,
361
342
} ,
@@ -450,19 +431,19 @@ impl ProjectWorkspace {
450
431
)
451
432
. ok ( )
452
433
. map ( |( ws, error) | {
434
+ let cargo_config_extra_env =
435
+ cargo_config_env ( detached_file, & config. extra_env , & sysroot) ;
453
436
(
454
- CargoWorkspace :: new ( ws, detached_file. clone ( ) ) ,
437
+ CargoWorkspace :: new ( ws, detached_file. clone ( ) , cargo_config_extra_env ) ,
455
438
WorkspaceBuildScripts :: default ( ) ,
456
439
error. map ( Arc :: new) ,
457
440
)
458
441
} ) ;
459
442
460
- let cargo_config_extra_env = cargo_config_env ( detached_file, & config. extra_env , & sysroot) ;
461
443
Ok ( ProjectWorkspace {
462
444
kind : ProjectWorkspaceKind :: DetachedFile {
463
445
file : detached_file. to_owned ( ) ,
464
446
cargo : cargo_script,
465
- cargo_config_extra_env,
466
447
set_test : config. set_test ,
467
448
} ,
468
449
sysroot,
@@ -643,14 +624,7 @@ impl ProjectWorkspace {
643
624
. chain ( mk_sysroot ( ) )
644
625
. unique ( )
645
626
. collect ( ) ,
646
- ProjectWorkspaceKind :: Cargo {
647
- cargo,
648
- rustc,
649
- build_scripts,
650
- cargo_config_extra_env : _,
651
- error : _,
652
- set_test : _,
653
- } => {
627
+ ProjectWorkspaceKind :: Cargo { cargo, rustc, build_scripts, error : _, set_test : _ } => {
654
628
cargo
655
629
. packages ( )
656
630
. map ( |pkg| {
@@ -787,23 +761,18 @@ impl ProjectWorkspace {
787
761
extra_env,
788
762
cfg_overrides,
789
763
) ,
790
- ProjectWorkspaceKind :: Cargo {
791
- cargo,
792
- rustc,
793
- build_scripts,
794
- cargo_config_extra_env : _,
795
- error : _,
796
- set_test,
797
- } => cargo_to_crate_graph (
798
- load,
799
- rustc. as_ref ( ) . map ( |a| a. as_ref ( ) ) . ok ( ) ,
800
- cargo,
801
- sysroot,
802
- rustc_cfg. clone ( ) ,
803
- cfg_overrides,
804
- build_scripts,
805
- * set_test,
806
- ) ,
764
+ ProjectWorkspaceKind :: Cargo { cargo, rustc, build_scripts, error : _, set_test } => {
765
+ cargo_to_crate_graph (
766
+ load,
767
+ rustc. as_ref ( ) . map ( |a| a. as_ref ( ) ) . ok ( ) ,
768
+ cargo,
769
+ sysroot,
770
+ rustc_cfg. clone ( ) ,
771
+ cfg_overrides,
772
+ build_scripts,
773
+ * set_test,
774
+ )
775
+ }
807
776
ProjectWorkspaceKind :: DetachedFile { file, cargo : cargo_script, set_test, .. } => {
808
777
if let Some ( ( cargo, build_scripts, _) ) = cargo_script {
809
778
cargo_to_crate_graph (
@@ -848,45 +817,33 @@ impl ProjectWorkspace {
848
817
ProjectWorkspaceKind :: Cargo {
849
818
cargo,
850
819
rustc,
851
- cargo_config_extra_env,
852
820
build_scripts : _,
853
821
error : _,
854
822
set_test : _,
855
823
} ,
856
824
ProjectWorkspaceKind :: Cargo {
857
825
cargo : o_cargo,
858
826
rustc : o_rustc,
859
- cargo_config_extra_env : o_cargo_config_extra_env,
860
827
build_scripts : _,
861
828
error : _,
862
829
set_test : _,
863
830
} ,
864
- ) => {
865
- cargo == o_cargo
866
- && rustc == o_rustc
867
- && cargo_config_extra_env == o_cargo_config_extra_env
868
- }
831
+ ) => cargo == o_cargo && rustc == o_rustc,
869
832
( ProjectWorkspaceKind :: Json ( project) , ProjectWorkspaceKind :: Json ( o_project) ) => {
870
833
project == o_project
871
834
}
872
835
(
873
836
ProjectWorkspaceKind :: DetachedFile {
874
837
file,
875
838
cargo : Some ( ( cargo_script, _, _) ) ,
876
- cargo_config_extra_env,
877
839
set_test : _,
878
840
} ,
879
841
ProjectWorkspaceKind :: DetachedFile {
880
842
file : o_file,
881
843
cargo : Some ( ( o_cargo_script, _, _) ) ,
882
- cargo_config_extra_env : o_cargo_config_extra_env,
883
844
set_test : _,
884
845
} ,
885
- ) => {
886
- file == o_file
887
- && cargo_script == o_cargo_script
888
- && cargo_config_extra_env == o_cargo_config_extra_env
889
- }
846
+ ) => file == o_file && cargo_script == o_cargo_script,
890
847
_ => return false ,
891
848
} ) && sysroot == o_sysroot
892
849
&& rustc_cfg == o_rustc_cfg
@@ -1402,7 +1359,7 @@ fn add_target_crate_root(
1402
1359
opts
1403
1360
} ;
1404
1361
1405
- let mut env = Env :: default ( ) ;
1362
+ let mut env = cargo . env ( ) . clone ( ) ;
1406
1363
inject_cargo_package_env ( & mut env, pkg) ;
1407
1364
inject_cargo_env ( & mut env) ;
1408
1365
inject_rustc_tool_env ( & mut env, cargo, cargo_name, kind) ;
0 commit comments