@@ -147,42 +147,35 @@ impl Build {
147
147
148
148
// Find ar
149
149
if env:: var_os ( "TARGET_AR" ) . is_none ( ) {
150
- if bindir. join ( format ! ( "{prefix}ar" ) ) . is_file ( ) {
151
- let mut ar = bindir. join ( format ! ( "{prefix}ar" ) ) . into_os_string ( ) ;
152
- ar. push ( " rcus" ) ;
153
- make. env ( "TARGET_AR" , ar) ;
154
- } else if compiler. is_like_clang ( ) {
155
- if bindir. join ( "llvm-ar" ) . is_file ( ) {
156
- let mut ar = bindir. join ( "llvm-ar" ) . into_os_string ( ) ;
157
- ar. push ( " rcus" ) ;
158
- make. env ( "TARGET_AR" , ar) ;
159
- } else {
160
- panic ! ( "cannot find {prefix}ar or llvm-ar" ) ;
161
- }
150
+ let mut ar = if bindir. join ( format ! ( "{prefix}ar" ) ) . is_file ( ) {
151
+ bindir. join ( format ! ( "{prefix}ar" ) ) . into_os_string ( )
152
+ } else if compiler. is_like_clang ( ) && bindir. join ( "llvm-ar" ) . is_file ( ) {
153
+ bindir. join ( "llvm-ar" ) . into_os_string ( )
162
154
} else if compiler. is_like_gnu ( ) && bindir. join ( "ar" ) . is_file ( ) {
163
- let mut ar = bindir. join ( "ar" ) . into_os_string ( ) ;
164
- ar . push ( " rcus" ) ;
165
- make . env ( "TARGET_AR" , ar ) ;
155
+ bindir. join ( "ar" ) . into_os_string ( )
156
+ } else if let Ok ( ar ) = which :: which ( format ! ( "{prefix}ar" ) ) {
157
+ ar . into_os_string ( )
166
158
} else {
167
- panic ! ( "cannot find {prefix}ar" ) ;
168
- }
159
+ panic ! ( "cannot find {prefix}ar" )
160
+ } ;
161
+ ar. push ( " rcus" ) ;
162
+ make. env ( "TARGET_AR" , ar) ;
169
163
}
170
164
171
165
// Find strip
172
166
if env:: var_os ( "TARGET_STRIP" ) . is_none ( ) {
173
- if bindir. join ( format ! ( "{prefix}strip" ) ) . is_file ( ) {
174
- make. env ( "TARGET_STRIP" , bindir. join ( format ! ( "{prefix}strip" ) ) ) ;
175
- } else if compiler. is_like_clang ( ) {
176
- if bindir. join ( "llvm-strip" ) . is_file ( ) {
177
- make. env ( "TARGET_STRIP" , bindir. join ( "llvm-strip" ) ) ;
178
- } else {
179
- panic ! ( "cannot find {prefix}strip or llvm-strip" ) ;
180
- }
167
+ let strip = if bindir. join ( format ! ( "{prefix}strip" ) ) . is_file ( ) {
168
+ bindir. join ( format ! ( "{prefix}strip" ) )
169
+ } else if compiler. is_like_clang ( ) && bindir. join ( "llvm-strip" ) . is_file ( ) {
170
+ bindir. join ( "llvm-strip" )
181
171
} else if compiler. is_like_gnu ( ) && bindir. join ( "strip" ) . is_file ( ) {
182
- make. env ( "TARGET_STRIP" , bindir. join ( "strip" ) ) ;
172
+ bindir. join ( "strip" )
173
+ } else if let Ok ( strip) = which:: which ( format ! ( "{prefix}strip" ) ) {
174
+ strip
183
175
} else {
184
- panic ! ( "cannot find {prefix}strip" ) ;
185
- }
176
+ panic ! ( "cannot find {prefix}strip" )
177
+ } ;
178
+ make. env ( "TARGET_STRIP" , strip) ;
186
179
}
187
180
188
181
let mut xcflags = vec ! [ "-fPIC" ] ;
0 commit comments