From 4ab70295352f6e4f86c4d170a04ceb858ee79d5b Mon Sep 17 00:00:00 2001 From: NitinKM <70827815+NewtonChutney@users.noreply.github.com> Date: Sun, 28 Jan 2024 15:01:10 +0530 Subject: [PATCH] Add icon to Windows executable (#9104) * injecting the icon through a resource file, no extra deps * formatted * scripted rc compilation * formatted and restructured * simplified conditional func call --- contrib/helix-256p.ico | Bin 0 -> 270398 bytes helix-term/build.rs | 146 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 146 insertions(+) create mode 100644 contrib/helix-256p.ico diff --git a/contrib/helix-256p.ico b/contrib/helix-256p.ico new file mode 100644 index 0000000000000000000000000000000000000000..16781cc10b53d50b51f56c7a1d95473eec2a8fb8 GIT binary patch literal 270398 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 io::Result { + let find_reg_key = process::Command::new("reg") + .arg("query") + .arg(r"HKLM\SOFTWARE\Microsoft\Windows Kits\Installed Roots") + .arg("/reg:32") + .arg("/v") + .arg("KitsRoot10") + .output(); + + match find_reg_key { + Err(find_reg_key) => { + return Err(io::Error::new( + io::ErrorKind::Other, + format!("Failed to run registry query: {}", find_reg_key), + )) + } + Ok(find_reg_key) => { + if find_reg_key.status.code().unwrap() != 0 { + return Err(io::Error::new( + io::ErrorKind::Other, + "Can not find Windows SDK", + )); + } else { + let lines = String::from_utf8(find_reg_key.stdout) + .expect("Should be able to parse the output"); + let mut lines: Vec<&str> = lines.lines().collect(); + let mut rc_exe_paths: Vec = Vec::new(); + lines.reverse(); + for line in lines { + if line.trim().starts_with("KitsRoot") { + let kit: String = line + .chars() + .skip(line.find("REG_SZ").unwrap() + 6) + .skip_while(|c| c.is_whitespace()) + .collect(); + + let p = PathBuf::from(&kit); + let rc = if cfg!(target_arch = "x86_64") { + p.join(r"bin\x64\rc.exe") + } else { + p.join(r"bin\x86\rc.exe") + }; + + if rc.exists() { + println!("{:?}", rc); + rc_exe_paths.push(rc.to_owned()); + } + + if let Ok(bin) = p.join("bin").read_dir() { + for e in bin.filter_map(|e| e.ok()) { + let p = if cfg!(target_arch = "x86_64") { + e.path().join(r"x64\rc.exe") + } else { + e.path().join(r"x86\rc.exe") + }; + if p.exists() { + println!("{:?}", p); + rc_exe_paths.push(p.to_owned()); + } + } + } + } + } + if rc_exe_paths.is_empty() { + return Err(io::Error::new( + io::ErrorKind::Other, + "Can not find Windows SDK", + )); + } + + println!("{:?}", rc_exe_paths); + let rc_path = rc_exe_paths.pop().unwrap(); + + let rc_exe = if !rc_path.exists() { + if cfg!(target_arch = "x86_64") { + PathBuf::from(rc_path.parent().unwrap()).join(r"bin\x64\rc.exe") + } else { + PathBuf::from(rc_path.parent().unwrap()).join(r"bin\x86\rc.exe") + } + } else { + rc_path + }; + + println!("Selected RC path: '{}'", rc_exe.display()); + Ok(rc_exe) + } + } + } + } + + fn write_resource_file(rc_path: &Path, icon_path: &str) -> io::Result<()> { + let mut f = std::fs::File::create(rc_path)?; + writeln!(f, "{} ICON \"{}\"", 1, icon_path)?; + + Ok(()) + } } -- 2.51.2