@@ -16,7 +16,7 @@ use paths::{AbsPath, AbsPathBuf, Utf8PathBuf};
1616use rustc_hash:: { FxHashMap , FxHashSet } ;
1717use semver:: Version ;
1818use span:: { Edition , FileId } ;
19- use toolchain:: { NO_RUSTUP_AUTO_INSTALL_ENV , Tool } ;
19+ use toolchain:: Tool ;
2020use tracing:: instrument;
2121use tracing:: { debug, error, info} ;
2222use triomphe:: Arc ;
@@ -295,11 +295,6 @@ impl ProjectWorkspace {
295295 & sysroot,
296296 * no_deps,
297297 ) ;
298- let target_dir = config
299- . target_dir
300- . clone ( )
301- . or_else ( || fetch_metadata. no_deps_metadata ( ) . map ( |m| m. target_directory . clone ( ) ) )
302- . unwrap_or_else ( || workspace_dir. join ( "target" ) . into ( ) ) ;
303298
304299 // We spawn a bunch of processes to query various information about the workspace's
305300 // toolchain and sysroot
@@ -345,7 +340,7 @@ impl ProjectWorkspace {
345340 } ,
346341 & sysroot,
347342 * no_deps,
348- ) . exec ( & target_dir , true , progress) {
343+ ) . exec ( true , progress) {
349344 Ok ( ( meta, _error) ) => {
350345 let workspace = CargoWorkspace :: new (
351346 meta,
@@ -374,7 +369,7 @@ impl ProjectWorkspace {
374369 } )
375370 } ) ;
376371
377- let cargo_metadata = s. spawn ( || fetch_metadata. exec ( & target_dir , false , progress) ) ;
372+ let cargo_metadata = s. spawn ( || fetch_metadata. exec ( false , progress) ) ;
378373 let loaded_sysroot = s. spawn ( || {
379374 sysroot. load_workspace (
380375 & RustSourceWorkspaceConfig :: CargoMetadata ( sysroot_metadata_config (
@@ -383,7 +378,6 @@ impl ProjectWorkspace {
383378 toolchain. clone ( ) ,
384379 ) ) ,
385380 config. no_deps ,
386- & target_dir,
387381 progress,
388382 )
389383 } ) ;
@@ -463,12 +457,6 @@ impl ProjectWorkspace {
463457 let targets = target_tuple:: get ( query_config, config. target . as_deref ( ) , & config. extra_env )
464458 . unwrap_or_default ( ) ;
465459 let toolchain = version:: get ( query_config, & config. extra_env ) . ok ( ) . flatten ( ) ;
466- let project_root = project_json. project_root ( ) ;
467- let target_dir = config
468- . target_dir
469- . clone ( )
470- . or_else ( || cargo_target_dir ( project_json. manifest ( ) ?, & config. extra_env , & sysroot) )
471- . unwrap_or_else ( || project_root. join ( "target" ) . into ( ) ) ;
472460
473461 // We spawn a bunch of processes to query various information about the workspace's
474462 // toolchain and sysroot
@@ -486,7 +474,6 @@ impl ProjectWorkspace {
486474 sysroot. load_workspace (
487475 & RustSourceWorkspaceConfig :: Json ( * sysroot_project) ,
488476 config. no_deps ,
489- & target_dir,
490477 progress,
491478 )
492479 } else {
@@ -497,7 +484,6 @@ impl ProjectWorkspace {
497484 toolchain. clone ( ) ,
498485 ) ) ,
499486 config. no_deps ,
500- & target_dir,
501487 progress,
502488 )
503489 }
@@ -545,11 +531,6 @@ impl ProjectWorkspace {
545531 . unwrap_or_default ( ) ;
546532 let rustc_cfg = rustc_cfg:: get ( query_config, None , & config. extra_env ) ;
547533 let target_data = target_data:: get ( query_config, None , & config. extra_env ) ;
548- let target_dir = config
549- . target_dir
550- . clone ( )
551- . or_else ( || cargo_target_dir ( detached_file, & config. extra_env , & sysroot) )
552- . unwrap_or_else ( || dir. join ( "target" ) . into ( ) ) ;
553534
554535 let loaded_sysroot = sysroot. load_workspace (
555536 & RustSourceWorkspaceConfig :: CargoMetadata ( sysroot_metadata_config (
@@ -558,7 +539,6 @@ impl ProjectWorkspace {
558539 toolchain. clone ( ) ,
559540 ) ) ,
560541 config. no_deps ,
561- & target_dir,
562542 & |_| ( ) ,
563543 ) ;
564544 if let Some ( loaded_sysroot) = loaded_sysroot {
@@ -579,21 +559,15 @@ impl ProjectWorkspace {
579559 & sysroot,
580560 config. no_deps ,
581561 ) ;
582- let target_dir = config
583- . target_dir
584- . clone ( )
585- . or_else ( || fetch_metadata. no_deps_metadata ( ) . map ( |m| m. target_directory . clone ( ) ) )
586- . unwrap_or_else ( || dir. join ( "target" ) . into ( ) ) ;
587- let cargo_script =
588- fetch_metadata. exec ( & target_dir, false , & |_| ( ) ) . ok ( ) . map ( |( ws, error) | {
589- let cargo_config_extra_env =
590- cargo_config_env ( detached_file, & config_file, & config. extra_env ) ;
591- (
592- CargoWorkspace :: new ( ws, detached_file. clone ( ) , cargo_config_extra_env, false ) ,
593- WorkspaceBuildScripts :: default ( ) ,
594- error. map ( Arc :: new) ,
595- )
596- } ) ;
562+ let cargo_script = fetch_metadata. exec ( false , & |_| ( ) ) . ok ( ) . map ( |( ws, error) | {
563+ let cargo_config_extra_env =
564+ cargo_config_env ( detached_file, & config_file, & config. extra_env ) ;
565+ (
566+ CargoWorkspace :: new ( ws, detached_file. clone ( ) , cargo_config_extra_env, false ) ,
567+ WorkspaceBuildScripts :: default ( ) ,
568+ error. map ( Arc :: new) ,
569+ )
570+ } ) ;
597571
598572 Ok ( ProjectWorkspace {
599573 kind : ProjectWorkspaceKind :: DetachedFile {
@@ -1902,25 +1876,3 @@ fn sysroot_metadata_config(
19021876 kind : "sysroot" ,
19031877 }
19041878}
1905-
1906- fn cargo_target_dir (
1907- manifest : & ManifestPath ,
1908- extra_env : & FxHashMap < String , Option < String > > ,
1909- sysroot : & Sysroot ,
1910- ) -> Option < Utf8PathBuf > {
1911- let cargo = sysroot. tool ( Tool :: Cargo , manifest. parent ( ) , extra_env) ;
1912- let mut meta = cargo_metadata:: MetadataCommand :: new ( ) ;
1913- meta. env ( NO_RUSTUP_AUTO_INSTALL_ENV . 0 , NO_RUSTUP_AUTO_INSTALL_ENV . 1 ) ;
1914- meta. cargo_path ( cargo. get_program ( ) ) ;
1915- meta. manifest_path ( manifest) ;
1916- // `--no-deps` doesn't (over)write lockfiles as it doesn't do any package resolve.
1917- // So we can use it to get `target_directory` before copying lockfiles
1918- meta. no_deps ( ) ;
1919- let mut other_options = vec ! [ ] ;
1920- if manifest. is_rust_manifest ( ) {
1921- meta. env ( "RUSTC_BOOTSTRAP" , "1" ) ;
1922- other_options. push ( "-Zscript" . to_owned ( ) ) ;
1923- }
1924- meta. other_options ( other_options) ;
1925- meta. exec ( ) . map ( |m| m. target_directory ) . ok ( )
1926- }
0 commit comments