mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-14 02:49:40 +00:00
Move output argument from ArchiveBuilder::new to .build()
This commit is contained in:
parent
a6260ecd81
commit
e0697a309d
@ -19,7 +19,6 @@ enum ArchiveEntry {
|
|||||||
|
|
||||||
pub(crate) struct ArArchiveBuilder<'a> {
|
pub(crate) struct ArArchiveBuilder<'a> {
|
||||||
sess: &'a Session,
|
sess: &'a Session,
|
||||||
dst: PathBuf,
|
|
||||||
use_gnu_style_archive: bool,
|
use_gnu_style_archive: bool,
|
||||||
no_builtin_ranlib: bool,
|
no_builtin_ranlib: bool,
|
||||||
|
|
||||||
@ -30,10 +29,9 @@ pub(crate) struct ArArchiveBuilder<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> ArchiveBuilder<'a> for ArArchiveBuilder<'a> {
|
impl<'a> ArchiveBuilder<'a> for ArArchiveBuilder<'a> {
|
||||||
fn new(sess: &'a Session, output: &Path) -> Self {
|
fn new(sess: &'a Session) -> Self {
|
||||||
ArArchiveBuilder {
|
ArArchiveBuilder {
|
||||||
sess,
|
sess,
|
||||||
dst: output.to_path_buf(),
|
|
||||||
use_gnu_style_archive: sess.target.archive_format == "gnu",
|
use_gnu_style_archive: sess.target.archive_format == "gnu",
|
||||||
// FIXME fix builtin ranlib on macOS
|
// FIXME fix builtin ranlib on macOS
|
||||||
no_builtin_ranlib: sess.target.is_like_osx,
|
no_builtin_ranlib: sess.target.is_like_osx,
|
||||||
@ -74,7 +72,7 @@ impl<'a> ArchiveBuilder<'a> for ArArchiveBuilder<'a> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn build(mut self) -> bool {
|
fn build(mut self, output: &Path) -> bool {
|
||||||
enum BuilderKind {
|
enum BuilderKind {
|
||||||
Bsd(ar::Builder<File>),
|
Bsd(ar::Builder<File>),
|
||||||
Gnu(ar::GnuBuilder<File>),
|
Gnu(ar::GnuBuilder<File>),
|
||||||
@ -163,7 +161,7 @@ impl<'a> ArchiveBuilder<'a> for ArArchiveBuilder<'a> {
|
|||||||
let mut builder = if self.use_gnu_style_archive {
|
let mut builder = if self.use_gnu_style_archive {
|
||||||
BuilderKind::Gnu(
|
BuilderKind::Gnu(
|
||||||
ar::GnuBuilder::new(
|
ar::GnuBuilder::new(
|
||||||
File::create(&self.dst).unwrap_or_else(|err| {
|
File::create(output).unwrap_or_else(|err| {
|
||||||
sess.fatal(&format!(
|
sess.fatal(&format!(
|
||||||
"error opening destination during archive building: {}",
|
"error opening destination during archive building: {}",
|
||||||
err
|
err
|
||||||
@ -178,7 +176,7 @@ impl<'a> ArchiveBuilder<'a> for ArArchiveBuilder<'a> {
|
|||||||
} else {
|
} else {
|
||||||
BuilderKind::Bsd(
|
BuilderKind::Bsd(
|
||||||
ar::Builder::new(
|
ar::Builder::new(
|
||||||
File::create(&self.dst).unwrap_or_else(|err| {
|
File::create(output).unwrap_or_else(|err| {
|
||||||
sess.fatal(&format!(
|
sess.fatal(&format!(
|
||||||
"error opening destination during archive building: {}",
|
"error opening destination during archive building: {}",
|
||||||
err
|
err
|
||||||
@ -209,7 +207,7 @@ impl<'a> ArchiveBuilder<'a> for ArArchiveBuilder<'a> {
|
|||||||
|
|
||||||
// Run ranlib to be able to link the archive
|
// Run ranlib to be able to link the archive
|
||||||
let status = std::process::Command::new(ranlib)
|
let status = std::process::Command::new(ranlib)
|
||||||
.arg(self.dst)
|
.arg(output)
|
||||||
.status()
|
.status()
|
||||||
.expect("Couldn't run ranlib");
|
.expect("Couldn't run ranlib");
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user