@@ -437,29 +437,32 @@ pub fn rust_src(build: &Build) {
437
437
copy ( & build. src . join ( item) , & dst_src. join ( item) ) ;
438
438
}
439
439
440
- // Get cargo-vendor installed, if it isn't already.
441
- let mut has_cargo_vendor = false ;
442
- let mut cmd = Command :: new ( & build. cargo ) ;
443
- for line in output ( cmd. arg ( "install" ) . arg ( "--list" ) ) . lines ( ) {
444
- has_cargo_vendor |= line. starts_with ( "cargo-vendor " ) ;
445
- }
446
- if !has_cargo_vendor {
440
+ // If we're building from git sources, we need to vendor a complete distribution.
441
+ if build. src_is_git {
442
+ // Get cargo-vendor installed, if it isn't already.
443
+ let mut has_cargo_vendor = false ;
444
+ let mut cmd = Command :: new ( & build. cargo ) ;
445
+ for line in output ( cmd. arg ( "install" ) . arg ( "--list" ) ) . lines ( ) {
446
+ has_cargo_vendor |= line. starts_with ( "cargo-vendor " ) ;
447
+ }
448
+ if !has_cargo_vendor {
449
+ let mut cmd = Command :: new ( & build. cargo ) ;
450
+ cmd. arg ( "install" )
451
+ . arg ( "--force" )
452
+ . arg ( "--debug" )
453
+ . arg ( "--vers" ) . arg ( CARGO_VENDOR_VERSION )
454
+ . arg ( "cargo-vendor" )
455
+ . env ( "RUSTC" , & build. rustc ) ;
456
+ build. run ( & mut cmd) ;
457
+ }
458
+
459
+ // Vendor all Cargo dependencies
447
460
let mut cmd = Command :: new ( & build. cargo ) ;
448
- cmd. arg ( "install" )
449
- . arg ( "--force" )
450
- . arg ( "--debug" )
451
- . arg ( "--vers" ) . arg ( CARGO_VENDOR_VERSION )
452
- . arg ( "cargo-vendor" )
453
- . env ( "RUSTC" , & build. rustc ) ;
461
+ cmd. arg ( "vendor" )
462
+ . current_dir ( & dst_src. join ( "src" ) ) ;
454
463
build. run ( & mut cmd) ;
455
464
}
456
465
457
- // Vendor all Cargo dependencies
458
- let mut cmd = Command :: new ( & build. cargo ) ;
459
- cmd. arg ( "vendor" )
460
- . current_dir ( & dst_src. join ( "src" ) ) ;
461
- build. run ( & mut cmd) ;
462
-
463
466
// Create source tarball in rust-installer format
464
467
let mut cmd = Command :: new ( SH_CMD ) ;
465
468
cmd. arg ( sanitize_sh ( & build. src . join ( "src/rust-installer/gen-installer.sh" ) ) )
0 commit comments