Skip to content

Commit 502bc1f

Browse files
test: ensure clang --driver-mode=cl is MSVC- and clang-cl-like
1 parent 6f7f431 commit 502bc1f

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2708,7 +2708,7 @@ impl Build {
27082708
let out_dir = self.get_out_dir().ok();
27092709
let out_dir = out_dir.as_deref();
27102710

2711-
if let Some(c) = &self.compiler {
2711+
if let Some(c) = dbg!(&self.compiler) {
27122712
return Ok(Tool::new(
27132713
(**c).to_owned(),
27142714
&self.build_cache.cached_compiler_family,

tests/cc_env.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ fn main() {
1515
extra_flags();
1616
path_to_ccache();
1717
more_spaces();
18+
clang_cl();
1819
}
1920

2021
fn ccache() {
@@ -110,3 +111,18 @@ fn more_spaces() {
110111
let compiler = test.gcc().file("foo.c").get_compiler();
111112
assert_eq!(compiler.path(), Path::new("cc"));
112113
}
114+
115+
fn clang_cl() {
116+
for exe_suffix in ["", ".exe"] {
117+
let test = Test::clang();
118+
let bin = format!("clang{exe_suffix}");
119+
env::set_var("CC", &format!("{bin} --driver-mode=cl"));
120+
let test_compiler = |build: cc::Build| {
121+
let compiler = build.get_compiler();
122+
assert_eq!(compiler.path(), Path::new(&*bin));
123+
assert!(compiler.is_like_msvc());
124+
assert!(compiler.is_like_clang_cl());
125+
};
126+
test_compiler(test.gcc());
127+
}
128+
}

0 commit comments

Comments
 (0)