1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-18 02:42:05 +03:00
wezterm/wezterm-mux-server/build.rs

39 lines
1.2 KiB
Rust

fn main() {
println!("cargo:rerun-if-changed=build.rs");
#[cfg(windows)]
{
use std::io::Write;
use std::path::Path;
let repo_dir = std::env::current_dir()
.ok()
.and_then(|cwd| cwd.parent().map(|p| p.to_path_buf()))
.unwrap();
let windows_dir = repo_dir.join("assets").join("windows");
let rcfile_name = Path::new(&std::env::var_os("OUT_DIR").unwrap()).join("resource.rc");
let mut rcfile = std::fs::File::create(&rcfile_name).unwrap();
write!(
rcfile,
r#"
#include <winres.h>
1 RT_MANIFEST "{win}\\console.manifest"
"#,
win = windows_dir.display().to_string().replace("\\", "\\\\"),
)
.unwrap();
drop(rcfile);
// Obtain MSVC environment so that the rc compiler can find the right headers.
// https://github.com/nabijaczleweli/rust-embed-resource/issues/11#issuecomment-603655972
let target = std::env::var("TARGET").unwrap();
if let Some(tool) = cc::windows_registry::find_tool(target.as_str(), "cl.exe") {
for (key, value) in tool.env() {
std::env::set_var(key, value);
}
}
embed_resource::compile(rcfile_name);
}
}