@@ -27,6 +27,11 @@ fn host_libs() -> PathBuf {
2727 }
2828}
2929
30+ #[ must_use]
31+ fn target_libs ( ) -> Option < PathBuf > {
32+ option_env ! ( "TARGET_LIBS" ) . map ( PathBuf :: from)
33+ }
34+
3035#[ must_use]
3136fn rustc_test_suite ( ) -> Option < PathBuf > {
3237 option_env ! ( "RUSTC_TEST_SUITE" ) . map ( PathBuf :: from)
@@ -57,8 +62,14 @@ fn config(mode: &str, dir: PathBuf) -> compiletest::Config {
5762 // See https://github.com/rust-lang/rust-clippy/issues/4015.
5863 let needs_disambiguation = [ "serde" , "regex" , "clippy_lints" ] ;
5964 // This assumes that deps are compiled (they are for Cargo integration tests).
60- let deps = std:: fs:: read_dir ( host_libs ( ) . join ( "deps" ) ) . unwrap ( ) ;
65+ let deps = fs:: read_dir ( host_libs ( ) . join ( "deps" ) ) . unwrap ( ) ;
66+ let deps: Vec < _ > = if let Some ( target_libs) = target_libs ( ) {
67+ deps. chain ( fs:: read_dir ( target_libs. join ( "deps" ) ) . unwrap ( ) ) . collect ( )
68+ } else {
69+ deps. collect ( )
70+ } ;
6171 let disambiguated = deps
72+ . into_iter ( )
6273 . filter_map ( |dep| {
6374 let path = dep. ok ( ) ?. path ( ) ;
6475 let name = path. file_name ( ) ?. to_string_lossy ( ) ;
@@ -75,8 +86,9 @@ fn config(mode: &str, dir: PathBuf) -> compiletest::Config {
7586 . collect :: < Vec < _ > > ( ) ;
7687
7788 config. target_rustcflags = Some ( format ! (
78- "-L {0} -L {0}/deps -Dwarnings -Zui-testing {1 }" ,
89+ "-L {0} -L {0}/deps {1} -Dwarnings -Zui-testing {2 }" ,
7990 host_libs( ) . display( ) ,
91+ target_libs( ) . map_or_else( String :: new, |path| format!( "-L {0} -L {0}/deps" , path. display( ) ) ) ,
8092 disambiguated. join( " " )
8193 ) ) ;
8294
0 commit comments