make dist vendoring configurable

Signed-off-by: onur-ozkan <work@onurozkan.dev>
This commit is contained in:
onur-ozkan 2024-09-08 20:14:50 +03:00
parent bc486f31a6
commit 741b3164d8
2 changed files with 10 additions and 6 deletions

View File

@ -1011,11 +1011,7 @@ fn run(self, builder: &Builder<'_>) -> GeneratedTarball {
write_git_info(builder.rust_info().info(), plain_dst_src); write_git_info(builder.rust_info().info(), plain_dst_src);
write_git_info(builder.cargo_info.info(), &plain_dst_src.join("./src/tools/cargo")); write_git_info(builder.cargo_info.info(), &plain_dst_src.join("./src/tools/cargo"));
// If we're building from git or tarball sources, we need to vendor if builder.config.dist_vendor {
// a complete distribution.
if builder.rust_info().is_managed_git_subrepository()
|| builder.rust_info().is_from_tarball()
{
builder.require_and_update_all_submodules(); builder.require_and_update_all_submodules();
// Vendor all Cargo dependencies // Vendor all Cargo dependencies

View File

@ -308,6 +308,7 @@ pub struct Config {
pub dist_compression_formats: Option<Vec<String>>, pub dist_compression_formats: Option<Vec<String>>,
pub dist_compression_profile: String, pub dist_compression_profile: String,
pub dist_include_mingw_linker: bool, pub dist_include_mingw_linker: bool,
pub dist_vendor: bool,
// libstd features // libstd features
pub backtrace: bool, // support for RUST_BACKTRACE pub backtrace: bool, // support for RUST_BACKTRACE
@ -933,6 +934,7 @@ struct Dist {
compression_formats: Option<Vec<String>> = "compression-formats", compression_formats: Option<Vec<String>> = "compression-formats",
compression_profile: Option<String> = "compression-profile", compression_profile: Option<String> = "compression-profile",
include_mingw_linker: Option<bool> = "include-mingw-linker", include_mingw_linker: Option<bool> = "include-mingw-linker",
vendor: Option<bool> = "vendor",
} }
} }
@ -2028,13 +2030,19 @@ fn get_table(option: &str) -> Result<TomlConfig, toml::de::Error> {
compression_formats, compression_formats,
compression_profile, compression_profile,
include_mingw_linker, include_mingw_linker,
vendor,
} = dist; } = dist;
config.dist_sign_folder = sign_folder.map(PathBuf::from); config.dist_sign_folder = sign_folder.map(PathBuf::from);
config.dist_upload_addr = upload_addr; config.dist_upload_addr = upload_addr;
config.dist_compression_formats = compression_formats; config.dist_compression_formats = compression_formats;
set(&mut config.dist_compression_profile, compression_profile); set(&mut config.dist_compression_profile, compression_profile);
set(&mut config.rust_dist_src, src_tarball); set(&mut config.rust_dist_src, src_tarball);
set(&mut config.dist_include_mingw_linker, include_mingw_linker) set(&mut config.dist_include_mingw_linker, include_mingw_linker);
config.dist_vendor = vendor.unwrap_or_else(|| {
// If we're building from git or tarball sources, enable it by default.
config.rust_info.is_managed_git_subrepository()
|| config.rust_info.is_from_tarball()
});
} }
if let Some(r) = rustfmt { if let Some(r) = rustfmt {