Skip to content

Commit 8e014fe

Browse files
committed
Set C compiler env vars for cmake
This turns out to be required for MSVC if not using visual studio generators.
1 parent cb408f9 commit 8e014fe

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

src/lib.rs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,10 @@ impl Config {
387387
}
388388
}
389389

390+
for &(ref k, ref v) in c_compiler.env() {
391+
cmd.env(k, v);
392+
}
393+
390394
run(cmd.env("CMAKE_PREFIX_PATH", cmake_prefix_path), "cmake");
391395

392396
let mut parallel_args = Vec::new();
@@ -398,13 +402,16 @@ impl Config {
398402

399403
// And build!
400404
let target = self.cmake_target.clone().unwrap_or("install".to_string());
401-
run(Command::new("cmake")
402-
.arg("--build").arg(".")
403-
.arg("--target").arg(target)
404-
.arg("--config").arg(&profile)
405-
.arg("--").args(&self.build_args)
406-
.args(&parallel_args)
407-
.current_dir(&build), "cmake");
405+
let mut cmd = Command::new("cmake");
406+
for &(ref k, ref v) in c_compiler.env() {
407+
cmd.env(k, v);
408+
}
409+
run(cmd.arg("--build").arg(".")
410+
.arg("--target").arg(target)
411+
.arg("--config").arg(&profile)
412+
.arg("--").args(&self.build_args)
413+
.args(&parallel_args)
414+
.current_dir(&build), "cmake");
408415

409416
println!("cargo:root={}", dst.display());
410417
return dst

0 commit comments

Comments
 (0)