File tree Expand file tree Collapse file tree 2 files changed +22
-3
lines changed Expand file tree Collapse file tree 2 files changed +22
-3
lines changed Original file line number Diff line number Diff line change @@ -19,6 +19,7 @@ edition = "2018"
1919
2020[dependencies ]
2121jobserver = { version = " 0.1.16" , optional = true }
22+ regex = " 1.3.9"
2223
2324[features ]
2425parallel = [" jobserver" ]
Original file line number Diff line number Diff line change 5656#![ allow( deprecated) ]
5757#![ deny( missing_docs) ]
5858
59+ use regex:: Regex ;
5960use std:: collections:: HashMap ;
6061use std:: env;
6162use std:: ffi:: { OsStr , OsString } ;
@@ -2839,9 +2840,26 @@ static NEW_STANDALONE_ANDROID_COMPILERS: [&str; 4] = [
28392840// So to construct proper command line check if
28402841// `--target` argument would be passed or not to clang
28412842fn android_clang_compiler_uses_target_arg_internally ( clang_path : & Path ) -> bool {
2842- NEW_STANDALONE_ANDROID_COMPILERS
2843- . iter ( )
2844- . any ( |x| Some ( x. as_ref ( ) ) == clang_path. file_name ( ) )
2843+ let re = Regex :: new ( r"^.*\d{2}-clang(\+\+)?$" ) . unwrap ( ) ;
2844+ re. is_match ( clang_path. to_str ( ) . unwrap ( ) )
2845+ }
2846+
2847+ #[ test]
2848+ fn test_android_clang_compiler_uses_target_arg_internally ( ) {
2849+ for version in 16 ..21 {
2850+ assert ! ( android_clang_compiler_uses_target_arg_internally(
2851+ & PathBuf :: from( format!( "armv7a-linux-androideabi{}-clang" , version) )
2852+ ) ) ;
2853+ assert ! ( android_clang_compiler_uses_target_arg_internally(
2854+ & PathBuf :: from( format!( "armv7a-linux-androideabi{}-clang++" , version) )
2855+ ) ) ;
2856+ }
2857+ assert ! ( !android_clang_compiler_uses_target_arg_internally(
2858+ & PathBuf :: from( "clang" )
2859+ ) ) ;
2860+ assert ! ( !android_clang_compiler_uses_target_arg_internally(
2861+ & PathBuf :: from( "clang++" )
2862+ ) ) ;
28452863}
28462864
28472865fn autodetect_android_compiler ( target : & str , host : & str , gnu : & str , clang : & str ) -> String {
You can’t perform that action at this time.
0 commit comments