@@ -16,7 +16,7 @@ extern crate run_make_support;
1616
1717use std:: io:: BufRead ;
1818
19- use run_make_support:: rustc;
19+ use run_make_support:: { rustc, is_msvc } ;
2020
2121fn main ( ) {
2222 // build supporting crate
@@ -45,10 +45,23 @@ fn main() {
4545
4646 let args: Vec < & str > = args. trim ( ) . split_ascii_whitespace ( ) . collect ( ) ;
4747
48- assert ! ( args. contains( & "-lglib-2.0" ) ) ; // in bar.rs
49- assert ! ( args. contains( & "-lsystemd" ) ) ; // in foo.rs
50- assert ! ( args. contains( & "-lbar_cli" ) ) ;
51- assert ! ( args. contains( & "-lfoo_cli" ) ) ;
48+ macro_rules! assert_contains_lib {
49+ ( $lib: literal in $args: ident) => { {
50+ let lib = format!(
51+ "{}{}{}" ,
52+ if !is_msvc( ) { "-l" } else { "" } ,
53+ $lib,
54+ if !is_msvc( ) { "" } else { ".lib" } ,
55+ ) ;
56+ let found = $args. contains( &&* lib) ;
57+ assert!( found, "unable to find lib `{}` in those linker args: {:?}" , lib, $args) ;
58+ } }
59+ }
60+
61+ assert_contains_lib ! ( "glib-2.0" in args) ; // in bar.rs
62+ assert_contains_lib ! ( "systemd" in args) ; // in foo.rs
63+ assert_contains_lib ! ( "bar_cli" in args) ;
64+ assert_contains_lib ! ( "foo_cli" in args) ;
5265
5366 // make sure that no args are consecutively present
5467 let dedup_args: Vec < & str > = {
0 commit comments