@@ -16,7 +16,7 @@ extern crate run_make_support;
16
16
17
17
use std:: io:: BufRead ;
18
18
19
- use run_make_support:: rustc;
19
+ use run_make_support:: { rustc, is_msvc } ;
20
20
21
21
fn main ( ) {
22
22
// build supporting crate
@@ -45,10 +45,23 @@ fn main() {
45
45
46
46
let args: Vec < & str > = args. trim ( ) . split_ascii_whitespace ( ) . collect ( ) ;
47
47
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) ;
52
65
53
66
// make sure that no args are consecutively present
54
67
let dedup_args: Vec < & str > = {
0 commit comments