@@ -19,7 +19,6 @@ enum ArchiveEntry {
19
19
20
20
pub ( crate ) struct ArArchiveBuilder < ' a > {
21
21
sess : & ' a Session ,
22
- dst : PathBuf ,
23
22
use_gnu_style_archive : bool ,
24
23
no_builtin_ranlib : bool ,
25
24
@@ -30,10 +29,9 @@ pub(crate) struct ArArchiveBuilder<'a> {
30
29
}
31
30
32
31
impl < ' a > ArchiveBuilder < ' a > for ArArchiveBuilder < ' a > {
33
- fn new ( sess : & ' a Session , output : & Path ) -> Self {
32
+ fn new ( sess : & ' a Session ) -> Self {
34
33
ArArchiveBuilder {
35
34
sess,
36
- dst : output. to_path_buf ( ) ,
37
35
use_gnu_style_archive : sess. target . archive_format == "gnu" ,
38
36
// FIXME fix builtin ranlib on macOS
39
37
no_builtin_ranlib : sess. target . is_like_osx ,
@@ -74,7 +72,7 @@ impl<'a> ArchiveBuilder<'a> for ArArchiveBuilder<'a> {
74
72
Ok ( ( ) )
75
73
}
76
74
77
- fn build ( mut self ) -> bool {
75
+ fn build ( mut self , output : & Path ) -> bool {
78
76
enum BuilderKind {
79
77
Bsd ( ar:: Builder < File > ) ,
80
78
Gnu ( ar:: GnuBuilder < File > ) ,
@@ -163,7 +161,7 @@ impl<'a> ArchiveBuilder<'a> for ArArchiveBuilder<'a> {
163
161
let mut builder = if self . use_gnu_style_archive {
164
162
BuilderKind :: Gnu (
165
163
ar:: GnuBuilder :: new (
166
- File :: create ( & self . dst ) . unwrap_or_else ( |err| {
164
+ File :: create ( output ) . unwrap_or_else ( |err| {
167
165
sess. fatal ( & format ! (
168
166
"error opening destination during archive building: {}" ,
169
167
err
@@ -178,7 +176,7 @@ impl<'a> ArchiveBuilder<'a> for ArArchiveBuilder<'a> {
178
176
} else {
179
177
BuilderKind :: Bsd (
180
178
ar:: Builder :: new (
181
- File :: create ( & self . dst ) . unwrap_or_else ( |err| {
179
+ File :: create ( output ) . unwrap_or_else ( |err| {
182
180
sess. fatal ( & format ! (
183
181
"error opening destination during archive building: {}" ,
184
182
err
@@ -209,7 +207,7 @@ impl<'a> ArchiveBuilder<'a> for ArArchiveBuilder<'a> {
209
207
210
208
// Run ranlib to be able to link the archive
211
209
let status = std:: process:: Command :: new ( ranlib)
212
- . arg ( self . dst )
210
+ . arg ( output )
213
211
. status ( )
214
212
. expect ( "Couldn't run ranlib" ) ;
215
213
0 commit comments